diff --git a/.dockerignore b/.dockerignore index b9c7d2f84..d378a026a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -15,6 +15,8 @@ # Test related **/.pytest_cache **/tests +src/paperless_testing +src/conftest.py **/*.spec.ts **/htmlcov # Local folders diff --git a/.github/actions/apt-install/action.yml b/.github/actions/apt-install/action.yml new file mode 100644 index 000000000..3f20230e6 --- /dev/null +++ b/.github/actions/apt-install/action.yml @@ -0,0 +1,53 @@ +name: Install apt packages +description: > + Installs apt packages with a per-attempt timeout and retries. The hosted runner's Azure apt mirror intermittently serves archives at a crawl, which apt's own timeout does not catch. A stuck attempt is killed and retried, which usually lands on a healthy mirror node. + +inputs: + packages: + description: Space separated list of packages to install + required: true + attempts: + description: Maximum number of attempts + default: "3" + attempt-timeout: + description: Seconds before a single attempt is killed + default: "180" +runs: + using: composite + steps: + - name: Install ${{ inputs.packages }} + shell: bash + env: + PACKAGES: ${{ inputs.packages }} + ATTEMPTS: ${{ inputs.attempts }} + ATTEMPT_TIMEOUT: ${{ inputs.attempt-timeout }} + run: | + SUDO="" + if [ "$(id -u)" -ne 0 ]; then + SUDO="sudo" + fi + + attempt_install() { + $SUDO apt-get update -q + # Intentionally unquoted, this is a list of package names + $SUDO apt-get install -q --yes --no-install-recommends $PACKAGES + } + export -f attempt_install + export SUDO PACKAGES + + for attempt in $(seq 1 "${ATTEMPTS}"); do + echo "::group::apt install attempt ${attempt}/${ATTEMPTS}" + start=$(date +%s) + if timeout --kill-after=10 "${ATTEMPT_TIMEOUT}" bash -c attempt_install; then + echo "::endgroup::" + echo "Installed in $(( $(date +%s) - start ))s" + exit 0 + fi + echo "::endgroup::" + echo "::warning::apt install attempt ${attempt}/${ATTEMPTS} failed or exceeded ${ATTEMPT_TIMEOUT}s" + # A killed attempt can leave dpkg half configured + $SUDO dpkg --configure -a || true + done + + echo "::error::apt install failed after ${ATTEMPTS} attempts" + exit 1 diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1081a7fb0..2db7234bb 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -59,7 +59,6 @@ updates: - "drf-*" - "djangorestframework" - "whitenoise" - - "bleach" - "jinja2" # Async, Task Queuing & Caching async-tasks: diff --git a/.github/workflows/ci-backend.yml b/.github/workflows/ci-backend.yml index 3dfb743a4..9f08625db 100644 --- a/.github/workflows/ci-backend.yml +++ b/.github/workflows/ci-backend.yml @@ -102,17 +102,16 @@ jobs: with: python-version: "${{ matrix.python-version }}" - name: Install uv - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 + uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: true python-version: ${{ steps.setup-python.outputs.python-version }} - name: Install system dependencies - timeout-minutes: 10 - run: | - sudo apt-get update -qq - sudo apt-get install -qq --no-install-recommends \ - unpaper tesseract-ocr imagemagick ghostscript poppler-utils + timeout-minutes: 12 + uses: $/.github/actions/apt-install + with: + packages: unpaper tesseract-ocr imagemagick ghostscript poppler-utils - name: Configure ImageMagick run: | sudo cp docker/rootfs/etc/ImageMagick-6/paperless-policy.xml /etc/ImageMagick-6/policy.xml @@ -139,13 +138,13 @@ jobs: pytest - name: Upload test results to Codecov if: always() - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 + uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1 with: flags: backend-python-${{ matrix.python-version }} files: junit.xml report_type: test_results - name: Upload coverage to Codecov - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 + uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1 with: flags: backend-python-${{ matrix.python-version }} files: coverage.xml @@ -176,7 +175,7 @@ jobs: with: python-version: "${{ env.DEFAULT_PYTHON }}" - name: Install uv - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 + uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: true diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 3fe9a9892..8887ddeca 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -106,7 +106,7 @@ jobs: echo "repository=${repo_name}" echo "name=${repo_name}" >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1 - name: Login to GitHub Container Registry uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 with: @@ -132,7 +132,7 @@ jobs: type=semver,pattern={{major}}.{{minor}} - name: Build and push by digest id: build - uses: docker/build-push-action@53b7df96c91f9c12dcc8a07bcb9ccacbed38856a # v7.3.0 + uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0 with: context: . file: ./Dockerfile @@ -182,7 +182,7 @@ jobs: echo "Downloaded digests:" ls -la /tmp/digests/ - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 + uses: docker/setup-buildx-action@f87e5991a6d7451dcb8d9637bfbc97413f497069 # v4.4.1 - name: Login to GitHub Container Registry uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 with: diff --git a/.github/workflows/ci-docs.yml b/.github/workflows/ci-docs.yml index 19321666e..5d24e845a 100644 --- a/.github/workflows/ci-docs.yml +++ b/.github/workflows/ci-docs.yml @@ -78,7 +78,7 @@ jobs: with: python-version: ${{ env.DEFAULT_PYTHON_VERSION }} - name: Install uv - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 + uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: true diff --git a/.github/workflows/ci-frontend.yml b/.github/workflows/ci-frontend.yml index 3f45c3f7b..6af82ec05 100644 --- a/.github/workflows/ci-frontend.yml +++ b/.github/workflows/ci-frontend.yml @@ -174,13 +174,13 @@ jobs: run: cd src-ui && pnpm run test --max-workers=2 --shard=${{ matrix.shard-index }}/${{ matrix.shard-count }} - name: Upload test results to Codecov if: always() - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 + uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1 with: flags: frontend-node-${{ matrix.node-version }} directory: src-ui/ report_type: test_results - name: Upload coverage to Codecov - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0 + uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1 with: flags: frontend-node-${{ matrix.node-version }} directory: src-ui/coverage/ @@ -216,7 +216,7 @@ jobs: with: python-version: '3.12' - name: Install uv - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 + uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: version: '0.12.x' enable-cache: false @@ -231,9 +231,10 @@ jobs: - name: Install dependencies run: cd src-ui && pnpm install --frozen-lockfile - name: Install backend system dependencies - run: | - apt-get update - apt-get install --yes --quiet --no-install-recommends libmagic1 + timeout-minutes: 12 + uses: $/.github/actions/apt-install + with: + packages: libmagic1 - name: Install backend dependencies env: PYTHON_VERSION: ${{ steps.setup-python.outputs.python-version }} diff --git a/.github/workflows/ci-release.yml b/.github/workflows/ci-release.yml index 43cd9df0f..8ff2e6f74 100644 --- a/.github/workflows/ci-release.yml +++ b/.github/workflows/ci-release.yml @@ -59,7 +59,7 @@ jobs: with: python-version: ${{ env.DEFAULT_PYTHON_VERSION }} - name: Install uv - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 + uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: false @@ -70,9 +70,10 @@ jobs: run: | uv sync --python "${PYTHON_VERSION}" --dev --frozen - name: Install system dependencies - run: | - sudo apt-get update -qq - sudo apt-get install -qq --no-install-recommends gettext liblept5 + timeout-minutes: 12 + uses: $/.github/actions/apt-install + with: + packages: gettext liblept5 # ---- Build Documentation ---- - name: Build documentation env: @@ -212,7 +213,7 @@ jobs: with: python-version: ${{ env.DEFAULT_PYTHON_VERSION }} - name: Install uv - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 + uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: false diff --git a/.github/workflows/ci-static-analysis.yml b/.github/workflows/ci-static-analysis.yml index 1e59e60f8..6a0a142dd 100644 --- a/.github/workflows/ci-static-analysis.yml +++ b/.github/workflows/ci-static-analysis.yml @@ -44,7 +44,7 @@ jobs: - name: Run Semgrep run: semgrep scan --config auto --sarif-output results.sarif - name: Upload results to GitHub code scanning - uses: github/codeql-action/upload-sarif@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0 + uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2 if: always() with: sarif_file: results.sarif diff --git a/.github/workflows/cleanup-tags.yml b/.github/workflows/cleanup-tags.yml index 3c4eca455..3e642af03 100644 --- a/.github/workflows/cleanup-tags.yml +++ b/.github/workflows/cleanup-tags.yml @@ -29,7 +29,7 @@ jobs: steps: - name: Clean temporary images if: "${{ env.TOKEN != '' }}" - uses: stumpylog/image-cleaner-action/ephemeral@4fe057d991d63b8f6d5d22c40f17c1bca2226537 # v0.12.0 + uses: stumpylog/image-cleaner-action/ephemeral@21f875bab2376314e0525c614e923c669434f0e4 # v0.13.0 with: token: "${{ env.TOKEN }}" owner: "${{ github.repository_owner }}" @@ -56,7 +56,7 @@ jobs: steps: - name: Clean untagged images if: "${{ env.TOKEN != '' }}" - uses: stumpylog/image-cleaner-action/untagged@4fe057d991d63b8f6d5d22c40f17c1bca2226537 # v0.12.0 + uses: stumpylog/image-cleaner-action/untagged@21f875bab2376314e0525c614e923c669434f0e4 # v0.13.0 with: token: "${{ env.TOKEN }}" owner: "${{ github.repository_owner }}" diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 282f6ba85..d91dcd1c6 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,7 +39,7 @@ jobs: persist-credentials: false # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL - uses: github/codeql-action/init@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0 + uses: github/codeql-action/init@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2 with: languages: ${{ matrix.language }} # If you wish to specify custom queries, you can do so here or in a config file. @@ -47,4 +47,4 @@ jobs: # Prefix the list here with "+" to use these queries and those in the config file. # queries: ./path/to/local/query, your-org/your-repo/queries@main - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@b96794f015dfd88f77b49b1c93e0fa7110f94c63 # v4.38.0 + uses: github/codeql-action/analyze@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2 diff --git a/.github/workflows/crowdin.yml b/.github/workflows/crowdin.yml index 603f1e6ee..14dd80f23 100644 --- a/.github/workflows/crowdin.yml +++ b/.github/workflows/crowdin.yml @@ -22,7 +22,7 @@ jobs: token: ${{ secrets.PNGX_BOT_PAT }} persist-credentials: false - name: crowdin action - uses: crowdin/github-action@0d5670f539973aea2f01abce61a8989934df0025 # v3.0.2 + uses: crowdin/github-action@9c23991700c0ec5256fd41089b9d9d7d540e424e # v3.3.0 with: upload_translations: false download_translations: true diff --git a/.github/workflows/translate-strings.yml b/.github/workflows/translate-strings.yml index 122a9dce8..b3bea5765 100644 --- a/.github/workflows/translate-strings.yml +++ b/.github/workflows/translate-strings.yml @@ -25,11 +25,12 @@ jobs: id: setup-python uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 - name: Install system dependencies - run: | - sudo apt-get update -qq - sudo apt-get install -qq --no-install-recommends gettext + timeout-minutes: 12 + uses: $/.github/actions/apt-install + with: + packages: gettext - name: Install uv - uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0 + uses: astral-sh/setup-uv@c18668ad3cf93ea998bef934396af7bb5c839dc7 # v10.2.0 with: version: ${{ env.DEFAULT_UV_VERSION }} enable-cache: true diff --git a/.mypy-baseline.txt b/.mypy-baseline.txt index 53cd76c5a..ef9043fd8 100644 --- a/.mypy-baseline.txt +++ b/.mypy-baseline.txt @@ -19,31 +19,34 @@ src/documents/admin.py:0: error: Skipping analyzing "auditlog.admin": module is src/documents/admin.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/admin.py:0: error: Skipping analyzing "treenode.admin": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/barcodes.py:0: error: "Image" has no attribute "filename" [attr-defined] -src/documents/barcodes.py:0: error: Cannot find implementation or library stub for module named "zxingcpp" [import-not-found] -src/documents/barcodes.py:0: error: Library stubs not installed for "regex" [import-untyped] src/documents/bulk_download.py:0: error: Return type "None" of "add_document" incompatible with return type "Never" in supertype "BulkArchiveStrategy" [override] src/documents/bulk_download.py:0: error: Return type "None" of "add_document" incompatible with return type "Never" in supertype "BulkArchiveStrategy" [override] src/documents/bulk_download.py:0: error: Return type "None" of "add_document" incompatible with return type "Never" in supertype "BulkArchiveStrategy" [override] src/documents/bulk_edit.py:0: error: "int" object is not iterable [misc] src/documents/bulk_edit.py:0: error: "int" object is not iterable [misc] +src/documents/bulk_edit.py:0: error: Argument "args" to "apply_async" of "Task" has incompatible type "list[int]"; expected "tuple[Any, ...] | None" [arg-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "field_id" [has-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "field_id" [has-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "value" [has-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "value" [has-type] +src/documents/bulk_edit.py:0: error: Cannot determine type of "value" [has-type] src/documents/bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/bulk_edit.py:0: error: Incompatible return value type (got "Literal['ERROR']", expected "Literal['OK']") [return-value] src/documents/bulk_edit.py:0: error: Incompatible type for lookup 'id': (got "Correspondent", expected "str | int") [misc] src/documents/bulk_edit.py:0: error: Incompatible type for lookup 'id': (got "DocumentType", expected "str | int") [misc] src/documents/bulk_edit.py:0: error: Incompatible type for lookup 'id': (got "StoragePath", expected "str | int") [misc] -src/documents/bulk_edit.py:0: error: Incompatible types in assignment (expression has type "dict_items[Any, Any] | list[int]", variable has type "list[int] | dict[Any, Any]") [assignment] +src/documents/bulk_edit.py:0: error: Incompatible types in assignment (expression has type "int | None", target has type "datetime") [assignment] src/documents/bulk_edit.py:0: error: Invalid index type "str" for "dict[FieldDataType, str]"; expected type "FieldDataType" [index] +src/documents/bulk_edit.py:0: error: List comprehension has incompatible type List[tuple[int, Any]]; expected List[int] [misc] src/documents/bulk_edit.py:0: error: List comprehension has incompatible type List[tuple[int, None]]; expected List[int] [misc] src/documents/bulk_edit.py:0: error: Missing named argument "p" for "remove" of "PageList" [call-arg] src/documents/bulk_edit.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/bulk_edit.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/bulk_edit.py:0: error: Need type annotation for "to_create" (hint: "to_create: list[] = ...") [var-annotated] +src/documents/bulk_edit.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/bulk_edit.py:0: error: Unexpected keyword argument "transaction_id" for "delete" of "QuerySet" [call-arg] src/documents/caching.py:0: error: Argument 1 to "hexlify" has incompatible type "bytes | None"; expected "Buffer" [arg-type] src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/caching.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/caching.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/caching.py:0: error: Missing type arguments for generic type "dict" [type-arg] @@ -51,9 +54,11 @@ src/documents/caching.py:0: error: Missing type arguments for generic type "list src/documents/caching.py:0: error: Missing type arguments for generic type "list" [type-arg] src/documents/caching.py:0: error: Missing type arguments for generic type "list" [type-arg] src/documents/caching.py:0: error: Missing type arguments for generic type "list" [type-arg] -src/documents/caching.py:0: error: Need type annotation for "_data" [var-annotated] src/documents/checks.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/checks.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/classifier.py:0: error: "MLPClassifier" has no attribute "_best_coefs" [attr-defined] +src/documents/classifier.py:0: error: "MLPClassifier" has no attribute "_best_intercepts" [attr-defined] +src/documents/classifier.py:0: error: "MLPClassifier" has no attribute "_optimizer" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit" [attr-defined] @@ -61,15 +66,15 @@ src/documents/classifier.py:0: error: "None" has no attribute "fit" [attr-defin src/documents/classifier.py:0: error: "None" has no attribute "fit_transform" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit_transform" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "fit_transform" [attr-defined] -src/documents/classifier.py:0: error: "None" has no attribute "stem" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "stop_words_" [attr-defined] src/documents/classifier.py:0: error: "None" has no attribute "transform" [attr-defined] +src/documents/classifier.py:0: error: "None" has no attribute "transform" [attr-defined] +src/documents/classifier.py:0: error: Argument 1 to "_strip_training_state" of "DocumentClassifier" has incompatible type "None"; expected "MLPClassifier" [arg-type] +src/documents/classifier.py:0: error: Argument 1 to "_strip_training_state" of "DocumentClassifier" has incompatible type "None"; expected "MLPClassifier" [arg-type] +src/documents/classifier.py:0: error: Argument 1 to "_strip_training_state" of "DocumentClassifier" has incompatible type "None"; expected "MLPClassifier" [arg-type] +src/documents/classifier.py:0: error: Argument 1 to "_strip_training_state" of "DocumentClassifier" has incompatible type "None"; expected "MLPClassifier" [arg-type] src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "CountVectorizer", variable has type "None") [assignment] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "LabelBinarizer", variable has type "None") [assignment] @@ -82,15 +87,11 @@ src/documents/classifier.py:0: error: Incompatible types in assignment (expressi src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "DocumentClassifier") [assignment] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "DocumentClassifier") [assignment] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "DocumentClassifier") [assignment] -src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "frozenset[Any]", variable has type "None") [assignment] src/documents/classifier.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "None") [assignment] +src/documents/classifier.py:0: error: Item "None" of "str | None" has no attribute "encode" [union-attr] src/documents/classifier.py:0: error: List comprehension has incompatible type List[int]; expected List[list[int]] [misc] src/documents/classifier.py:0: error: Module "sklearn.exceptions" has no attribute "InconsistentVersionWarning" [attr-defined] -src/documents/classifier.py:0: error: Skipping analyzing "nltk": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/classifier.py:0: error: Skipping analyzing "nltk.corpus": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/classifier.py:0: error: Skipping analyzing "nltk.stem": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/classifier.py:0: error: Skipping analyzing "nltk.tokenize": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/classifier.py:0: error: Unsupported right operand type for in ("None") [operator] +src/documents/classifier.py:0: error: Unsupported operand types for >= ("datetime" and "None") [operator] src/documents/conditionals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/conditionals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/conditionals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -113,7 +114,7 @@ src/documents/consumer.py:0: error: Argument "logger" to "run_subprocess" has in src/documents/consumer.py:0: error: Argument "text" to "_store" of "ConsumerPlugin" has incompatible type "str | Any | None"; expected "str" [arg-type] src/documents/consumer.py:0: error: Argument 1 to "compute_checksum" has incompatible type "Path | None"; expected "Path" [arg-type] src/documents/consumer.py:0: error: Argument 1 to "create_source_path_directory" has incompatible type "Path | None"; expected "Path" [arg-type] -src/documents/consumer.py:0: error: Argument 2 to "parse" of "DateParserPluginBase" has incompatible type "str | Any | None"; expected "str" [arg-type] +src/documents/consumer.py:0: error: Argument 1 to "validate_path_in_root" has incompatible type "Path | None"; expected "Path" [arg-type] src/documents/consumer.py:0: error: Argument 2 to "parse_w_workflow_placeholders" has incompatible type "str | None"; expected "str" [arg-type] src/documents/consumer.py:0: error: Argument 3 to "parse_w_workflow_placeholders" has incompatible type "str | None"; expected "str" [arg-type] src/documents/consumer.py:0: error: Argument 3 to "run_subprocess" has incompatible type "LoggerAdapter[Logger]"; expected "Logger | None" [arg-type] @@ -147,6 +148,18 @@ src/documents/data_models.py:0: error: Item "list[str]" of "Any | list[str]" has src/documents/data_models.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/data_models.py:0: error: Value of type "Group | dict[Any, Any]" is not indexable [index] src/documents/data_models.py:0: error: Value of type "Group | dict[Any, Any]" is not indexable [index] +src/documents/export/sinks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "AbstractContextManager" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/export/sinks.py:0: error: Missing type arguments for generic type "list" [type-arg] src/documents/file_handling.py:0: error: Argument 1 to "format_filename" has incompatible type "Document | None"; expected "Document" [arg-type] src/documents/file_handling.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/file_handling.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -181,6 +194,8 @@ src/documents/filters.py:0: error: Function is missing a type annotation [no-un src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/filters.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/filters.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -197,7 +212,7 @@ src/documents/filters.py:0: error: Incompatible types in assignment (expression src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "ListField", variable has type "BooleanField | None") [assignment] src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "MonetaryAmountField", variable has type "BooleanField | None") [assignment] src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "SelectField", variable has type "BooleanField | None") [assignment] -src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "Sum", variable has type "Subquery | None") [assignment] +src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "Sum", variable has type "Subquery[Field[Any, Any]] | None") [assignment] src/documents/filters.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "list[str]") [assignment] src/documents/filters.py:0: error: Item "None" of "Any | None" has no attribute "get" [union-attr] src/documents/filters.py:0: error: Item "None" of "Any | None" has no attribute "get" [union-attr] @@ -206,14 +221,11 @@ src/documents/filters.py:0: error: Missing type arguments for generic type "Call src/documents/filters.py:0: error: Missing type arguments for generic type "Field" [type-arg] src/documents/filters.py:0: error: Need type annotation for "_annotations" (hint: "_annotations: dict[, ] = ...") [var-annotated] src/documents/filters.py:0: error: Need type annotation for "_model_serializer" [var-annotated] -src/documents/filters.py:0: error: Skipping analyzing "rest_framework_guardian.filters": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/filters.py:0: error: Value of type "Any | None" is not indexable [index] src/documents/loggers.py:0: error: "LoggingMixin" has no attribute "logging_name" [attr-defined] src/documents/mail.py:0: error: Incompatible types in assignment (expression has type "Message[str, str]", variable has type "bytes") [assignment] src/documents/management/commands/convert_mariadb_uuid.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/management/commands/convert_mariadb_uuid.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/management/commands/convert_mariadb_uuid.py:0: error: Need type annotation for "new_field" [var-annotated] -src/documents/management/commands/convert_mariadb_uuid.py:0: error: Need type annotation for "old_field" [var-annotated] src/documents/management/commands/document_archiver.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/management/commands/document_archiver.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/management/commands/document_consumer.py:0: error: "str" has no attribute "is_file" [attr-defined] @@ -222,14 +234,9 @@ src/documents/management/commands/document_consumer.py:0: error: Function is mis src/documents/management/commands/document_consumer.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/management/commands/document_consumer.py:0: error: Incompatible types in assignment (expression has type "Path", variable has type "str") [assignment] src/documents/management/commands/document_create_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/management/commands/document_exporter.py:0: error: "None" has no attribute "write" [attr-defined] -src/documents/management/commands/document_exporter.py:0: error: "None" has no attribute "write" [attr-defined] -src/documents/management/commands/document_exporter.py:0: error: "None" has no attribute "write" [attr-defined] src/documents/management/commands/document_exporter.py:0: error: Argument 1 to "add" of "set" has incompatible type "Path"; expected "str" [arg-type] src/documents/management/commands/document_exporter.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/management/commands/document_exporter.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/management/commands/document_exporter.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/management/commands/document_exporter.py:0: error: Incompatible types in assignment (expression has type "TextIOWrapper[_WrappedBuffer]", variable has type "None") [assignment] src/documents/management/commands/document_exporter.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "Path") [assignment] src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] @@ -238,9 +245,6 @@ src/documents/management/commands/document_exporter.py:0: error: Missing type ar src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] -src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] -src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] -src/documents/management/commands/document_exporter.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_exporter.py:0: error: Skipping analyzing "allauth.mfa.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/management/commands/document_exporter.py:0: error: Skipping analyzing "allauth.socialaccount.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/management/commands/document_exporter.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -260,6 +264,10 @@ src/documents/management/commands/document_importer.py:0: error: Missing type ar src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/management/commands/document_importer.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/management/commands/document_importer.py:0: error: Need type annotation for "manifest_paths" (hint: "manifest_paths: list[] = ...") [var-annotated] src/documents/management/commands/document_importer.py:0: error: Skipping analyzing "auditlog.registry": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/management/commands/document_importer.py:0: error: Skipping analyzing "ijson": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -292,13 +300,8 @@ src/documents/matching.py:0: error: Function is missing a type annotation for on src/documents/matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] -src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "tuple[str]", variable has type "str") [assignment] -src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "tuple[str]", variable has type "str") [assignment] -src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "tuple[str]", variable has type "str") [assignment] -src/documents/matching.py:0: error: Incompatible types in assignment (expression has type "tuple[str]", variable has type "str") [assignment] src/documents/matching.py:0: error: Unsupported left operand type for & ("None") [operator] src/documents/matching.py:0: error: Unsupported left operand type for & ("None") [operator] -src/documents/matching.py:0: error: Value of type variable "AnyStr" of "fnmatch" cannot be "object" [type-var] src/documents/migrations/0001_squashed.py:0: error: Skipping analyzing "multiselectfield": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/migrations/0001_squashed.py:0: error: Skipping analyzing "multiselectfield.db": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/migrations/0001_squashed.py:0: error: Skipping analyzing "multiselectfield.db.fields": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -340,37 +343,13 @@ src/documents/models.py:0: error: Function is missing a type annotation [no-unt src/documents/models.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/models.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/models.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/models.py:0: error: Need type annotation for "created" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "created" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "created" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "document" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "document" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "document" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "document" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "expiration" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "field" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "file_version" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "note" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "owner" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "run_at" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "slug" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "type" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "user" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_bool" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_date" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_float" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_int" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_long_text" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_monetary" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_select" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_text" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "value_url" [var-annotated] -src/documents/models.py:0: error: Need type annotation for "workflow" [var-annotated] src/documents/models.py:0: error: Signature of "delete" incompatible with supertype "django.db.models.base.Model" [override] src/documents/models.py:0: error: Skipping analyzing "auditlog.registry": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/models.py:0: error: Skipping analyzing "django_softdelete.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/models.py:0: error: Skipping analyzing "multiselectfield": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/models.py:0: error: Skipping analyzing "treenode.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/models.py:0: error: Unexpected keyword argument "transaction_id" for "delete" of "Model" [call-arg] +src/documents/models.py:0: error: Unexpected keyword argument "transaction_id" for "delete" of "QuerySet" [call-arg] src/documents/parsers.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/parsers.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/parsers.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -383,7 +362,9 @@ src/documents/parsers.py:0: error: Function is missing a type annotation for one src/documents/parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/permissions.py:0: error: "type[Model]" has no attribute "global_objects" [attr-defined] +src/documents/permissions.py:0: error: "type[Model]" has no attribute "objects" [attr-defined] +src/documents/permissions.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -392,74 +373,55 @@ src/documents/permissions.py:0: error: Function is missing a type annotation [n src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/permissions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/permissions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/permissions.py:0: error: Item "list[str]" of "Any | list[str] | QuerySet[User, User]" has no attribute "exclude" [union-attr] src/documents/permissions.py:0: error: Item "list[str]" of "Any | list[str] | QuerySet[User, User]" has no attribute "exists" [union-attr] src/documents/permissions.py:0: error: Item "list[str]" of "Any | list[str] | QuerySet[User, User]" has no attribute "exists" [union-attr] +src/documents/permissions.py:0: error: Missing type arguments for generic type "QuerySet" [type-arg] src/documents/permissions.py:0: error: Missing type arguments for generic type "dict" [type-arg] -src/documents/plugins/date_parsing/regex_parser.py:0: error: Library stubs not installed for "regex" [import-untyped] +src/documents/permissions.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/permissions.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/permissions.py:0: error: Type argument "int" of "QuerySet" must be a subtype of "Model" [type-var] +src/documents/permissions.py:0: error: Type argument "int" of "QuerySet" must be a subtype of "Model" [type-var] src/documents/plugins/helpers.py:0: error: Skipping analyzing "channels_redis.pubsub": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/regex.py:0: error: "error" has no attribute "msg" [attr-defined] src/documents/regex.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/regex.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/regex.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/regex.py:0: error: Library stubs not installed for "regex" [import-untyped] +src/documents/regex.py:0: error: Missing type arguments for generic type "Pattern" [type-arg] src/documents/sanity_checker.py:0: error: Unused "type: ignore" comment [unused-ignore] src/documents/schema.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/schema.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/schema.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/search/_backend.py:0: error: "AbstractBaseUser" has no attribute "is_superuser" [attr-defined] src/documents/search/_backend.py:0: error: "None" has no attribute "acquire" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "add_document" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "commit" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "delete_documents_by_query" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "parse_query" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "reload" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "schema" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "searcher" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "searcher" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "searcher" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "searcher" [attr-defined] -src/documents/search/_backend.py:0: error: "None" has no attribute "writer" [attr-defined] -src/documents/search/_backend.py:0: error: Argument 1 to "build_permission_filter" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "build_permission_filter" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "parse_simple_text_highlight_query" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "parse_simple_text_query" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "parse_simple_title_query" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "parse_user_query" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "range_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "range_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "range_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "regex_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "register_tokenizers" has incompatible type "None"; expected "Index" [arg-type] -src/documents/search/_backend.py:0: error: Argument 1 to "term_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 2 to "add_unsigned" of "Document" has incompatible type "int | None"; expected "int" [arg-type] -src/documents/search/_backend.py:0: error: Argument 2 to "add_unsigned" of "Document" has incompatible type "int | None"; expected "int" [arg-type] -src/documents/search/_backend.py:0: error: Argument 2 to "add_unsigned" of "Document" has incompatible type "int | None"; expected "int" [arg-type] -src/documents/search/_backend.py:0: error: Argument 3 to "create" of "SnippetGenerator" has incompatible type "None"; expected "Schema" [arg-type] -src/documents/search/_backend.py:0: error: Argument 3 to "create" of "SnippetGenerator" has incompatible type "None"; expected "Schema" [arg-type] +src/documents/search/_backend.py:0: error: Argument "args" to "apply_async" of "Task" has incompatible type "list[int]"; expected "tuple[Any, ...] | None" [arg-type] +src/documents/search/_backend.py:0: error: Argument "args" to "apply_async" of "Task" has incompatible type "list[int]"; expected "tuple[Any, ...] | None" [arg-type] +src/documents/search/_backend.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/search/_backend.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "Index", variable has type "None") [assignment] -src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "Index", variable has type "None") [assignment] -src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "Index", variable has type "None") [assignment] -src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "Schema", variable has type "None") [assignment] src/documents/search/_backend.py:0: error: Incompatible types in assignment (expression has type "SoftFileLock", variable has type "None") [assignment] -src/documents/search/_backend.py:0: error: Item "str" of "Any | str" has no attribute "pk" [union-attr] -src/documents/search/_backend.py:0: error: Library stubs not installed for "regex" [import-untyped] -src/documents/search/_backend.py:0: error: List comprehension has incompatible type List[tuple[Any, Any]]; expected List[tuple[Any]] [misc] -src/documents/search/_backend.py:0: error: List comprehension has incompatible type List[tuple[Any, Any]]; expected List[tuple[Any]] [misc] +src/documents/search/_backend.py:0: error: List comprehension has incompatible type List[tuple[DocAddress, Any]]; expected List[tuple[DocAddress]] [misc] +src/documents/search/_backend.py:0: error: List comprehension has incompatible type List[tuple[DocAddress, Any]]; expected List[tuple[DocAddress]] [misc] +src/documents/search/_backend.py:0: error: Return type "Iterator[tuple[Document, ViewerGrant]]" of "__iter__" incompatible with return type "Iterator[Document]" in supertype "documents.utils.QuerySetStream" [override] src/documents/search/_backend.py:0: error: Tuple index out of range [misc] src/documents/search/_backend.py:0: error: Tuple index out of range [misc] src/documents/search/_backend.py:0: error: Tuple index out of range [misc] -src/documents/search/_query.py:0: error: Argument 3 to "regex_phrase_query" of "Query" has incompatible type "list[str]"; expected "list[str | tuple[int, str]]" [arg-type] -src/documents/search/_query.py:0: error: Library stubs not installed for "regex" [import-untyped] +src/documents/search/_query.py:0: error: Argument "field" to "Fuzzy" has incompatible type "FieldRef | None"; expected "FieldRef" [arg-type] +src/documents/search/_query.py:0: error: Argument 3 to "Term" has incompatible type "**dict[str, int | None]"; expected "bool" [arg-type] +src/documents/search/_query.py:0: error: Argument 3 to "Term" has incompatible type "**dict[str, int | None]"; expected "bool" [arg-type] +src/documents/search/_query.py:0: error: Unexpected keyword argument "children" for "Node" [call-arg] +src/documents/search/_schema.py:0: error: Redundant cast to "Path" [redundant-cast] +src/documents/search/_schema.py:0: error: Unexpected keyword argument "fast" for "add_json_field" of "SchemaBuilder" [call-arg] +src/documents/serialisers.py:0: error: "type[_MT?]" has no attribute "_meta" [attr-defined] src/documents/serialisers.py:0: error: "type[_MT?]" has no attribute "objects" [attr-defined] src/documents/serialisers.py:0: error: "type[_MT?]" has no attribute "objects" [attr-defined] src/documents/serialisers.py:0: error: "type[_MT?]" has no attribute "objects" [attr-defined] src/documents/serialisers.py:0: error: Argument "choices" to "ChoiceField" has incompatible type "type[FieldDataType]"; expected "Sequence[Any]" [arg-type] src/documents/serialisers.py:0: error: Argument "default" to "MultipleChoiceField" has incompatible type "set[DocumentSource]"; expected "set[str | int] | set[str] | set[int] | Callable[[], set[str | int] | set[str] | set[int]] | _Empty | None" [arg-type] -src/documents/serialisers.py:0: error: Argument 1 of "get_value" is incompatible with supertype "rest_framework.fields.Field"; supertype defines the argument type as "Mapping[Any, Any]" [override] +src/documents/serialisers.py:0: error: Argument 1 of "get_value" is incompatible with supertype "rest_framework.fields.Field"; supertype defines the argument type as "Mapping[str, Any]" [override] src/documents/serialisers.py:0: error: Argument 1 of "update" is incompatible with supertype "rest_framework.serializers.BaseSerializer"; supertype defines the argument type as "dict[str, Any]" [override] +src/documents/serialisers.py:0: error: Argument 1 to "__get__" of "BaseManager" has incompatible type "PrimaryKeyRelatedField[Any]"; expected "Options[Any] | None" [arg-type] src/documents/serialisers.py:0: error: Argument 1 to "get_value_field_name" of "CustomFieldInstance" has incompatible type "str"; expected "FieldDataType" [arg-type] -src/documents/serialisers.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc" [arg-type] +src/documents/serialisers.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] src/documents/serialisers.py:0: error: Argument 1 to "list" has incompatible type "QuerySet[Document, TypedDict({'id': int, 'title': str, 'deleted_at': datetime | None})]"; expected "Iterable[dict[str, Any]]" [arg-type] src/documents/serialisers.py:0: error: Expected iterable as variadic argument [misc] src/documents/serialisers.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -536,6 +498,15 @@ src/documents/serialisers.py:0: error: Function is missing a type annotation [n src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -575,7 +546,6 @@ src/documents/serialisers.py:0: error: Function is missing a type annotation for src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "PrimaryKeyRelatedField[Tag]", base class "Field" defined the type as "BaseSerializer[Any]") [assignment] -src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Any, Any]", variable has type "UnknownQuerySet[Document, Document]") [assignment] src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "Sequence[str] | tuple[Lower]", variable has type "Sequence[str] | None") [assignment] src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "WorkflowActionWebhookSerializer", variable has type "WorkflowActionEmailSerializer") [assignment] src/documents/serialisers.py:0: error: Incompatible types in assignment (expression has type "type[Correspondent]", variable has type "type[Tag] | None") [assignment] @@ -594,24 +564,29 @@ src/documents/serialisers.py:0: error: Item "None" of "Field[Any, Any, Any, Any] src/documents/serialisers.py:0: error: Item "None" of "Field[Any, Any, Any, Any] | None" has no attribute "fetch_documents" [union-attr] src/documents/serialisers.py:0: error: Item "None" of "Field[Any, Any, Any, Any] | None" has no attribute "get_shared_object_pks" [union-attr] src/documents/serialisers.py:0: error: Item "None" of "Field[Any, Any, Any, Any] | None" has no attribute "get_shared_object_pks" [union-attr] -src/documents/serialisers.py:0: error: Item "None" of "ObjectPermissionChecker | None" has no attribute "has_perm" [union-attr] src/documents/serialisers.py:0: error: Item "list[str]" of "Any | list[str]" has no attribute "values_list" [union-attr] src/documents/serialisers.py:0: error: Missing type arguments for generic type "Field" [type-arg] src/documents/serialisers.py:0: error: Missing type arguments for generic type "Iterable" [type-arg] src/documents/serialisers.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/serialisers.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/serialisers.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/serialisers.py:0: error: Need type annotation for "document" [var-annotated] src/documents/serialisers.py:0: error: Need type annotation for "documents" [var-annotated] src/documents/serialisers.py:0: error: Need type annotation for "permissions_dict" [var-annotated] -src/documents/serialisers.py:0: error: Need type annotation for "with_perms" [var-annotated] src/documents/serialisers.py:0: error: No overload variant of "get" of "dict" matches argument types "str", "str" [call-overload] src/documents/serialisers.py:0: error: No overload variant of "get" of "dict" matches argument types "str", "str" [call-overload] src/documents/serialisers.py:0: error: No overload variant of "get" of "dict" matches argument types "str", "str" [call-overload] src/documents/serialisers.py:0: error: Skipping analyzing "auditlog.context": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/serialisers.py:0: error: Unsupported target for indexed assignment ("Mapping[str, Any] | Any") [index] +src/documents/serialisers.py:0: error: Unsupported target for indexed assignment ("Mapping[str, Any] | Any") [index] +src/documents/serialisers.py:0: error: Unsupported target for indexed assignment ("Mapping[str, Any] | Any") [index] +src/documents/serialisers.py:0: error: Unsupported target for indexed assignment ("Mapping[str, Any]") [index] src/documents/serialisers.py:0: error: Value of type "Any | None" is not indexable [index] src/documents/serialisers.py:0: error: Value of type "Any | None" is not indexable [index] src/documents/serialisers.py:0: error: Value of type "Match[str] | None" is not indexable [index] src/documents/signals/handlers.py:0: error: "BaseDatabaseWrapper" has no attribute "close_pool" [attr-defined] +src/documents/signals/handlers.py:0: error: "BaseDatabaseWrapper" has no attribute "close_pool" [attr-defined] +src/documents/signals/handlers.py:0: error: "Task[[int, int], Any]" has no attribute "delay_on_commit" [attr-defined] src/documents/signals/handlers.py:0: error: Argument 1 to "Path" has incompatible type "Any | None"; expected "str | PathLike[str]" [arg-type] src/documents/signals/handlers.py:0: error: Argument 1 to "Path" has incompatible type "Any | None"; expected "str | PathLike[str]" [arg-type] src/documents/signals/handlers.py:0: error: Argument 1 to "Path" has incompatible type "Path | Any | None"; expected "str | PathLike[str]" [arg-type] @@ -645,9 +620,11 @@ src/documents/signals/handlers.py:0: error: Function is missing a type annotatio src/documents/signals/handlers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/signals/handlers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/signals/handlers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/signals/handlers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/signals/handlers.py:0: error: Incompatible types in assignment (expression has type "Any | None", target has type "datetime") [assignment] src/documents/signals/handlers.py:0: error: Incompatible types in assignment (expression has type "str", target has type "datetime") [assignment] src/documents/signals/handlers.py:0: error: Incompatible types in assignment (expression has type "tuple[Any, Any, Any]", variable has type "tuple[Any, Any]") [assignment] +src/documents/signals/handlers.py:0: error: Item "ConsumableDocument" of "Document | ConsumableDocument" has no attribute "pk" [union-attr] src/documents/signals/handlers.py:0: error: Item "ConsumableDocument" of "Document | ConsumableDocument" has no attribute "save" [union-attr] src/documents/signals/handlers.py:0: error: Item "ConsumableDocument" of "Document | ConsumableDocument" has no attribute "source_path" [union-attr] src/documents/signals/handlers.py:0: error: Item "ConsumableDocument" of "Document | ConsumableDocument" has no attribute "title" [union-attr] @@ -679,6 +656,9 @@ src/documents/tasks.py:0: error: Function is missing a type annotation for one o src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tasks.py:0: error: Incompatible return value type (got "str | None", expected "ConsumeFileSuccessResult | ConsumeFileStoppedResult | ConsumeFileDuplicateResult | None") [return-value] src/documents/tasks.py:0: error: Incompatible types in assignment (expression has type "Path", variable has type "str") [assignment] src/documents/tasks.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Document, Document]", variable has type "UnknownQuerySet[Document, Document]") [assignment] @@ -700,16 +680,6 @@ src/documents/templating/filters.py:0: error: Incompatible types in assignment ( src/documents/templating/filters.py:0: error: Item "str" of "str | datetime" has no attribute "strftime" [union-attr] src/documents/templating/utils.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/templating/workflows.py:0: error: Incompatible return value type (got "None", expected "str") [return-value] -src/documents/tests/conftest.py:0: error: "type[UserModelT?]" has no attribute "objects" [attr-defined] -src/documents/tests/conftest.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/conftest.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/conftest.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/conftest.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/conftest.py:0: error: Incompatible return value type (got "DocumentFactory", expected "Document") [return-value] -src/documents/tests/conftest.py:0: error: Variable "documents.tests.conftest.UserModelT" is not valid as a type [valid-type] -src/documents/tests/conftest.py:0: error: Variable "documents.tests.conftest.UserModelT" is not valid as a type [valid-type] -src/documents/tests/conftest.py:0: error: Variable "documents.tests.conftest.UserModelT" is not valid as a type [valid-type] -src/documents/tests/conftest.py:0: error: Variable "documents.tests.conftest.UserModelT" is not valid as a type [valid-type] src/documents/tests/management/test_management_base_cmd.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/management/test_management_base_cmd.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/management/test_management_base_cmd.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -744,40 +714,81 @@ src/documents/tests/management/test_management_base_cmd.py:0: error: Missing typ src/documents/tests/management/test_management_base_cmd.py:0: error: Need type annotation for "result" [var-annotated] src/documents/tests/management/test_management_base_cmd.py:0: error: Need type annotation for "result" (hint: "result: list[] = ...") [var-annotated] src/documents/tests/management/test_management_base_cmd.py:0: error: Need type annotation for "results" [var-annotated] -src/documents/tests/management/test_management_sanity_checker.py:0: error: "DocumentFactory" has no attribute "source_path"; maybe "storage_path"? [attr-defined] -src/documents/tests/management/test_management_sanity_checker.py:0: error: "DocumentFactory" has no attribute "thumbnail_path" [attr-defined] +src/documents/tests/search/test_acceptance.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/search/test_acceptance.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/search/test_backend.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/search/test_backend.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/search/test_cjk_clause.py:0: error: Argument 1 to "_build_cjk_query" has incompatible type "None"; expected "Index" [arg-type] +src/documents/tests/search/test_cjk_clause.py:0: error: Argument 1 to "_parse_cjk_text" has incompatible type "_RaisingIndex"; expected "Index" [arg-type] +src/documents/tests/search/test_cjk_clause.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] +src/documents/tests/search/test_cjk_emit_registry.py:0: error: "None" not callable [misc] +src/documents/tests/search/test_cjk_emit_registry.py:0: error: "SearchResult" has no attribute "count" [attr-defined] +src/documents/tests/search/test_cjk_leaf_rewrite.py:0: error: "None" not callable [misc] +src/documents/tests/search/test_cjk_widening.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] +src/documents/tests/search/test_date_keyword_timezone.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] +src/documents/tests/search/test_fuzzy_scoring.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 1 has incompatible type "*tuple[object, ...]"; expected "Node" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 2 has incompatible type "**dict[str, object]"; expected "Callable[[Term | Phrase], Node] | None" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 2 has incompatible type "**dict[str, object]"; expected "FieldRegistry" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 2 has incompatible type "**dict[str, object]"; expected "Index" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Argument 2 has incompatible type "**dict[str, object]"; expected "Node" [arg-type] +src/documents/tests/search/test_fuzzy_widening.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] +src/documents/tests/search/test_negated_leaf_ids.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/search/test_permission_field_isolation.py:0: error: Argument 1 to "grant_object" has incompatible type "Group | None"; expected "User | Group" [arg-type] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] +src/documents/tests/search/test_query.py:0: error: "SearchResult" has no attribute "count" [attr-defined] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Argument 2 to "build_permission_filter" has incompatible type "AbstractBaseUser"; expected "AbstractUser" [arg-type] +src/documents/tests/search/test_query.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/search/test_query.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] src/documents/tests/search/test_query.py:0: error: Unexpected attribute "pk" for model "AbstractBaseUser" [misc] +src/documents/tests/search/test_schema.py:0: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | None]" [index] +src/documents/tests/search/test_schema.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/tests/search/test_schema.py:0: error: Value expression in dictionary comprehension has incompatible type "str | Any"; expected type "dict[Any, Any]" [misc] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Argument 1 to "update" of "MutableMapping" has incompatible type "dict[str, object]"; expected "SupportsKeysAndGetItem[str, str | int | None]" [arg-type] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Incompatible return value type (got "str | Any", expected "list[dict[Any, Any]]") [return-value] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | None]" [index] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/tests/search/test_schema_fingerprint.py:0: error: Module "pytest_django.fixtures" has no attribute "SettingsWrapper" [attr-defined] src/documents/tests/search/test_tokenizer.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_tokenizer.py:0: error: "SearchResult" has no attribute "count" [attr-defined] src/documents/tests/search/test_tokenizer.py:0: error: "SearchResult" has no attribute "count" [attr-defined] -src/documents/tests/test_admin.py:0: error: "None" has no attribute "searcher" [attr-defined] +src/documents/tests/search/test_tokenizer.py:0: error: "SearchResult" has no attribute "count" [attr-defined] +src/documents/tests/search/test_widen_leaf.py:0: error: Argument "child" to "Boosted" has incompatible type "Node | None"; expected "Node" [arg-type] +src/documents/tests/search/test_widen_leaf.py:0: error: Argument "children" to "Or" has incompatible type "tuple[Term, Node | None]"; expected "tuple[Node, ...]" [arg-type] +src/documents/tests/search/test_widen_leaf.py:0: error: Argument "children" to "Or" has incompatible type "tuple[Term, Node | None]"; expected "tuple[Node, ...]" [arg-type] +src/documents/tests/search/test_widen_leaf.py:0: error: Argument "children" to "Or" has incompatible type "tuple[Term, Node | None]"; expected "tuple[Node, ...]" [arg-type] src/documents/tests/test_admin.py:0: error: "PaperlessUserForm" has no attribute "request" [attr-defined] src/documents/tests/test_admin.py:0: error: "PaperlessUserForm" has no attribute "request" [attr-defined] -src/documents/tests/test_admin.py:0: error: Argument 1 to "range_query" of "Query" has incompatible type "None"; expected "Schema" [arg-type] src/documents/tests/test_admin.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_admin.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_admin.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] src/documents/tests/test_api_app_config.py:0: error: "ImageFile" has no attribute "text" [attr-defined] +src/documents/tests/test_api_app_config.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_app_config.py:0: error: List item 0 has incompatible type "tuple[str, dict[str, int], bytes]"; expected "tuple[str, int | list[int] | str, bytes]" [list-item] +src/documents/tests/test_api_app_config.py:0: error: List item 1 has incompatible type "tuple[str, dict[str, None], bytes]"; expected "tuple[str, int | list[int] | str, bytes]" [list-item] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_bulk_download.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] src/documents/tests/test_api_bulk_download.py:0: error: Value of type variable "_StrPathT" of "copy" cannot be "Path | None" [type-var] src/documents/tests/test_api_bulk_edit.py:0: error: "type[MatchingModel]" has no attribute "objects" [attr-defined] src/documents/tests/test_api_bulk_edit.py:0: error: "type[MatchingModel]" has no attribute "objects" [attr-defined] @@ -816,13 +827,49 @@ src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type a src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_bulk_edit.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/tests/test_api_chat.py:0: error: "_MonkeyPatchedResponse" has no attribute "streaming_content" [attr-defined] src/documents/tests/test_api_custom_fields.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_document_versions.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] src/documents/tests/test_api_documents.py:0: error: "None" object is not iterable [misc] src/documents/tests/test_api_documents.py:0: error: "object" has no attribute "get" [attr-defined] src/documents/tests/test_api_documents.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 1 to "assertCountEqual" of "TestCase" has incompatible type "list[int] | None"; expected "Iterable[Any]" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_api_documents.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedResponse"; expected "StreamingHttpResponse" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 2 to "assertNotIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 2 to "assertNotIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] src/documents/tests/test_api_documents.py:0: error: Argument 3 to "generic" of "APIClient" has incompatible type "bytes"; expected "str" [arg-type] @@ -830,6 +877,7 @@ src/documents/tests/test_api_documents.py:0: error: Function is missing a type a src/documents/tests/test_api_documents.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_documents.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_documents.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_documents.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_documents.py:0: error: Item "None" of "SavedViewFilterRule | None" has no attribute "value" [union-attr] src/documents/tests/test_api_documents.py:0: error: Value of type "Any | None" is not indexable [index] src/documents/tests/test_api_documents.py:0: error: Value of type "Any | None" is not indexable [index] @@ -851,6 +899,9 @@ src/documents/tests/test_api_filter_by_custom_fields.py:0: error: Missing type a src/documents/tests/test_api_filter_by_custom_fields.py:0: error: Need type annotation for "documents" (hint: "documents: list[] = ...") [var-annotated] src/documents/tests/test_api_objects.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_objects.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_objects.py:0: error: Item "Group" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] +src/documents/tests/test_api_objects.py:0: error: Item "dict[Any, Any]" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] +src/documents/tests/test_api_objects.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_api_permissions.py:0: error: Argument 2 to "get_perms" has incompatible type "Tag | None"; expected "Model" [arg-type] src/documents/tests/test_api_permissions.py:0: error: Argument 2 to "get_perms" has incompatible type "Tag | None"; expected "Model" [arg-type] src/documents/tests/test_api_permissions.py:0: error: Argument 2 to "has_perm" of "ObjectPermissionChecker" has incompatible type "Tag | None"; expected "Model" [arg-type] @@ -861,6 +912,7 @@ src/documents/tests/test_api_permissions.py:0: error: Item "None" of "Tag | None src/documents/tests/test_api_permissions.py:0: error: Item "None" of "Tag | None" has no attribute "owner" [union-attr] src/documents/tests/test_api_permissions.py:0: error: Skipping analyzing "allauth.mfa.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/tests/test_api_permissions.py:0: error: Skipping analyzing "allauth.mfa.totp.internal": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/tests/test_api_post_document_nfc.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/test_api_profile.py:0: error: "User" has no attribute "socialaccount_set"; maybe "mailaccount_set"? [attr-defined] src/documents/tests/test_api_profile.py:0: error: "User" has no attribute "socialaccount_set"; maybe "mailaccount_set"? [attr-defined] src/documents/tests/test_api_profile.py:0: error: "User" has no attribute "socialaccount_set"; maybe "mailaccount_set"? [attr-defined] @@ -898,10 +950,17 @@ src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] +src/documents/tests/test_api_schema.py:0: error: Value of type "SchemaGenerator" is not indexable [index] src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_search.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_search.py:0: error: Need type annotation for "seen_ids" (hint: "seen_ids: list[] = ...") [var-annotated] src/documents/tests/test_api_search.py:0: error: Unsupported left operand type for < ("None") [operator] src/documents/tests/test_api_search.py:0: error: Unsupported operand types for < ("int" and "None") [operator] @@ -912,30 +971,25 @@ src/documents/tests/test_api_status.py:0: error: Function is missing a type anno src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "DocumentFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "id" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "id" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "id" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "id" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: "PaperlessTaskFactory" has no attribute "pk" [attr-defined] -src/documents/tests/test_api_tasks.py:0: error: Argument 2 to "get" of "APIClient" has incompatible type "dict[str, Faker]"; expected "Mapping[str, str | bytes | float | Iterable[str | bytes | float]] | Iterable[tuple[str, str | bytes | float | Iterable[str | bytes | float]]] | None" [arg-type] -src/documents/tests/test_api_tasks.py:0: error: Argument 3 to "assign_perm" has incompatible type "DocumentFactory"; expected "Model | None" [arg-type] +src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_status.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_api_status.py:0: error: Need type annotation for "ping_response" [var-annotated] src/documents/tests/test_api_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_uisettings.py:0: error: Argument 1 to "assertDictEqual" of "TestCase" has incompatible type "Any | None"; expected "Mapping[Any, object]" [arg-type] +src/documents/tests/test_api_workflows.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_api_workflows.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_api_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_api_workflows.py:0: error: Item "None" of "Correspondent | None" has no attribute "pk" [union-attr] +src/documents/tests/test_api_workflows.py:0: error: Item "None" of "WorkflowAction | None" has no attribute "ai_create_missing" [union-attr] +src/documents/tests/test_api_workflows.py:0: error: Item "None" of "WorkflowAction | None" has no attribute "ai_overwrite_existing" [union-attr] +src/documents/tests/test_api_workflows.py:0: error: Item "None" of "WorkflowAction | None" has no attribute "ai_suggestion_fields" [union-attr] +src/documents/tests/test_api_workflows.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/tests/test_barcodes.py:0: error: "GetReaderPluginMixin" has no attribute "dirs" [attr-defined] src/documents/tests/test_barcodes.py:0: error: Argument 1 to "contextmanager" has incompatible type "Callable[[TestAsnBarcode, Path], BarcodePlugin]"; expected "Callable[[TestAsnBarcode, Path], Iterator[Never]]" [arg-type] src/documents/tests/test_barcodes.py:0: error: Argument 1 to "contextmanager" has incompatible type "Callable[[TestTagBarcode, Path], BarcodePlugin]"; expected "Callable[[TestTagBarcode, Path], Iterator[Never]]" [arg-type] src/documents/tests/test_barcodes.py:0: error: Argument 1 to "get_reader" of "GetReaderPluginMixin" has incompatible type "str"; expected "Path" [arg-type] -src/documents/tests/test_barcodes.py:0: error: Argument 3 to "BarcodePlugin" has incompatible type "DummyProgressManager"; expected "ProgressManager" [arg-type] -src/documents/tests/test_barcodes.py:0: error: Argument 3 to "BarcodePlugin" has incompatible type "DummyProgressManager"; expected "ProgressManager" [arg-type] -src/documents/tests/test_barcodes.py:0: error: Argument 3 to "BarcodePlugin" has incompatible type "DummyProgressManager"; expected "ProgressManager" [arg-type] src/documents/tests/test_barcodes.py:0: error: Incompatible types in assignment (expression has type "Path", variable has type "str") [assignment] src/documents/tests/test_barcodes.py:0: error: Need type annotation for "reader" [var-annotated] src/documents/tests/test_barcodes.py:0: error: Need type annotation for "reader" [var-annotated] @@ -963,6 +1017,7 @@ src/documents/tests/test_bulk_edit.py:0: error: Argument 2 to "set_storage_path" src/documents/tests/test_bulk_edit.py:0: error: Argument 2 to "set_storage_path" has incompatible type "int"; expected "StoragePath" [arg-type] src/documents/tests/test_bulk_edit.py:0: error: Argument 2 to "set_storage_path" has incompatible type "int"; expected "StoragePath" [arg-type] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -993,20 +1048,29 @@ src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annot src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_bulk_edit.py:0: error: Item "Group" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] src/documents/tests/test_bulk_edit.py:0: error: Item "Group" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] src/documents/tests/test_bulk_edit.py:0: error: Item "Group" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] src/documents/tests/test_bulk_edit.py:0: error: Item "dict[Any, Any]" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] src/documents/tests/test_bulk_edit.py:0: error: Item "dict[Any, Any]" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] +src/documents/tests/test_bulk_edit.py:0: error: Item "dict[Any, Any]" of "Group | dict[Any, Any]" has no attribute "count" [union-attr] +src/documents/tests/test_bulk_edit.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_bulk_edit.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_bulk_edit.py:0: error: Too few arguments for "count" of "list" [call-arg] -src/documents/tests/test_caching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_classifier.py:0: error: "None" has no attribute "classes_" [attr-defined] src/documents/tests/test_classifier.py:0: error: "None" has no attribute "classes_" [attr-defined] +src/documents/tests/test_classifier.py:0: error: "None" has no attribute "classes_" [attr-defined] +src/documents/tests/test_classifier.py:0: error: "None" has no attribute "transform" [attr-defined] +src/documents/tests/test_classifier.py:0: error: "None" has no attribute "transform" [attr-defined] src/documents/tests/test_classifier.py:0: error: "None" has no attribute "transform" [attr-defined] src/documents/tests/test_classifier.py:0: error: Cannot assign to a method [method-assign] src/documents/tests/test_classifier.py:0: error: Cannot assign to a method [method-assign] src/documents/tests/test_classifier.py:0: error: Cannot assign to a method [method-assign] -src/documents/tests/test_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1014,6 +1078,8 @@ src/documents/tests/test_classifier.py:0: error: Function is missing a type anno src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_classifier.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_classifier.py:0: error: Incompatible types in assignment (expression has type "Mock", variable has type "None") [assignment] src/documents/tests/test_classifier.py:0: error: Invalid base class "real_catch_warnings" [misc] src/documents/tests/test_classifier.py:0: error: Module "sklearn.exceptions" has no attribute "InconsistentVersionWarning" [attr-defined] src/documents/tests/test_classifier.py:0: error: Variable "real_catch_warnings" is not valid as a type [valid-type] @@ -1071,12 +1137,30 @@ src/documents/tests/test_consumer.py:0: error: Item "None" of "DocumentType | No src/documents/tests/test_consumer.py:0: error: Item "None" of "StoragePath | None" has no attribute "id" [union-attr] src/documents/tests/test_consumer.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/tests/test_consumer.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "current_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "current_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "max_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "max_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "status" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentUpdatedData" has no key "status" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "current_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "current_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "max_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "max_progress" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "status" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: TypedDict "DocumentsDeletedData" has no key "status" [typeddict-item] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/test_consumer.py:0: error: Unused "type: ignore" comment [unused-ignore] src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_consumer_archive.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_document_list_effective_content_annotation.py:0: error: Incompatible types in assignment (expression has type "SimpleNamespace", variable has type "Request") [assignment] +src/documents/tests/test_document_list_effective_content_annotation.py:0: error: Incompatible types in assignment (expression has type "SimpleNamespace", variable has type "Request") [assignment] src/documents/tests/test_double_sided.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/test_double_sided.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_double_sided.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1114,6 +1198,15 @@ src/documents/tests/test_file_handling.py:0: error: Function is missing a type a src/documents/tests/test_file_handling.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_file_handling.py:0: error: Item "None" of "Path | None" has no attribute "write_bytes" [union-attr] src/documents/tests/test_file_handling.py:0: error: Skipping analyzing "auditlog.context": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_filepath_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/tests/test_filters.py:0: error: Argument 1 to "localize_date" has incompatible type "list[object] | dict[Any, Any] | Literal[1698330605] | None"; expected "date | datetime | str" [arg-type] src/documents/tests/test_management.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_management.py:0: error: Argument 1 to "assertIsFile" of "FileSystemAssertsMixin" has incompatible type "Path | None"; expected "PathLike[str] | str" [arg-type] @@ -1135,56 +1228,104 @@ src/documents/tests/test_management_exporter.py:0: error: Item "None" of "MailAc src/documents/tests/test_management_exporter.py:0: error: Item "None" of "Path | None" has no attribute "read_bytes" [union-attr] src/documents/tests/test_management_exporter.py:0: error: Skipping analyzing "allauth.socialaccount.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/tests/test_management_fuzzy.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "tags" [attr-defined] -src/documents/tests/test_management_retagger.py:0: error: "DocumentFactory" has no attribute "tags" [attr-defined] +src/documents/tests/test_management_importer.py:0: error: "Model" has no attribute "correspondent_id" [attr-defined] +src/documents/tests/test_management_importer.py:0: error: "Model" has no attribute "correspondent_id" [attr-defined] +src/documents/tests/test_management_importer.py:0: error: "Model" has no attribute "name" [attr-defined] +src/documents/tests/test_management_importer.py:0: error: Item "None" of "Tag | None" has no attribute "name" [union-attr] +src/documents/tests/test_management_importer.py:0: error: Item "None" of "Tag | None" has no attribute "name" [union-attr] src/documents/tests/test_management_retagger.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_management_retagger.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_management_retagger.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_management_retagger.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[CorrespondentFactory, CorrespondentFactory]", expected "tuple[Correspondent, Correspondent]") [return-value] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[DocumentFactory, DocumentFactory, DocumentFactory, DocumentFactory]", expected "tuple[Document, Document, Document, Document]") [return-value] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[DocumentTypeFactory, DocumentTypeFactory]", expected "tuple[DocumentType, DocumentType]") [return-value] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[StoragePathFactory, StoragePathFactory, StoragePathFactory]", expected "tuple[StoragePath, StoragePath, StoragePath]") [return-value] -src/documents/tests/test_management_retagger.py:0: error: Incompatible return value type (got "tuple[TagFactory, TagFactory, TagFactory, TagFactory, TagFactory]", expected "tuple[Tag, Tag, Tag, Tag, Tag]") [return-value] src/documents/tests/test_management_superuser.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Cannot determine type of "apps" [has-type] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_matchables.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_merge_documents_as_versions.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/tests/test_migration_saved_view_visibility.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_migration_saved_view_visibility.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_saved_view_visibility.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] src/documents/tests/test_migration_sha256_checksums.py:0: error: "_fixture_teardown" undefined in superclass [misc] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Cannot determine type of "apps" [has-type] src/documents/tests/test_migration_sha256_checksums.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_sha256_checksums.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] src/documents/tests/test_migration_share_link_bundle.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_migration_share_link_bundle.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_migration_share_link_bundle.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_share_link_bundle.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_share_link_bundle.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/documents/tests/test_migration_share_link_bundle.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] src/documents/tests/test_models.py:0: error: Item "None" of "Document | None" has no attribute "correspondent" [union-attr] src/documents/tests/test_models.py:0: error: Item "None" of "Document | None" has no attribute "correspondent" [union-attr] src/documents/tests/test_parsers.py:0: error: "None" not callable [misc] src/documents/tests/test_parsers.py:0: error: "None" not callable [misc] src/documents/tests/test_parsers.py:0: error: "None" not callable [misc] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument "classifier" to "match_correspondents" has incompatible type "None"; expected "DocumentClassifier" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument "classifier" to "match_document_types" has incompatible type "None"; expected "DocumentClassifier" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument "classifier" to "match_storage_paths" has incompatible type "None"; expected "DocumentClassifier" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument "classifier" to "match_tags" has incompatible type "None"; expected "DocumentClassifier" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Argument 1 to "permitted_document_ids" has incompatible type "AnonymousUser"; expected "User | None" [arg-type] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_permission_filtering_security.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_permitted_objects_filter.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_regex.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_regex.py:0: error: Library stubs not installed for "regex" [import-untyped] src/documents/tests/test_sanity_check.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_sanity_check.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_sanity_check.py:0: error: Argument 1 to "Path" has incompatible type "Path | None"; expected "str | PathLike[str]" [arg-type] @@ -1192,37 +1333,29 @@ src/documents/tests/test_share_link_bundles.py:0: error: "_MonkeyPatchedResponse src/documents/tests/test_share_link_bundles.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_share_link_bundles.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_share_link_bundles.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_share_link_bundles.py:0: error: Item "None" of "Path | None" has no attribute "resolve" [union-attr] +src/documents/tests/test_share_link_bundles.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_tag_hierarchy.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_tag_hierarchy.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_tag_hierarchy.py:0: error: Argument 2 to "get" of "APIClient" has incompatible type "dict[str, object]"; expected "Mapping[str, str | bytes | float | Iterable[str | bytes | float]] | Iterable[tuple[str, str | bytes | float | Iterable[str | bytes | float]]] | None" [arg-type] src/documents/tests/test_tag_hierarchy.py:0: error: Need type annotation for "context" (hint: "context: dict[, ] = ...") [var-annotated] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "date_done" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "date_done" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "date_started" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "duration_seconds" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "refresh_from_db" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: "PaperlessTaskFactory" has no attribute "wait_time_seconds" [attr-defined] src/documents/tests/test_task_signals.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/tests/test_task_signals.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_task_signals.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/test_task_signals.py:0: error: Incompatible return value type (got "PaperlessTaskFactory", expected "PaperlessTask") [return-value] src/documents/tests/test_task_signals.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/tests/test_task_signals.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/tests/test_task_signals.py:0: error: Missing type arguments for generic type "tuple" [type-arg] src/documents/tests/test_task_signals.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] src/documents/tests/test_task_signals.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "timedelta" [attr-defined] -src/documents/tests/test_task_signals.py:0: error: Unsupported right operand type for in ("None") [operator] -src/documents/tests/test_task_signals.py:0: error: Value of type "None" is not indexable [index] -src/documents/tests/test_task_signals.py:0: error: Value of type "None" is not indexable [index] -src/documents/tests/test_task_signals.py:0: error: Value of type "None" is not indexable [index] +src/documents/tests/test_task_signals.py:0: error: Unsupported right operand type for in ("Any | None") [operator] +src/documents/tests/test_task_signals.py:0: error: Value of type "Any | None" is not indexable [index] +src/documents/tests/test_task_signals.py:0: error: Value of type "Any | None" is not indexable [index] +src/documents/tests/test_task_signals.py:0: error: Value of type "Any | None" is not indexable [index] +src/documents/tests/test_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_tasks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1231,6 +1364,22 @@ src/documents/tests/test_tasks.py:0: error: Function is missing a type annotatio src/documents/tests/test_views.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "render" [attr-defined] src/documents/tests/test_views.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "render" [attr-defined] src/documents/tests/test_views.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] +src/documents/tests/test_views.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedWSGIResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_views.py:0: error: Argument 1 to "read_streaming_response" has incompatible type "_MonkeyPatchedWSGIResponse"; expected "StreamingHttpResponse" [arg-type] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1240,7 +1389,8 @@ src/documents/tests/test_views.py:0: error: Item "None" of "ApplicationConfigura src/documents/tests/test_views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "app_logo" [union-attr] src/documents/tests/test_views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "save" [union-attr] src/documents/tests/test_views.py:0: error: Item "None" of "SuggestionCacheData | None" has no attribute "suggestions" [union-attr] -src/documents/tests/test_views.py:0: error: Value of type "dict[str, Any] | None" is not indexable [index] +src/documents/tests/test_views.py:0: error: Item "None" of "SuggestionCacheData | None" has no attribute "suggestions" [union-attr] +src/documents/tests/test_views.py:0: error: Item "None" of "SuggestionCacheData | None" has no attribute "suggestions" [union-attr] src/documents/tests/test_views.py:0: error: Value of type "dict[str, Any] | None" is not indexable [index] src/documents/tests/test_views.py:0: error: Value of type "dict[str, Any] | None" is not indexable [index] src/documents/tests/test_views.py:0: error: Value of type "dict[str, Any] | None" is not indexable [index] @@ -1257,21 +1407,23 @@ src/documents/tests/test_workflows.py:0: error: Argument "files" to "__call__" o src/documents/tests/test_workflows.py:0: error: Argument "files" to "__call__" of "Task" has incompatible type "None"; expected "dict[Any, Any]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument "files" to "__call__" of "Task" has incompatible type "None"; expected "dict[Any, Any]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument "files" to "__call__" of "Task" has incompatible type "None"; expected "dict[Any, Any]" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] -src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Any | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "Path | str"; expected "Path" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 1 to "Path" has incompatible type "Any | None"; expected "str | PathLike[str]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 1 to "list" has incompatible type "Group | dict[Any, Any]"; expected "Iterable[Any]" [arg-type] @@ -1283,6 +1435,8 @@ src/documents/tests/test_workflows.py:0: error: Argument 1 to "list" has incompa src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] +src/documents/tests/test_workflows.py:0: error: Argument 1 to "run_workflows" has incompatible type "int"; expected "WorkflowTriggerType" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 2 to "assertIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 2 to "assertIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] src/documents/tests/test_workflows.py:0: error: Argument 2 to "assertIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] @@ -1312,6 +1466,13 @@ src/documents/tests/test_workflows.py:0: error: Function is missing a type annot src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/tests/test_workflows.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Any | list[str]", variable has type "QuerySet[Any, Any]") [assignment] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Any | list[str]", variable has type "QuerySet[Any, Any]") [assignment] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Group | dict[Any, Any]", variable has type "QuerySet[Any, Any]") [assignment] @@ -1322,13 +1483,20 @@ src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Group | dict[Any, Any]", variable has type "QuerySet[Any, Any]") [assignment] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Group | dict[Any, Any]", variable has type "QuerySet[Any, Any]") [assignment] src/documents/tests/test_workflows.py:0: error: Incompatible types in assignment (expression has type "Group | dict[Any, Any]", variable has type "QuerySet[Any, Any]") [assignment] +src/documents/tests/test_workflows.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "Correspondent | None" has no attribute "owner" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "DocumentType | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "DocumentType | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "DocumentType | None" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "None" of "DocumentType | None" has no attribute "owner" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "headers" [union-attr] src/documents/tests/test_workflows.py:0: error: Item "None" of "Request | None" has no attribute "url" [union-attr] -src/documents/tests/test_workflows.py:0: error: Item "str" of "Any | str" has no attribute "name" [union-attr] +src/documents/tests/test_workflows.py:0: error: Item "str" of "Path | str" has no attribute "name" [union-attr] src/documents/tests/test_workflows.py:0: error: Name "group_perms" already defined on line 0 [no-redef] src/documents/tests/test_workflows.py:0: error: Name "group_perms" already defined on line 0 [no-redef] src/documents/tests/test_workflows.py:0: error: Name "group_perms" already defined on line 0 [no-redef] @@ -1344,82 +1512,27 @@ src/documents/tests/test_workflows.py:0: error: Too few arguments for "count" of src/documents/tests/test_workflows.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_workflows.py:0: error: Too few arguments for "count" of "list" [call-arg] src/documents/tests/test_workflows.py:0: error: Too few arguments for "count" of "list" [call-arg] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertEqual"; maybe "assertFilesEqual"? [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertEqual"; maybe "assertFilesEqual"? [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertFalse"; maybe "assertIsFile"? [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertFalse"; maybe "assertIsFile"? [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertTrue" [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertTrue" [attr-defined] -src/documents/tests/utils.py:0: error: "FileSystemAssertsMixin" has no attribute "assertTrue" [attr-defined] src/documents/tests/utils.py:0: error: "GetConsumerMixin" has no attribute "dirs" [attr-defined] src/documents/tests/utils.py:0: error: "GetConsumerMixin" has no attribute "dirs" [attr-defined] src/documents/tests/utils.py:0: error: "GetConsumerMixin" has no attribute "dirs" [attr-defined] src/documents/tests/utils.py:0: error: "setUp" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "setUp" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "setUp" undefined in superclass [misc] src/documents/tests/utils.py:0: error: "tearDown" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "tearDown" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "tearDown" undefined in superclass [misc] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "archive_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "archive_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "archive_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "consumption_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "consumption_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "data_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "index_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "index_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "index_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "logging_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "logging_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "logging_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "media_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "originals_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "originals_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "originals_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "scratch_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "scratch_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "settings_override" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "settings_override" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "static_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "static_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "thumbnail_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "thumbnail_dir" [attr-defined] -src/documents/tests/utils.py:0: error: "type[dirs@34]" has no attribute "thumbnail_dir" [attr-defined] -src/documents/tests/utils.py:0: error: Cannot determine type of "apps" [has-type] -src/documents/tests/utils.py:0: error: First argument to namedtuple() should be "dirs", not "Dirs" [name-match] -src/documents/tests/utils.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/utils.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/documents/tests/utils.py:0: error: Item "None" of "AppConfig | None" has no attribute "name" [union-attr] -src/documents/tests/utils.py:0: error: Missing type arguments for generic type "Callable" [type-arg] -src/documents/tests/utils.py:0: error: Missing type arguments for generic type "list" [type-arg] -src/documents/tests/utils.py:0: error: Missing type arguments for generic type "tuple" [type-arg] -src/documents/tests/utils.py:0: error: Need type annotation for "payloads" (hint: "payloads: list[] = ...") [var-annotated] +src/documents/tests/utils.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/utils.py:0: error: Unused "type: ignore" comment [unused-ignore] +src/documents/tests/utils.py:0: error: Unused "type: ignore" comment [unused-ignore] src/documents/utils.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "float | int") [assignment] src/documents/utils.py:0: error: Incompatible types in assignment (expression has type "float | int", variable has type "int | None") [assignment] src/documents/utils.py:0: error: Missing type arguments for generic type "CompletedProcess" [type-arg] src/documents/validators.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/documents/versioning.py:0: error: Missing type arguments for generic type "Prefetch" [type-arg] src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "filter_queryset" [attr-defined] src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "get_queryset" [attr-defined] src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "queryset" [attr-defined] src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "queryset" [attr-defined] -src/documents/views.py:0: error: "BulkPermissionMixin" has no attribute "request" [attr-defined] +src/documents/views.py:0: error: "Sequence[_SupportsHasPermission]" has no attribute "append" [attr-defined] src/documents/views.py:0: error: "get_serializer_context" undefined in superclass [misc] src/documents/views.py:0: error: "object" has no attribute "apply_async" [attr-defined] +src/documents/views.py:0: error: "type[DocumentFilterSet]" has no attribute "declared_filters" [attr-defined] src/documents/views.py:0: error: "type[Model]" has no attribute "objects" [attr-defined] src/documents/views.py:0: error: Argument "filename" to "FileResponse" has incompatible type "str | Any | None"; expected "str" [arg-type] src/documents/views.py:0: error: Argument "path" to "EmailAttachment" has incompatible type "Path | None"; expected "Path" [arg-type] @@ -1427,16 +1540,18 @@ src/documents/views.py:0: error: Argument "user" to "_has_document_permissions" src/documents/views.py:0: error: Argument "user" to "_has_document_permissions" of "DocumentOperationPermissionMixin" has incompatible type "User | AnonymousUser"; expected "User" [arg-type] src/documents/views.py:0: error: Argument "user" to "_resolve_document_ids" of "DocumentSelectionMixin" has incompatible type "User | AnonymousUser"; expected "User" [arg-type] src/documents/views.py:0: error: Argument "user" to "_resolve_document_ids" of "DocumentSelectionMixin" has incompatible type "User | AnonymousUser"; expected "User" [arg-type] -src/documents/views.py:0: error: Argument 1 to "TaskSummarySerializer" has incompatible type "QuerySet[PaperlessTask@AnnotatedWith[TypedDict({'total_count': int, 'pending_count': int, 'success_count': int, 'failure_count': int, 'avg_duration_seconds': Any, 'avg_wait_time_seconds': Any, 'last_run': Any, 'last_success': Any, 'last_failure': Any})], dict[str, Any]]"; expected "dict[str, Any] | None" [arg-type] -src/documents/views.py:0: error: Argument 1 to "get_objects_for_user_owner_aware" has incompatible type "User | AnonymousUser"; expected "User | None" [arg-type] -src/documents/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc" [arg-type] -src/documents/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc" [arg-type] -src/documents/views.py:0: error: Argument 1 to "paginate_queryset" of "GenericAPIView" has incompatible type "TantivyRelevanceList"; expected "QuerySet[Any, Any]" [arg-type] +src/documents/views.py:0: error: Argument 1 to "TaskSummarySerializer" has incompatible type "QuerySet[PaperlessTask@AnnotatedWith[TypedDict({'total_count': int, 'pending_count': int, 'success_count': int, 'failure_count': int, 'avg_duration_seconds': Any, 'avg_wait_time_seconds': Any, 'last_run': Any, 'last_success': Any, 'last_failure': Any})], TypedDict({'task_type': str, 'total_count': Any, 'pending_count': Any, 'success_count': Any, 'failure_count': Any, 'avg_duration_seconds': Any, 'avg_wait_time_seconds': Any, 'last_run': Any, 'last_success': Any, 'last_failure': Any})]"; expected "dict[str, Any] | None" [arg-type] +src/documents/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/documents/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/documents/views.py:0: error: Argument 1 to "paginate_queryset" of "GenericAPIView" has incompatible type "TantivyRelevanceList"; expected "QuerySet[Any, _MT_co] | Sequence[_MT_co]" [arg-type] +src/documents/views.py:0: error: Argument 1 to "permitted_document_ids" has incompatible type "User | AnonymousUser"; expected "User | None" [arg-type] +src/documents/views.py:0: error: Argument 1 to "permitted_object_ids" has incompatible type "User | AnonymousUser"; expected "User | None" [arg-type] src/documents/views.py:0: error: Argument 2 to "match_correspondents" has incompatible type "DocumentClassifier | None"; expected "DocumentClassifier" [arg-type] src/documents/views.py:0: error: Argument 2 to "match_document_types" has incompatible type "DocumentClassifier | None"; expected "DocumentClassifier" [arg-type] src/documents/views.py:0: error: Argument 2 to "match_storage_paths" has incompatible type "DocumentClassifier | None"; expected "DocumentClassifier" [arg-type] src/documents/views.py:0: error: Argument 2 to "match_tags" has incompatible type "DocumentClassifier | None"; expected "DocumentClassifier" [arg-type] -src/documents/views.py:0: error: Argument 3 to "autocomplete" of "TantivyBackend" has incompatible type "User | AnonymousUser | None"; expected "AbstractBaseUser | None" [arg-type] +src/documents/views.py:0: error: Argument 3 to "autocomplete" of "TantivyBackend" has incompatible type "User | AnonymousUser | None"; expected "AbstractUser | None" [arg-type] +src/documents/views.py:0: error: Dict entry 0 has incompatible type "str": "bool"; expected "str": "str" [dict-item] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -1452,6 +1567,15 @@ src/documents/views.py:0: error: Function is missing a return type annotation [ src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/views.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -1522,8 +1646,8 @@ src/documents/views.py:0: error: Function is missing a type annotation for one o src/documents/views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "Any | None", variable has type "dict[Any, Any]") [assignment] -src/documents/views.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Any, Any]", variable has type "list[Any]") [assignment] -src/documents/views.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Any, Any]", variable has type "list[Document]") [assignment] +src/documents/views.py:0: error: Incompatible types in assignment (expression has type "ClassificationSuggestions", variable has type "dict[Any, Any]") [assignment] +src/documents/views.py:0: error: Incompatible types in assignment (expression has type "QuerySet[Document, Document]", variable has type "list[Any]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "bool", target has type "dict[str, str]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "bool", target has type "dict[str, str]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "bool", target has type "dict[str, str]") [assignment] @@ -1535,7 +1659,7 @@ src/documents/views.py:0: error: Incompatible types in assignment (expression ha src/documents/views.py:0: error: Incompatible types in assignment (expression has type "str", target has type "dict[str, str]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "str", target has type "dict[str, str]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "str", target has type "dict[str, str]") [assignment] -src/documents/views.py:0: error: Incompatible types in assignment (expression has type "tuple[type[IsAuthenticated]]", variable has type "tuple[type[IsAuthenticated], type[PaperlessObjectPermissions]]") [assignment] +src/documents/views.py:0: error: Incompatible types in assignment (expression has type "tuple[type[IsAuthenticated], type[ViewDocumentsPermissions]]", variable has type "tuple[type[IsAuthenticated], type[PaperlessObjectPermissions]]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "type[ArchiveOnlyStrategy]", variable has type "type[OriginalAndArchiveStrategy]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "type[DocumentSerializer]", variable has type "type[TrashSerializer]") [assignment] src/documents/views.py:0: error: Incompatible types in assignment (expression has type "type[OriginalsOnlyStrategy]", variable has type "type[OriginalAndArchiveStrategy]") [assignment] @@ -1547,19 +1671,22 @@ src/documents/views.py:0: error: Item "None" of "Any | None" has no attribute "g src/documents/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "app_logo" [union-attr] src/documents/views.py:0: error: Item "None" of "BasePagination | None" has no attribute "get_page_size" [union-attr] src/documents/views.py:0: error: Item "None" of "BasePagination | None" has no attribute "page_size" [union-attr] -src/documents/views.py:0: error: Item "None" of "dict[str, _PingReply] | None" has no attribute "keys" [union-attr] src/documents/views.py:0: error: Missing positional argument "request" in call to "email_documents" [call-arg] src/documents/views.py:0: error: Missing type arguments for generic type "GenericViewSet" [type-arg] src/documents/views.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/views.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/views.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/documents/views.py:0: error: Missing type arguments for generic type "list" [type-arg] src/documents/views.py:0: error: Need type annotation for "authentication_classes" (hint: "authentication_classes: list[] = ...") [var-annotated] src/documents/views.py:0: error: Need type annotation for "children_map" (hint: "children_map: dict[, ] = ...") [var-annotated] src/documents/views.py:0: error: Need type annotation for "doc" [var-annotated] +src/documents/views.py:0: error: Need type annotation for "doc" [var-annotated] src/documents/views.py:0: error: Need type annotation for "docs" (hint: "docs: list[] = ...") [var-annotated] src/documents/views.py:0: error: Need type annotation for "permission_classes" (hint: "permission_classes: list[] = ...") [var-annotated] src/documents/views.py:0: error: Need type annotation for "ui_settings" (hint: "ui_settings: dict[, ] = ...") [var-annotated] +src/documents/views.py:0: error: No overload variant of "prefetch_related" of "QuerySet" matches argument type "list[object]" [call-overload] src/documents/views.py:0: error: Skipping analyzing "auditlog.models": module is installed, but missing library stubs or py.typed marker [import-untyped] src/documents/views.py:0: error: Skipping analyzing "langdetect": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/documents/views.py:0: error: TypedDict key must be a string literal; expected one of ("pk", "correspondent", "document_type", "storage_path", "tags", ...) [literal-required] src/documents/views.py:0: error: Unsupported operand types for + ("None" and "int") [operator] src/documents/views.py:0: error: Value of type "Iterable[Any]" is not indexable [index] src/documents/views.py:0: error: Value of type "Iterable[Any]" is not indexable [index] @@ -1572,7 +1699,6 @@ src/documents/views.py:0: error: Value of type "Iterable[CustomField]" is not in src/documents/views.py:0: error: Value of type "Iterable[Group]" is not indexable [index] src/documents/views.py:0: error: Value of type "Iterable[User]" is not indexable [index] src/documents/views.py:0: error: Value of type "Iterable[Workflow]" is not indexable [index] -src/documents/views.py:0: error: Value of type "dict[str, _PingReply] | None" is not indexable [index] src/documents/workflows/actions.py:0: error: Function is missing a return type annotation [no-untyped-def] src/documents/workflows/actions.py:0: error: Function is missing a type annotation [no-untyped-def] src/documents/workflows/actions.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1613,6 +1739,8 @@ src/documents/workflows/actions.py:0: error: Item "None" of "WorkflowActionWebho src/documents/workflows/actions.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/workflows/actions.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/workflows/actions.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/documents/workflows/ai.py:0: error: "type[ObjT]" has no attribute "objects" [attr-defined] +src/documents/workflows/ai.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/workflows/mutations.py:0: error: "WorkflowAction" has no attribute "has_assign_change_groups"; maybe "assign_change_groups"? [attr-defined] src/documents/workflows/mutations.py:0: error: "WorkflowAction" has no attribute "has_assign_change_groups"; maybe "assign_change_groups"? [attr-defined] src/documents/workflows/mutations.py:0: error: "WorkflowAction" has no attribute "has_assign_change_users"; maybe "assign_change_users"? [attr-defined] @@ -1654,7 +1782,6 @@ src/documents/workflows/webhooks.py:0: error: Argument 1 to "post" of "Client" h src/documents/workflows/webhooks.py:0: error: Argument 1 to "post" of "Client" has incompatible type "**dict[str, str | dict[Any, Any] | None]"; expected "float | tuple[float | None, float | None, float | None, float | None] | Timeout | None | UseClientDefault" [arg-type] src/documents/workflows/webhooks.py:0: error: Argument 1 to "post" of "Client" has incompatible type "**dict[str, str | dict[Any, Any] | None]"; expected "tuple[str | bytes, str | bytes] | Callable[[Request], Request] | Auth | UseClientDefault" [arg-type] src/documents/workflows/webhooks.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/documents/workflows/webhooks.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/documents/workflows/webhooks.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/workflows/webhooks.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/documents/workflows/webhooks.py:0: error: Missing type arguments for generic type "dict" [type-arg] @@ -1690,7 +1817,7 @@ src/paperless/auth.py:0: error: No return value expected [return-value] src/paperless/auth.py:0: error: Return type "None" of "__call__" incompatible with return type "HttpResponseBase | Awaitable[HttpResponseBase]" in supertype "django.contrib.auth.middleware.RemoteUserMiddleware" [override] src/paperless/auth.py:0: error: Skipping analyzing "allauth.mfa.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/celery.py:0: error: Argument 2 to "register" has incompatible type "Callable[[object], bytes]"; expected "Callable[[Any], str] | None" [arg-type] -src/paperless/celery.py:0: error: Argument 3 to "register" has incompatible type "Callable[[bytes], object]"; expected "Callable[[str], Any] | None" [arg-type] +src/paperless/celery.py:0: error: Argument 3 to "register" has incompatible type "Callable[[bytes], Any]"; expected "Callable[[str], Any] | None" [arg-type] src/paperless/celery.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/checks.py:0: error: Argument 1 to "append" of "list" has incompatible type "Error"; expected "Warning" [arg-type] src/paperless/checks.py:0: error: Argument 2 to "path_check" has incompatible type "Path | None"; expected "Path" [arg-type] @@ -1712,16 +1839,21 @@ src/paperless/config.py:0: error: Incompatible types in assignment (expression h src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] +src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] +src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] +src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "ArchiveFileGenerationChoices") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "CleanChoices") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "ColorConvertChoices") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "ModeChoices") [assignment] src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "OutputTypeChoices") [assignment] +src/paperless/config.py:0: error: Incompatible types in assignment (expression has type "str", variable has type "RemoteOCRMode") [assignment] src/paperless/consumers.py:0: error: Argument 1 to "_can_view" of "StatusConsumer" has incompatible type "DocumentUpdatedData"; expected "PermissionsData" [arg-type] src/paperless/consumers.py:0: error: Argument 1 to "_can_view" of "StatusConsumer" has incompatible type "ProgressUpdateData"; expected "PermissionsData" [arg-type] src/paperless/consumers.py:0: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "groups" [union-attr] src/paperless/consumers.py:0: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "id" [union-attr] src/paperless/consumers.py:0: error: Item "AbstractBaseUser" of "AbstractBaseUser | AnonymousUser" has no attribute "is_superuser" [union-attr] +src/paperless/consumers.py:0: error: Missing type arguments for generic type "Task" [type-arg] src/paperless/consumers.py:0: error: Unsupported operand types for in ("Any | None" and "list[int]") [operator] src/paperless/db_cache.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/db_cache.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -1729,24 +1861,37 @@ src/paperless/db_cache.py:0: error: Skipping analyzing "cachalot.api": module is src/paperless/db_cache.py:0: error: Skipping analyzing "cachalot.utils": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/middleware.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/middleware.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/middleware.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/middleware.py:0: error: Skipping analyzing "compression_middleware.middleware": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/middleware.py:0: error: Value of type "Collection[str]" is not indexable [index] src/paperless/migrations/0001_initial.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/migrations/0007_optimize_integer_field_sizes.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/migrations/0008_replace_skip_archive_file.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/migrations/0016_alter_applicationconfiguration_ai_enabled.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/models.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/network.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/network.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/network.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/network.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/network.py:0: error: Incompatible return value type (got "list[str | int]", expected "list[str]") [return-value] +src/paperless/parsers/remote.py:0: error: Incompatible types in assignment (expression has type "BufferedWriter[_BufferedWriterStream]", variable has type "BufferedReader[_BufferedReaderStream]") [assignment] +src/paperless/parsers/remote.py:0: error: Missing type arguments for generic type "PipelineRequest" [type-arg] src/paperless/parsers/tesseract.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless/parsers/tesseract.py:0: error: Skipping analyzing "img2pdf": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/paperless/parsers/utils.py:0: error: No overload variant of "get" of "Object" matches argument types "str", "bool" [call-overload] src/paperless/serialisers.py:0: error: "PasswordValidationMixin" has no attribute "instance" [attr-defined] -src/paperless/serialisers.py:0: error: "UploadedFile" has no attribute "field_name" [attr-defined] +src/paperless/serialisers.py:0: error: "UploadedFile[Any]" has no attribute "field_name" [attr-defined] src/paperless/serialisers.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/serialisers.py:0: error: Item "None" of "str | None" has no attribute "replace" [union-attr] +src/paperless/serialisers.py:0: error: Missing type arguments for generic type "UploadedFile" [type-arg] +src/paperless/serialisers.py:0: error: Missing type arguments for generic type "UploadedFile" [type-arg] src/paperless/serialisers.py:0: error: Need type annotation for "auth_token" [var-annotated] src/paperless/serialisers.py:0: error: Signature of "run_validation" incompatible with supertype "rest_framework.fields.Field" [override] src/paperless/serialisers.py:0: error: Skipping analyzing "allauth.mfa.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -1760,11 +1905,9 @@ src/paperless/settings/__init__.py:0: error: Argument 1 to "parse_ignore_dates" src/paperless/settings/__init__.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/settings/__init__.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/settings/__init__.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/paperless/settings/__init__.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/settings/__init__.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/settings/__init__.py:0: error: Incompatible types in assignment (expression has type "bool", variable has type "str") [assignment] src/paperless/settings/__init__.py:0: error: Incompatible types in assignment (expression has type "dict[str, object]", target has type "str") [assignment] -src/paperless/settings/__init__.py:0: error: Skipping analyzing "compression_middleware.middleware": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/settings/custom.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless/settings/custom.py:0: error: No overload variant of "getenv" matches argument types "Collection[str]", "Collection[str]" [call-overload] src/paperless/settings/custom.py:0: error: Unpacked dict entry 0 has incompatible type "Collection[str]"; expected "SupportsKeysAndGetItem[str, dict[str, str]]" [dict-item] @@ -1774,6 +1917,7 @@ src/paperless/settings/parsers.py:0: error: Missing type arguments for generic t src/paperless/settings/parsers.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless/signals.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/signals.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/signed_pickle.py:0: error: Item "None" of "str | None" has no attribute "encode" [union-attr] src/paperless/tests/parsers/conftest.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/parsers/conftest.py:0: error: Incompatible return value type (got "def _make_parser(**django_settings_overrides: Any) -> _GeneratorContextManager[Any, None, None]", expected "Callable[..., Generator[RasterisedDocumentParser, None, None]]") [return-value] src/paperless/tests/parsers/test_convert_image_to_pdfa.py:0: error: Skipping analyzing "img2pdf": module is installed, but missing library stubs or py.typed marker [import-untyped] @@ -1810,13 +1954,6 @@ src/paperless/tests/parsers/test_tesseract_parser.py:0: error: "Generator[Raster src/paperless/tests/parsers/test_tesseract_parser.py:0: error: "Generator[RasterisedDocumentParser, None, None]" has no attribute "__exit__"; maybe "__next__"? [attr-defined] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: "Generator[RasterisedDocumentParser, None, None]" has no attribute "__exit__"; maybe "__next__"? [attr-defined] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: "Generator[RasterisedDocumentParser, None, None]" has no attribute "__exit__"; maybe "__next__"? [attr-defined] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] -src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "assert_ordered_substrings" has incompatible type "str | None"; expected "str" [arg-type] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "calculate_a4_dpi" of "RasterisedDocumentParser" has incompatible type "str"; expected "Path" [arg-type] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Argument 1 to "get_dpi" of "RasterisedDocumentParser" has incompatible type "str"; expected "Path" [arg-type] src/paperless/tests/parsers/test_tesseract_parser.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1851,14 +1988,27 @@ src/paperless/tests/settings/test_environment_parsers.py:0: error: Function is m src/paperless/tests/settings/test_environment_parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/settings/test_environment_parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/settings/test_environment_parsers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/settings/test_remote_user.py:0: error: Unsupported target for indexed assignment ("Collection[str]") [index] +src/paperless/tests/settings/test_settings.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/settings/test_settings.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_adapter.py:0: error: Cannot assign to a method [method-assign] src/paperless/tests/test_adapter.py:0: error: Cannot assign to a method [method-assign] src/paperless/tests/test_adapter.py:0: error: Cannot assign to a method [method-assign] src/paperless/tests/test_adapter.py:0: error: Skipping analyzing "allauth.account.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/tests/test_adapter.py:0: error: Skipping analyzing "allauth.core": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/tests/test_adapter.py:0: error: Skipping analyzing "allauth.socialaccount.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/paperless/tests/test_celery.py:0: error: Value of type "object" is not indexable [index] -src/paperless/tests/test_celery.py:0: error: Value of type "object" is not indexable [index] +src/paperless/tests/test_admin_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_admin_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_admin_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_admin_auth.py:0: error: Skipping analyzing "allauth.mfa": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless/tests/test_admin_auth.py:0: error: Skipping analyzing "allauth.mfa.totp.internal": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless/tests/test_api_auth.py:0: error: "Callable[..., Any]" has no attribute "view_class" [attr-defined] +src/paperless/tests/test_api_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_api_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_api_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_api_auth.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_auth_middleware.py:0: error: Argument 1 to "AutoLoginMiddleware" has incompatible type "Callable[[Any], None]"; expected "_AnyGetResponseCallable" [arg-type] +src/paperless/tests/test_auth_middleware.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_checks.py:0: error: Generator has incompatible item type "str | None"; expected "str" [misc] src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] @@ -1866,13 +2016,16 @@ src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] src/paperless/tests/test_checks.py:0: error: Unsupported right operand type for in ("str | None") [operator] +src/paperless/tests/test_compression_middleware.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/tests/test_logging.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/tests/test_logging.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Cannot determine type of "apps" [has-type] src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] -src/paperless/tests/test_migration_replace_skip_archive_file.py:0: error: Incompatible types in assignment (expression has type "str", base class "TestMigrations" defined the type as "None") [assignment] +src/paperless/tests/test_network.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_network.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_network.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/test_network.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/test_network.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_ocr_config.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_ocr_config.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -1903,6 +2056,8 @@ src/paperless/tests/test_registry.py:0: error: Function is missing a return type src/paperless/tests/test_registry.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_registry.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -1917,18 +2072,30 @@ src/paperless/tests/test_registry.py:0: error: Function is missing a type annota src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/test_registry.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless/tests/test_remote_ocr_config.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/tests/test_signals.py:0: error: Item "None" of "Any | None" has no attribute "get" [union-attr] src/paperless/tests/test_signals.py:0: error: Item "None" of "Any | None" has no attribute "get" [union-attr] src/paperless/tests/test_utils.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/tests/test_views.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "streaming_content" [attr-defined] src/paperless/urls.py:0: error: Argument 2 to "path" has incompatible type "_ASGIApplicationProtocol"; expected "Callable[..., HttpResponseBase]" [arg-type] +src/paperless/urls.py:0: error: Cannot assign to a method [method-assign] src/paperless/urls.py:0: error: Skipping analyzing "allauth.account": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless/urls.py:0: error: Skipping analyzing "allauth.account.decorators": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/urls.py:0: error: Skipping analyzing "allauth.mfa.base": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/urls.py:0: error: Skipping analyzing "allauth.socialaccount": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/urls.py:0: error: Skipping analyzing "allauth.urls": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/validators.py:0: error: Argument 1 to "join" of "str" has incompatible type "Iterator[str | bytes] | Any"; expected "Iterable[str]" [arg-type] src/paperless/validators.py:0: error: Incompatible types in assignment (expression has type "str | bytes", variable has type "str") [assignment] -src/paperless/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex | SupportsTrunc" [arg-type] +src/paperless/validators.py:0: error: Missing type arguments for generic type "UploadedFile" [type-arg] +src/paperless/validators.py:0: error: Missing type arguments for generic type "UploadedFile" [type-arg] +src/paperless/views.py:0: error: Argument 1 to "int" has incompatible type "Any | Collection[str]"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] src/paperless/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -1947,12 +2114,16 @@ src/paperless/views.py:0: error: Function is missing a type annotation [no-unty src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless/views.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless/views.py:0: error: Incompatible type for "user" of "Token" (got "User | AnonymousUser", expected "User | Combinable") [misc] src/paperless/views.py:0: error: Incompatible type for lookup 'user': (got "User | AnonymousUser", expected "User | int | None") [misc] src/paperless/views.py:0: error: Item "AnonymousUser" of "User | AnonymousUser" has no attribute "socialaccount_set" [union-attr] -src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "ai_enabled" [union-attr] +src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_context_size" [union-attr] src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_embedding_backend" [union-attr] +src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_embedding_chunk_size" [union-attr] +src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_embedding_endpoint" [union-attr] +src/paperless/views.py:0: error: Item "None" of "ApplicationConfiguration | None" has no attribute "llm_embedding_model" [union-attr] src/paperless/views.py:0: error: Item "None" of "Page[Any] | None" has no attribute "paginator" [union-attr] src/paperless/views.py:0: error: Item "None" of "Page[Any] | None" has no attribute "paginator" [union-attr] src/paperless/views.py:0: error: Item "None" of "Page[Any] | None" has no attribute "paginator" [union-attr] @@ -1969,18 +2140,34 @@ src/paperless/views.py:0: error: Skipping analyzing "allauth.mfa.recovery_codes. src/paperless/views.py:0: error: Skipping analyzing "allauth.mfa.totp.internal": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/views.py:0: error: Skipping analyzing "allauth.socialaccount.adapter": module is installed, but missing library stubs or py.typed marker [import-untyped] src/paperless/views.py:0: error: Skipping analyzing "allauth.socialaccount.models": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/paperless_ai/ai_classifier.py:0: error: Argument 1 to "parse_ai_response" has incompatible type "str"; expected "dict[Any, Any]" [arg-type] +src/paperless_ai/ai_classifier.py:0: error: Argument 1 to "parse_ai_response" has incompatible type "ClassificationSuggestions"; expected "dict[Any, Any]" [arg-type] +src/paperless_ai/ai_classifier.py:0: error: Argument 1 to "parse_ai_response" has incompatible type "ClassificationSuggestions"; expected "dict[Any, Any]" [arg-type] +src/paperless_ai/ai_classifier.py:0: error: Incompatible types in assignment (expression has type "Any | None", variable has type "str") [assignment] src/paperless_ai/ai_classifier.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless_ai/ai_classifier.py:0: error: Missing type arguments for generic type "dict" [type-arg] +src/paperless_ai/ai_classifier.py:0: error: TypedDict key must be a string literal; expected one of ("correspondents", "dates", "document_types", "storage_paths", "tags", ...) [literal-required] +src/paperless_ai/ai_classifier.py:0: error: TypedDict key must be a string literal; expected one of ("correspondents", "dates", "document_types", "storage_paths", "tags", ...) [literal-required] +src/paperless_ai/ai_classifier.py:0: error: TypedDict key must be a string literal; expected one of ("correspondents", "dates", "document_types", "storage_paths", "tags", ...) [literal-required] +src/paperless_ai/base_model.py:0: error: Invalid index type "str | None" for "dict[str, FieldInfo]"; expected type "str" [index] +src/paperless_ai/chat.py:0: error: Dict entry 1 has incompatible type "str": "str | Any | None"; expected "str": "int | str" [dict-item] +src/paperless_ai/chat.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/chat.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/chat.py:0: error: Item "AsyncGenerator[str, None]" of "Any | Generator[str, None, None] | AsyncGenerator[str, None]" has no attribute "__iter__" (not iterable) [union-attr] src/paperless_ai/chat.py:0: error: Item "Response" of "Response | StreamingResponse | AsyncStreamingResponse | PydanticResponse" has no attribute "response_gen" [union-attr] -src/paperless_ai/client.py:0: error: Incompatible return value type (got "dict[str, Any]", expected "str") [return-value] +src/paperless_ai/chat.py:0: error: Missing type arguments for generic type "list" [type-arg] src/paperless_ai/client.py:0: error: Incompatible types in assignment (expression has type "str | None", variable has type "str") [assignment] -src/paperless_ai/indexing.py:0: error: Argument "persist_dir" to "from_defaults" of "StorageContext" has incompatible type "Path"; expected "str | None" [arg-type] -src/paperless_ai/indexing.py:0: error: Argument 1 to "from_persist_dir" of "FaissVectorStore" has incompatible type "Path"; expected "str" [arg-type] -src/paperless_ai/indexing.py:0: error: Argument 1 to "from_persist_dir" of "SimpleDocumentStore" has incompatible type "Path"; expected "str" [arg-type] -src/paperless_ai/indexing.py:0: error: Argument 1 to "from_persist_dir" of "SimpleIndexStore" has incompatible type "Path"; expected "str" [arg-type] +src/paperless_ai/client.py:0: error: Skipping analyzing "llama_index.llms.ollama": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/client.py:0: error: Skipping analyzing "llama_index.llms.openai_like": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/db.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/embedding.py:0: error: No overload variant of "get" of "dict" matches argument type "str" [call-overload] +src/paperless_ai/embedding.py:0: error: Skipping analyzing "llama_index.embeddings.huggingface": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/embedding.py:0: error: Skipping analyzing "llama_index.embeddings.ollama": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/embedding.py:0: error: Skipping analyzing "llama_index.embeddings.openai_like": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -1988,12 +2175,25 @@ src/paperless_ai/indexing.py:0: error: Function is missing a return type annotat src/paperless_ai/indexing.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/indexing.py:0: error: Skipping analyzing "faiss": module is installed, but missing library stubs or py.typed marker [import-untyped] -src/paperless_ai/matching.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/paperless_ai/matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/matching.py:0: error: "type[ModelT]" has no attribute "objects" [attr-defined] +src/paperless_ai/matching.py:0: error: "type[ModelT]" has no attribute "objects" [attr-defined] src/paperless_ai/matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_ai/matching.py:0: error: Missing type arguments for generic type "list" [type-arg] -src/paperless_ai/tests/conftest.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/taxonomy.py:0: error: "object" has no attribute "__iter__"; maybe "__dir__" or "__str__"? (not iterable) [attr-defined] +src/paperless_ai/taxonomy.py:0: error: "type[Model]" has no attribute "objects" [attr-defined] +src/paperless_ai/tests/conftest.py:0: error: Incompatible return value type (got "FakeEmbedding", expected "MagicMock | AsyncMock | NonCallableMagicMock") [return-value] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Argument "candidates" to "build_prompt_without_rag" has incompatible type "dict[str, list[Any]]"; expected "TaxonomyCandidates | None" [arg-type] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Argument "candidates" to "build_prompt_without_rag" has incompatible type "dict[str, list[dict[str, object]]]"; expected "TaxonomyCandidates | None" [arg-type] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Argument 1 to "build_localization_prompt" has incompatible type "dict[str, Collection[str]]"; expected "ClassificationSuggestions" [arg-type] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -2003,25 +2203,34 @@ src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a typ src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a return type annotation [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_ai_indexing.py:0: error: Return type "list[float]" of "_aget_query_embedding" incompatible with return type "Coroutine[Any, Any, list[float]]" in supertype "llama_index.core.base.embeddings.base.BaseEmbedding" [override] -src/paperless_ai/tests/test_chat.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_ai_classifier.py:0: error: Need type annotation for "empty_candidates" [var-annotated] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_base_model.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_chat.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_chat.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_ai/tests/test_chat.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_ai/tests/test_client.py:0: error: Function is missing a return type annotation [no-untyped-def] @@ -2033,7 +2242,14 @@ src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annot src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_ai/tests/test_client.py:0: error: Invalid index type "str" for "str"; expected type "SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | None]" [index] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_client.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] @@ -2045,25 +2261,75 @@ src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type an src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_correspondents_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_document_types_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_storage_paths_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_tags_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_tags_by_name" has incompatible type "None"; expected "User" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Argument "user" to "match_tags_by_name" has incompatible type "None"; expected "User" [arg-type] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_ai/tests/test_embedding.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_ai/tests/test_matching.py:0: error: Argument 1 to "match_tags_by_name" has incompatible type "list[str | None]"; expected "list[str]" [arg-type] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_ai/tests/test_matching.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_matching.py:0: error: Missing type arguments for generic type "DjangoModelFactory" [type-arg] +src/paperless_ai/tests/test_matching.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/paperless_ai/tests/test_vector_store.py:0: error: Argument 2 to "_query" has incompatible type "list[float] | None"; expected "list[float]" [arg-type] +src/paperless_ai/tests/test_vector_store.py:0: error: Argument 2 to "make_node" has incompatible type "str"; expected "int" [arg-type] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_ai/tests/test_vector_store.py:0: error: Skipping analyzing "sqlite_vec": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/vector_store.py:0: error: Argument 1 to "int" has incompatible type "int | float | str | list[str] | list[float] | list[int] | None"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/paperless_ai/vector_store.py:0: error: Argument 1 to "int" has incompatible type "int | float | str | list[str] | list[float] | list[int] | None"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/paperless_ai/vector_store.py:0: error: Argument 1 to "int" has incompatible type "str | Any | None"; expected "str | Buffer | SupportsInt | SupportsIndex" [arg-type] +src/paperless_ai/vector_store.py:0: error: Skipping analyzing "sqlite_vec": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_ai/vector_store.py:0: error: Unexpected keyword argument "flat_metadata" for "__init__" of "BasePydanticVectorStore" [call-arg] src/paperless_mail/admin.py:0: error: Missing type arguments for generic type "ModelAdmin" [type-arg] src/paperless_mail/admin.py:0: error: Missing type arguments for generic type "ModelForm" [type-arg] src/paperless_mail/mail.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/mail.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/mail.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/mail.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] +src/paperless_mail/mail.py:0: error: "PinnedClientMixin" has no attribute "_host" [attr-defined] +src/paperless_mail/mail.py:0: error: "PinnedClientMixin" has no attribute "_port" [attr-defined] +src/paperless_mail/mail.py:0: error: "PinnedClientMixin" has no attribute "_timeout" [attr-defined] +src/paperless_mail/mail.py:0: error: "_create_socket" undefined in superclass [misc] src/paperless_mail/mail.py:0: error: Argument "original_file" to "ConsumableDocument" has incompatible type "str"; expected "Path" [arg-type] src/paperless_mail/mail.py:0: error: Argument 1 to "TagMailAction" has incompatible type "str | None"; expected "str" [arg-type] src/paperless_mail/mail.py:0: error: Argument 2 to "AND" has incompatible type "**dict[str, date]"; expected "Header | list[Header] | None" [arg-type] @@ -2089,6 +2355,8 @@ src/paperless_mail/mail.py:0: error: Function is missing a return type annotatio src/paperless_mail/mail.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -2096,11 +2364,13 @@ src/paperless_mail/mail.py:0: error: Function is missing a type annotation for o src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/mail.py:0: error: Incompatible return value type (got "MailBoxUnencrypted", expected "MailBox") [return-value] -src/paperless_mail/mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] -src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "MailBox", variable has type "MailBoxUnencrypted") [assignment] -src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "MailBoxStartTls", variable has type "MailBoxUnencrypted") [assignment] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/mail.py:0: error: Incompatible return value type (got "PinnedMailBoxUnencrypted", expected "MailBox") [return-value] src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "None", variable has type "str") [assignment] +src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "PinnedMailBox", variable has type "PinnedMailBoxUnencrypted") [assignment] +src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "PinnedMailBoxStartTls", variable has type "PinnedMailBoxUnencrypted") [assignment] src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "str", target has type "date") [assignment] src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "str", target has type "date") [assignment] src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expression has type "str", target has type "date") [assignment] @@ -2108,6 +2378,8 @@ src/paperless_mail/mail.py:0: error: Incompatible types in assignment (expressio src/paperless_mail/mail.py:0: error: Missing type arguments for generic type "dict" [type-arg] src/paperless_mail/mail.py:0: error: Missing type arguments for generic type "list" [type-arg] src/paperless_mail/management/commands/mail_fetcher.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/migrations/0002_optimize_integer_field_sizes.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/migrations/0002_optimize_integer_field_sizes.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/models.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/models.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/oauth.py:0: error: Argument "refresh_token" to "refresh_token" of "BaseOAuth2" has incompatible type "str | None"; expected "str" [arg-type] @@ -2131,105 +2403,78 @@ src/paperless_mail/serialisers.py:0: error: Function is missing a type annotatio src/paperless_mail/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/serialisers.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/serialisers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/conftest.py:0: error: "MailAccountFactory" has no attribute "delete" [attr-defined] -src/paperless_mail/tests/conftest.py:0: error: Incompatible types in "yield" (actual type "MailAccountFactory", expected type "MailAccount") [misc] -src/paperless_mail/tests/test_api.py:0: error: "CorrespondentFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "DocumentTypeFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_attachment_filename_include" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_body" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_from" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_subject" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "filter_to" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "MailRuleFactory" has no attribute "refresh_from_db" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "ProcessedMailFactory" has no attribute "id"; maybe "uid"? [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: "TagFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "MailAccountFactory"; expected "Model | None" [arg-type] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "MailAccountFactory"; expected "Model | None" [arg-type] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "MailRuleFactory"; expected "Model | None" [arg-type] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "ProcessedMailFactory"; expected "Model | None" [arg-type] -src/paperless_mail/tests/test_api.py:0: error: Argument 3 to "assign_perm" has incompatible type "ProcessedMailFactory"; expected "Model | None" [arg-type] +src/paperless_mail/tasks.py:0: error: Missing type arguments for generic type "Task" [type-arg] +src/paperless_mail/tests/helpers.py:0: error: "MailMessage" has no attribute "flagged" [attr-defined] +src/paperless_mail/tests/helpers.py:0: error: "MailMessage" has no attribute "seen" [attr-defined] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxFolderSelectError" has incompatible type "None"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[MailMessage], TypeGuard[Never]]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[MailMessage], TypeGuard[Never]]" [arg-type] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[Never]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Incompatible types in assignment (expression has type "filter[Never]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/helpers.py:0: error: Missing type arguments for generic type "AbstractContextManager" [type-arg] src/paperless_mail/tests/test_mail.py:0: error: "BogusFolderManager" has no attribute "list" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: "BogusFolderManager" has no attribute "list" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: "BogusFolderManager" has no attribute "list" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: "BogusFolderManager" has no attribute "list" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "CorrespondentFactory" has no attribute "id" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "CorrespondentFactory" has no attribute "id" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailAccountFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailMessage" has no attribute "flagged" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailMessage" has no attribute "flagged" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: "MailMessage" has no attribute "seen" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailMessage" has no attribute "seen" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailRuleFactory" has no attribute "action_parameter" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "MailRuleFactory" has no attribute "pk" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[att@486]" has no attribute "filename" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message2@432]" has no attribute "from_" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message2@432]" has no attribute "from_" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message2@432]" has no attribute "from_values" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message@425]" has no attribute "from_" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message@425]" has no attribute "from_values" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message@484]" has no attribute "subject" [attr-defined] -src/paperless_mail/tests/test_mail.py:0: error: "type[message@537]" has no attribute "attachments" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[att]" has no attribute "filename" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message2]" has no attribute "from_" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message2]" has no attribute "from_" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message2]" has no attribute "from_values" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message]" has no attribute "from_" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message]" has no attribute "from_values" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: "type[message]" has no attribute "subject" [attr-defined] src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxFolderSelectError" has incompatible type "None"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxFolderSelectError" has incompatible type "None"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "MailboxLoginError" has incompatible type "str"; expected "tuple[Any, ...]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message2@432]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message2@432]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message@425]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message@425]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message@425]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message@425]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message@484]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message@484]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message@484]"; expected "MailMessage" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[MailMessage], TypeGuard[Never]]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "filter" has incompatible type "Callable[[Any], bool]"; expected "Callable[[MailMessage], TypeGuard[Never]]" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att@486]"; expected "MailAttachment" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att@486]"; expected "MailAttachment" [arg-type] -src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att@486]"; expected "MailAttachment" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message2]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message2]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_correspondent" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 1 to "_get_title" of "MailAccountHandler" has incompatible type "type[message]"; expected "MailMessage" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att]"; expected "MailAttachment" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att]"; expected "MailAttachment" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "_get_title" of "MailAccountHandler" has incompatible type "type[att]"; expected "MailAttachment" [arg-type] src/paperless_mail/tests/test_mail.py:0: error: Argument 2 to "assertIn" of "TestCase" has incompatible type "str | None"; expected "Iterable[Any] | Container[Any]" [arg-type] +src/paperless_mail/tests/test_mail.py:0: error: Cannot assign to a method [method-assign] +src/paperless_mail/tests/test_mail.py:0: error: Cannot assign to a method [method-assign] src/paperless_mail/tests/test_mail.py:0: error: Dict entry 0 has incompatible type "str": "None"; expected "str": "str" [dict-item] src/paperless_mail/tests/test_mail.py:0: error: Dict entry 0 has incompatible type "str": "int"; expected "str": "str" [dict-item] src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "att", not "Attachment" [name-match] src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "message", not "MailMessage" [name-match] src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "message", not "MailMessage" [name-match] -src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "message", not "MailMessage" [name-match] src/paperless_mail/tests/test_mail.py:0: error: First argument to namedtuple() should be "message2", not "MailMessage" [name-match] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] @@ -2246,23 +2491,10 @@ src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annot src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "assign_correspondent" of "MailRule" (got "CorrespondentFactory", expected "Correspondent | Combinable | None") [misc] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[MailMessage]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[Never]", variable has type "list[MailMessage]") [assignment] -src/paperless_mail/tests/test_mail.py:0: error: Incompatible types in assignment (expression has type "filter[Never]", variable has type "list[MailMessage]") [assignment] +src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] +src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] +src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] +src/paperless_mail/tests/test_mail.py:0: error: Incompatible type for "uid" of "ProcessedMail" (got "str | None", expected "str | int | Combinable") [misc] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "id" [union-attr] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "id" [union-attr] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "match" [union-attr] @@ -2270,19 +2502,31 @@ src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] src/paperless_mail/tests/test_mail.py:0: error: Item "None" of "Correspondent | None" has no attribute "name" [union-attr] -src/paperless_mail/tests/test_mail.py:0: error: Missing type arguments for generic type "AbstractContextManager" [type-arg] +src/paperless_mail/tests/test_mail.py:0: error: List item 0 has incompatible type "str | None"; expected "str" [list-item] src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail.py:0: error: Module "django.utils.timezone" does not explicitly export attribute "datetime" [attr-defined] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/tests/test_mail_nfc.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/tests/test_mail_oauth.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] src/paperless_mail/tests/test_mail_oauth.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] src/paperless_mail/tests/test_mail_oauth.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] src/paperless_mail/tests/test_mail_oauth.py:0: error: "_MonkeyPatchedWSGIResponse" has no attribute "url" [attr-defined] -src/paperless_mail/tests/test_mail_oauth.py:0: error: Argument 1 to "handle_mail_account" of "MailAccountHandler" has incompatible type "MailAccountFactory"; expected "MailAccount" [arg-type] -src/paperless_mail/tests/test_mail_oauth.py:0: error: Argument 1 to "handle_mail_account" of "MailAccountHandler" has incompatible type "MailAccountFactory"; expected "MailAccount" [arg-type] -src/paperless_mail/tests/test_mail_oauth.py:0: error: Argument 1 to "handle_mail_account" of "MailAccountHandler" has incompatible type "MailAccountFactory"; expected "MailAccount" [arg-type] src/paperless_mail/tests/test_mail_oauth.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail_oauth.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail_oauth.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] src/paperless_mail/tests/test_mail_oauth.py:0: error: Function is missing a type annotation for one or more parameters [no-untyped-def] +src/paperless_mail/tests/test_migrations.py:0: error: Function is missing a return type annotation [no-untyped-def] +src/paperless_mail/tests/test_migrations.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/tests/test_preprocessor.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/tests/test_preprocessor.py:0: error: "Message[str, str]" has no attribute "_headers"; maybe "add_header"? [attr-defined] src/paperless_mail/tests/test_preprocessor.py:0: error: "TestMailMessageGpgDecryptor" has no attribute "messageEncryptor" [attr-defined] @@ -2294,11 +2538,17 @@ src/paperless_mail/tests/test_preprocessor.py:0: error: "type[TestMailMessageGpg src/paperless_mail/tests/test_preprocessor.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/tests/test_preprocessor.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/tests/test_preprocessor.py:0: error: Function is missing a type annotation [no-untyped-def] -src/paperless_mail/tests/test_preprocessor.py:0: error: Incompatible type for "account" of "MailRule" (got "MailAccountFactory", expected "MailAccount | Combinable | None") [misc] src/paperless_mail/tests/test_preprocessor.py:0: error: Skipping analyzing "gnupg": module is installed, but missing library stubs or py.typed marker [import-untyped] +src/paperless_mail/tests/test_process_mail_accounts_overlap.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a return type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] +src/paperless_mail/views.py:0: error: Function is missing a type annotation [no-untyped-def] src/paperless_mail/views.py:0: error: Incompatible types in assignment (expression has type "tuple[type[IsAuthenticated]]", variable has type "tuple[type[IsAuthenticated], type[PaperlessObjectPermissions]]") [assignment] +src/paperless_testing/http.py:0: error: Argument 1 to "join" of "bytes" has incompatible type "Iterator[bytes] | AsyncIterator[bytes]"; expected "Iterable[Buffer]" [arg-type] +src/paperless_testing/migrations.py:0: error: Item "None" of "AppConfig | None" has no attribute "name" [union-attr] +src/paperless_testing/retry.py:0: error: Missing type arguments for generic type "Callable" [type-arg] +src/paperless_testing/retry.py:0: error: Missing type arguments for generic type "list" [type-arg] +src/paperless_testing/retry.py:0: error: Missing type arguments for generic type "tuple" [type-arg] diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 727d2c410..d037198ab 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -38,7 +38,7 @@ repos: - json # See https://github.com/prettier/prettier/issues/15742 for the fork reason - repo: https://github.com/rbubley/mirrors-prettier - rev: 'v3.9.6' + rev: 'v3.9.9' hooks: - id: prettier types_or: @@ -46,16 +46,16 @@ repos: - ts - markdown additional_dependencies: - - prettier@3.9.6 + - prettier@3.9.9 - 'prettier-plugin-organize-imports@4.3.0' # Python hooks - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.16.5 + rev: v0.16.9 hooks: - id: ruff-check - id: ruff-format - repo: https://github.com/tox-dev/pyproject-fmt - rev: "v2.28.1" + rev: "v2.29.4" hooks: - id: pyproject-fmt additional_dependencies: [tomli] diff --git a/.pyrefly-baseline.json b/.pyrefly-baseline.json index 87578462d..9305cfe00 100644 --- a/.pyrefly-baseline.json +++ b/.pyrefly-baseline.json @@ -1,14560 +1,6423 @@ { "errors": [ { - "line": 94, "column": 5, - "stop_line": 94, - "stop_column": 31, "path": "src/documents/admin.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `FunctionType` has no attribute `short_description`", "concise_description": "Object of class `FunctionType` has no attribute `short_description`", "severity": "error" }, { - "line": 255, "column": 27, - "stop_line": 255, - "stop_column": 35, "path": "src/documents/admin.py", - "code": -2, "name": "unbound-name", - "description": "`LogEntry` may be uninitialized", "concise_description": "`LogEntry` may be uninitialized", "severity": "error" }, { - "line": 269, - "column": 16, - "stop_line": 269, - "stop_column": 24, - "path": "src/documents/barcodes.py", - "code": -2, - "name": "missing-import", - "description": "Cannot find module `zxingcpp`\n Looked in these locations (from config in `/home/trenton/projects/paperless-ngx/pyproject.toml`):\n Search path (from config file): [\"/home/trenton/projects/paperless-ngx/src\"]\n Import root (inferred from project layout): \"/home/trenton/projects/paperless-ngx/src\"\n Site package path queried from interpreter: [\"/home/trenton/projects/paperless-ngx/.venv/lib/python3.13/site-packages\"]", - "concise_description": "Cannot find module `zxingcpp`", - "severity": "error" - }, - { - "line": 325, "column": 38, - "stop_line": 325, - "stop_column": 51, "path": "src/documents/barcodes.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `Image` has no attribute `filename`", "concise_description": "Object of class `Image` has no attribute `filename`", "severity": "error" }, { - "line": 277, - "column": 16, - "stop_line": 277, - "stop_column": 23, - "path": "src/documents/bulk_edit.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `Literal['ERROR']` is not assignable to declared return type `Literal['OK']`", - "concise_description": "Returned type `Literal['ERROR']` is not assignable to declared return type `Literal['OK']`", + "column": 9, + "path": "src/documents/bulk_download.py", + "name": "bad-override", + "concise_description": "Class member `OriginalsOnlyStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/bulk_download.py", + "name": "bad-override", + "concise_description": "Class member `ArchiveOnlyStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/bulk_download.py", + "name": "bad-override", + "concise_description": "Class member `OriginalAndArchiveStrategy.add_document` overrides parent class `BulkArchiveStrategy` in an inconsistent manner", "severity": "error" }, { - "line": 291, "column": 9, - "stop_line": 293, - "stop_column": 60, "path": "src/documents/bulk_edit.py", - "code": -2, "name": "bad-assignment", - "description": "`dict_items[Unknown, Unknown] | list[tuple[int, None]]` is not assignable to variable `add_custom_fields` with type `dict[Unknown, Unknown] | list[int]`", - "concise_description": "`dict_items[Unknown, Unknown] | list[tuple[int, None]]` is not assignable to variable `add_custom_fields` with type `dict[Unknown, Unknown] | list[int]`", + "concise_description": "`list[tuple[int, Unknown]] | list[tuple[int, None]]` is not assignable to variable `add_custom_fields` with type `dict[Unknown, Unknown] | list[int]`", "severity": "error" }, { - "line": 297, - "column": 32, - "stop_line": 297, - "stop_column": 40, + "column": 23, "path": "src/documents/bulk_edit.py", - "code": -2, "name": "not-iterable", - "description": "Type `int` is not iterable", "concise_description": "Type `int` is not iterable", "severity": "error" }, { - "line": 299, "column": 9, - "stop_line": 299, - "stop_column": 24, "path": "src/documents/bulk_edit.py", - "code": -2, "name": "not-iterable", - "description": "Type `int` is not iterable", "concise_description": "Type `int` is not iterable", "severity": "error" }, { - "line": 305, - "column": 21, - "stop_line": 305, - "stop_column": 43, + "column": 13, "path": "src/documents/bulk_edit.py", - "code": -2, "name": "bad-index", - "description": "Cannot index into `dict[CustomField.FieldDataType, str]`\n Argument `str` is not assignable to parameter `key` with type `CustomField.FieldDataType` in function `dict.__getitem__`", "concise_description": "Cannot index into `dict[CustomField.FieldDataType, str]`", "severity": "error" }, { - "line": 341, "column": 5, - "stop_line": 344, - "stop_column": 18, "path": "src/documents/bulk_edit.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `QuerySet` has no attribute `hard_delete`", "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", "severity": "error" }, { - "line": 724, + "column": 59, + "path": "src/documents/bulk_edit.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `transaction_id` in function `django.db.models.query.QuerySet.delete`", + "severity": "error" + }, + { + "column": 57, + "path": "src/documents/bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[int]` is not assignable to parameter `args` with type `tuple[Any, ...] | None` in function `celery.app.task.Task.apply_async`", + "severity": "error" + }, + { "column": 33, - "stop_line": 724, - "stop_column": 63, "path": "src/documents/bulk_edit.py", - "code": -2, "name": "missing-argument", - "description": "Missing argument `p` in function `pikepdf._core.PageList.remove`", "concise_description": "Missing argument `p` in function `pikepdf._core.PageList.remove`", "severity": "error" }, { - "line": 1032, - "column": 13, - "stop_line": 1032, - "stop_column": 64, - "path": "src/documents/bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `append`", - "concise_description": "Object of class `NoneType` has no attribute `append`", - "severity": "error" - }, - { - "line": 180, "column": 25, - "stop_line": 180, - "stop_column": 55, "path": "src/documents/caching.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `binascii.hexlify`\n Protocol `Buffer` requires attribute `__buffer__`", "concise_description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `binascii.hexlify`", "severity": "error" }, { - "line": 144, + "column": 13, + "path": "src/documents/classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `MLPClassifier` has no attribute `_optimizer`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `MLPClassifier` has no attribute `_best_coefs`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `MLPClassifier` has no attribute `_best_intercepts`", + "severity": "error" + }, + { "column": 40, - "stop_line": 144, - "stop_column": 66, "path": "src/documents/classifier.py", - "code": -2, "name": "missing-module-attribute", - "description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", "concise_description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", "severity": "error" }, { - "line": 341, + "column": 17, + "path": "src/documents/classifier.py", + "name": "unsupported-operation", + "concise_description": "`>=` is not supported between `datetime` and `None`", + "severity": "error" + }, + { "column": 36, - "stop_line": 343, - "stop_column": 10, "path": "src/documents/classifier.py", - "code": -2, "name": "bad-assignment", - "description": "`ndarray | spmatrix` is not assignable to `ndarray`", "concise_description": "`ndarray | spmatrix` is not assignable to `ndarray`", "severity": "error" }, { - "line": 348, "column": 44, - "stop_line": 348, - "stop_column": 48, "path": "src/documents/classifier.py", - "code": -2, "name": "bad-assignment", - "description": "`None` is not assignable to attribute `stop_words_` with type `set[Unknown]`", "concise_description": "`None` is not assignable to attribute `stop_words_` with type `set[Unknown]`", "severity": "error" }, { - "line": 362, "column": 51, - "stop_line": 364, - "stop_column": 24, "path": "src/documents/classifier.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `spmatrix` has no attribute `ravel`", "concise_description": "Object of class `spmatrix` has no attribute `ravel`", "severity": "error" }, { - "line": 367, "column": 42, - "stop_line": 367, - "stop_column": 88, "path": "src/documents/classifier.py", - "code": -2, "name": "bad-assignment", - "description": "`ndarray | spmatrix` is not assignable to variable `labels_tags_vectorized` with type `ndarray`", "concise_description": "`ndarray | spmatrix` is not assignable to variable `labels_tags_vectorized` with type `ndarray`", "severity": "error" }, { - "line": 466, - "column": 18, - "stop_line": 466, - "stop_column": 42, + "column": 17, "path": "src/documents/classifier.py", - "code": -2, - "name": "not-iterable", - "description": "`in` is not supported between `str` and `None`", - "concise_description": "`in` is not supported between `str` and `None`", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `sample_weight` in function `sklearn.neural_network._multilayer_perceptron.BaseMultilayerPerceptron.fit`", "severity": "error" }, { - "line": 472, - "column": 26, - "stop_line": 472, - "stop_column": 44, + "column": 17, "path": "src/documents/classifier.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `stem`", - "concise_description": "Object of class `NoneType` has no attribute `stem`", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `sample_weight` in function `sklearn.neural_network._multilayer_perceptron.BaseMultilayerPerceptron.fit`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/classifier.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `sample_weight` in function `sklearn.neural_network._multilayer_perceptron.BaseMultilayerPerceptron.fit`", "severity": "error" }, { - "line": 529, "column": 22, - "stop_line": 529, - "stop_column": 52, "path": "src/documents/classifier.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `transform`", "concise_description": "Object of class `NoneType` has no attribute `transform`", "severity": "error" }, { - "line": 564, + "column": 26, + "path": "src/documents/classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `transform`", + "severity": "error" + }, + { "column": 24, - "stop_line": 564, - "stop_column": 61, "path": "src/documents/classifier.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `inverse_transform`", "concise_description": "Object of class `NoneType` has no attribute `inverse_transform`", "severity": "error" }, { - "line": 79, "column": 9, - "stop_line": 79, - "stop_column": 23, "path": "src/documents/consumer.py", - "code": -2, "name": "not-iterable", - "description": "Type `None` is not iterable", "concise_description": "Type `None` is not iterable", "severity": "error" }, { - "line": 207, "column": 26, - "stop_line": 207, - "stop_column": 35, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-count", - "description": "Expected 0 positional arguments, got 5 in function `object.__init__`", "concise_description": "Expected 0 positional arguments, got 5 in function `object.__init__`", "severity": "error" }, { - "line": 209, "column": 9, - "stop_line": 209, - "stop_column": 33, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `renew_logging_group`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `renew_logging_group`", "severity": "error" }, { - "line": 211, "column": 25, - "stop_line": 211, - "stop_column": 38, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { - "line": 211, "column": 51, - "stop_line": 211, - "stop_column": 65, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `input_doc`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `input_doc`", "severity": "error" }, { - "line": 221, "column": 9, - "stop_line": 221, - "stop_column": 24, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `status_mgr`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `status_mgr`", "severity": "error" }, { - "line": 227, "column": 22, - "stop_line": 227, - "stop_column": 35, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { - "line": 227, "column": 48, - "stop_line": 227, - "stop_column": 61, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { - "line": 228, "column": 29, - "stop_line": 228, - "stop_column": 42, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { - "line": 229, "column": 16, - "stop_line": 229, - "stop_column": 29, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { - "line": 230, "column": 30, - "stop_line": 230, - "stop_column": 43, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { - "line": 231, "column": 16, - "stop_line": 231, - "stop_column": 29, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "concise_description": "Object of class `ConsumerPluginMixin` has no attribute `metadata`", "severity": "error" }, { - "line": 328, "column": 17, - "stop_line": 328, - "stop_column": 25, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "concise_description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "severity": "error" }, { - "line": 397, "column": 17, - "stop_line": 397, - "stop_column": 25, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "concise_description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "severity": "error" }, { - "line": 408, "column": 9, - "stop_line": 408, - "stop_column": 12, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-override", - "description": "Class member `ConsumerPlugin.run` overrides parent class `AlwaysRunPluginMixin` in an inconsistent manner\n `ConsumerPlugin.run` has type `(self: ConsumerPlugin) -> ConsumeFileSuccessResult`, which is not assignable to `(self: ConsumerPlugin) -> str | None`, the type of `AlwaysRunPluginMixin.run`\n Signature mismatch:\n expected: def run(self: ConsumerPlugin) -> str | None: ...\n ^^^^^^^^^^ return type\n found: def run(self: ConsumerPlugin) -> ConsumeFileSuccessResult: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^ return type", "concise_description": "Class member `ConsumerPlugin.run` overrides parent class `AlwaysRunPluginMixin` in an inconsistent manner", "severity": "error" }, { - "line": 408, "column": 9, - "stop_line": 408, - "stop_column": 12, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-override", - "description": "Class member `ConsumerPlugin.run` overrides parent class `NoSetupPluginMixin` in an inconsistent manner\n `ConsumerPlugin.run` has type `(self: ConsumerPlugin) -> ConsumeFileSuccessResult`, which is not assignable to `(self: ConsumerPlugin) -> str | None`, the type of `NoSetupPluginMixin.run`\n Signature mismatch:\n expected: def run(self: ConsumerPlugin) -> str | None: ...\n ^^^^^^^^^^ return type\n found: def run(self: ConsumerPlugin) -> ConsumeFileSuccessResult: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^ return type", "concise_description": "Class member `ConsumerPlugin.run` overrides parent class `NoSetupPluginMixin` in an inconsistent manner", "severity": "error" }, { - "line": 408, "column": 9, - "stop_line": 408, - "stop_column": 12, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-override", - "description": "Class member `ConsumerPlugin.run` overrides parent class `NoCleanupPluginMixin` in an inconsistent manner\n `ConsumerPlugin.run` has type `(self: ConsumerPlugin) -> ConsumeFileSuccessResult`, which is not assignable to `(self: ConsumerPlugin) -> str | None`, the type of `NoCleanupPluginMixin.run`\n Signature mismatch:\n expected: def run(self: ConsumerPlugin) -> str | None: ...\n ^^^^^^^^^^ return type\n found: def run(self: ConsumerPlugin) -> ConsumeFileSuccessResult: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^ return type", "concise_description": "Class member `ConsumerPlugin.run` overrides parent class `NoCleanupPluginMixin` in an inconsistent manner", "severity": "error" }, { - "line": 408, "column": 9, - "stop_line": 408, - "stop_column": 12, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-override", - "description": "Class member `ConsumerPlugin.run` overrides parent class `ConsumeTaskPlugin` in an inconsistent manner\n `ConsumerPlugin.run` has type `(self: ConsumerPlugin) -> ConsumeFileSuccessResult`, which is not assignable to `(self: ConsumerPlugin) -> str | None`, the type of `ConsumeTaskPlugin.run`\n Signature mismatch:\n expected: def run(self: ConsumerPlugin) -> str | None: ...\n ^^^^^^^^^^ return type\n found: def run(self: ConsumerPlugin) -> ConsumeFileSuccessResult: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^ return type", "concise_description": "Class member `ConsumerPlugin.run` overrides parent class `ConsumeTaskPlugin` in an inconsistent manner", "severity": "error" }, { - "line": 442, "column": 25, - "stop_line": 446, - "stop_column": 26, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `list[Path | str]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "concise_description": "Argument `list[Path | str]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "severity": "error" }, { - "line": 447, "column": 32, - "stop_line": 447, - "stop_column": 40, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "concise_description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `logger` with type `Logger | None` in function `documents.utils.run_subprocess`", "severity": "error" }, { - "line": 518, "column": 25, - "stop_line": 518, - "stop_column": 33, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `log` with type `Logger | None` in function `should_produce_archive`", "concise_description": "Argument `LoggerAdapter[Logger]` is not assignable to parameter `log` with type `Logger | None` in function `should_produce_archive`", "severity": "error" }, { - "line": 548, - "column": 74, - "stop_line": 548, - "stop_column": 78, - "path": "src/documents/consumer.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.plugins.date_parsing.base.DateParserPluginBase.parse`", - "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.plugins.date_parsing.base.DateParserPluginBase.parse`", - "severity": "error" - }, - { - "line": 630, - "column": 33, - "stop_line": 630, - "stop_column": 60, - "path": "src/documents/consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `log_create`", - "concise_description": "Object of class `Manager` has no attribute `log_create`", - "severity": "error" - }, - { - "line": 645, - "column": 38, - "stop_line": 645, - "stop_column": 42, - "path": "src/documents/consumer.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `text` with type `str` in function `ConsumerPlugin._store`", - "concise_description": "Argument `str | None` is not assignable to parameter `text` with type `str` in function `ConsumerPlugin._store`", - "severity": "error" - }, - { - "line": 716, - "column": 62, - "stop_line": 716, - "stop_column": 83, - "path": "src/documents/consumer.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", - "concise_description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", - "severity": "error" - }, - { - "line": 723, - "column": 37, - "stop_line": 723, - "stop_column": 58, - "path": "src/documents/consumer.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", - "severity": "error" - }, - { - "line": 807, "column": 13, - "stop_line": 807, - "stop_column": 31, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `correspondent_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "concise_description": "Argument `str | None` is not assignable to parameter `correspondent_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "severity": "error" }, { - "line": 808, "column": 13, - "stop_line": 808, - "stop_column": 26, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `doc_type_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "concise_description": "Argument `str | None` is not assignable to parameter `doc_type_name` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "severity": "error" }, { - "line": 809, "column": 13, - "stop_line": 809, - "stop_column": 27, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `owner_username` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "concise_description": "Argument `str | None` is not assignable to parameter `owner_username` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", "severity": "error" }, { - "line": 931, "column": 31, - "stop_line": 931, - "stop_column": 46, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "concise_description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "severity": "error" }, { - "line": 1003, "column": 21, - "stop_line": 1003, - "stop_column": 36, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `title`", "concise_description": "Object of class `NoneType` has no attribute `title`", "severity": "error" }, { - "line": 1004, "column": 24, - "stop_line": 1004, - "stop_column": 51, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `original_filename`", "concise_description": "Object of class `NoneType` has no attribute `original_filename`", "severity": "error" }, { - "line": 1005, "column": 30, - "stop_line": 1005, - "stop_column": 48, "path": "src/documents/consumer.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `object | Unknown` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `object | Unknown` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 1005, "column": 58, - "stop_line": 1005, - "stop_column": 76, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `filename`", "concise_description": "Object of class `NoneType` has no attribute `filename`", "severity": "error" }, { - "line": 1006, "column": 28, - "stop_line": 1006, - "stop_column": 40, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `pk`", "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, { - "line": 1013, "column": 65, - "stop_line": 1013, - "stop_column": 77, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `pk`", "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, { - "line": 1028, "column": 21, - "stop_line": 1028, - "stop_column": 33, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `pk`", "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, { - "line": 1094, "column": 16, - "stop_line": 1094, - "stop_column": 51, "path": "src/documents/consumer.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `deleted_at`", "concise_description": "Object of class `NoneType` has no attribute `deleted_at`", "severity": "error" }, { - "line": 31, "column": 13, - "stop_line": 37, - "stop_column": 14, "path": "src/documents/converters.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `list[Path | str]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", - "concise_description": "Argument `list[Path | str]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", + "concise_description": "Argument `list[Path | str | Any]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "severity": "error" }, { - "line": 46, "column": 24, - "stop_line": 46, - "stop_column": 49, "path": "src/documents/converters.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `bytes | None` is not assignable to parameter `buffer` with type `Buffer` in function `_io.BufferedWriter.write`\n Protocol `Buffer` requires attribute `__buffer__`", "concise_description": "Argument `bytes | None` is not assignable to parameter `buffer` with type `Buffer` in function `_io.BufferedWriter.write`", "severity": "error" }, { - "line": 116, "column": 13, - "stop_line": 119, - "stop_column": 26, "path": "src/documents/data_models.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `list` has no attribute `values_list`", "concise_description": "Object of class `list` has no attribute `values_list`", "severity": "error" }, { - "line": 122, "column": 13, - "stop_line": 125, - "stop_column": 26, "path": "src/documents/data_models.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `list` has no attribute `values_list`", "concise_description": "Object of class `list` has no attribute `values_list`", "severity": "error" }, { - "line": 138, "column": 26, - "stop_line": 138, - "stop_column": 43, "path": "src/documents/data_models.py", - "code": -2, "name": "not-iterable", - "description": "Type `Group` is not iterable", "concise_description": "Type `Group` is not iterable", "severity": "error" }, { - "line": 139, "column": 35, - "stop_line": 139, - "stop_column": 59, "path": "src/documents/data_models.py", - "code": -2, "name": "bad-index", - "description": "Cannot index into `Group`\n Object of class `Group` has no attribute `__getitem__`", "concise_description": "Cannot index into `Group`", "severity": "error" }, { - "line": 143, "column": 26, - "stop_line": 143, - "stop_column": 43, "path": "src/documents/data_models.py", - "code": -2, "name": "not-iterable", - "description": "Type `Group` is not iterable", "concise_description": "Type `Group` is not iterable", "severity": "error" }, { - "line": 144, "column": 37, - "stop_line": 144, - "stop_column": 61, "path": "src/documents/data_models.py", - "code": -2, "name": "bad-index", - "description": "Cannot index into `Group`\n Object of class `Group` has no attribute `__getitem__`", "concise_description": "Cannot index into `Group`", "severity": "error" }, { - "line": 173, "column": 22, - "stop_line": 173, - "stop_column": 65, "path": "src/documents/data_models.py", - "code": -2, "name": "bad-assignment", - "description": "`None` is not assignable to `str`", "concise_description": "`None` is not assignable to `str`", "severity": "error" }, { - "line": 143, "column": 12, - "stop_line": 143, - "stop_column": 36, "path": "src/documents/file_handling.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `storage_path`", "concise_description": "Object of class `NoneType` has no attribute `storage_path`", "severity": "error" }, { - "line": 144, "column": 31, - "stop_line": 144, - "stop_column": 60, "path": "src/documents/file_handling.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `object` has no attribute `path`", "concise_description": "Object of class `object` has no attribute `path`", "severity": "error" }, { - "line": 157, "column": 53, - "stop_line": 157, - "stop_column": 64, "path": "src/documents/file_handling.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Document | None` is not assignable to parameter `document` with type `Document` in function `format_filename`", "concise_description": "Argument `Document | None` is not assignable to parameter `document` with type `Document` in function `format_filename`", "severity": "error" }, { - "line": 181, "column": 16, - "stop_line": 181, - "stop_column": 30, "path": "src/documents/file_handling.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `pk`", "concise_description": "Object of class `NoneType` has no attribute `pk`", "severity": "error" }, { - "line": 210, "column": 51, - "stop_line": 210, - "stop_column": 61, "path": "src/documents/filters.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `SharedByUser` has no attribute `model`", "concise_description": "Object of class `SharedByUser` has no attribute `model`", "severity": "error" }, { - "line": 266, + "column": 21, + "path": "src/documents/filters.py", + "name": "bad-argument-type", + "concise_description": "Argument `QuerySet[Model, dict[str, Any]]` is not assignable to parameter `expression` with type `Combinable | str` in function `django.db.models.aggregates.Count.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/filters.py", + "name": "bad-argument-type", + "concise_description": "Argument `QuerySet[Model, dict[str, Any]]` is not assignable to parameter `expression` with type `Combinable | str` in function `django.db.models.aggregates.Count.__init__`", + "severity": "error" + }, + { "column": 31, - "stop_line": 266, - "stop_column": 51, "path": "src/documents/filters.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { - "line": 326, "column": 25, - "stop_line": 326, - "stop_column": 66, "path": "src/documents/filters.py", - "code": -2, "name": "unsupported-operation", - "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { - "line": 353, - "column": 47, - "stop_line": 353, - "stop_column": 76, + "column": 48, "path": "src/documents/filters.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `dict[Unknown | None, _APIExceptionInput]` is not assignable to parameter `detail` with type `ErrorDetail | Mapping[str, _APIExceptionInput] | Sequence[_APIExceptionInput] | _StrPromise | dict[str, _Detail] | list[_Detail] | str | None` in function `rest_framework.exceptions.APIException.__init__`", - "concise_description": "Argument `dict[Unknown | None, _APIExceptionInput]` is not assignable to parameter `detail` with type `ErrorDetail | Mapping[str, _APIExceptionInput] | Sequence[_APIExceptionInput] | _StrPromise | dict[str, _Detail] | list[_Detail] | str | None` in function `rest_framework.exceptions.APIException.__init__`", + "name": "bad-assignment", + "concise_description": "`Unknown | None` is not assignable to dict key type `str`", "severity": "error" }, { - "line": 362, "column": 5, - "stop_line": 362, - "stop_column": 26, "path": "src/documents/filters.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `FunctionType` has no attribute `__signature__`", "concise_description": "Object of class `FunctionType` has no attribute `__signature__`", "severity": "error" }, { - "line": 673, "column": 26, - "stop_line": 673, - "stop_column": 49, "path": "src/documents/filters.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ForeignObjectRel` has no attribute `deconstruct`", "concise_description": "Object of class `ForeignObjectRel` has no attribute `deconstruct`", "severity": "error" }, { - "line": 676, "column": 17, - "stop_line": 676, - "stop_column": 28, "path": "src/documents/filters.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Field[Any, Any] | ForeignObjectRel` is not assignable to parameter `model_field` with type `Field[Unknown, Unknown]` in function `rest_framework.serializers.ModelSerializer.build_standard_field`", "concise_description": "Argument `Field[Any, Any] | ForeignObjectRel` is not assignable to parameter `model_field` with type `Field[Unknown, Unknown]` in function `rest_framework.serializers.ModelSerializer.build_standard_field`", "severity": "error" }, { - "line": 733, - "column": 18, - "stop_line": 733, - "stop_column": 41, - "path": "src/documents/filters.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `iterable` with type `Iterable[Any]` in function `set.__init__`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Argument `Any | None` is not assignable to parameter `iterable` with type `Iterable[Any]` in function `set.__init__`", - "severity": "error" - }, - { - "line": 1040, "column": 25, - "stop_line": 1040, - "stop_column": 45, "path": "src/documents/filters.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { - "line": 13, "column": 31, - "stop_line": 13, - "stop_column": 48, "path": "src/documents/loggers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `LoggingMixin` has no attribute `logging_name`", "concise_description": "Object of class `LoggingMixin` has no attribute `logging_name`", "severity": "error" }, { - "line": 119, - "column": 13, - "stop_line": 119, - "stop_column": 29, - "path": "src/documents/management/commands/document_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `write`", - "concise_description": "Object of class `NoneType` has no attribute `write`", - "severity": "error" - }, - { - "line": 122, - "column": 9, - "stop_line": 122, - "stop_column": 25, - "path": "src/documents/management/commands/document_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `write`", - "concise_description": "Object of class `NoneType` has no attribute `write`", - "severity": "error" - }, - { - "line": 565, "column": 41, - "stop_line": 565, - "stop_column": 50, "path": "src/documents/management/commands/document_exporter.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | str` is not assignable to parameter `element` with type `str` in function `set.add`", "concise_description": "Argument `Path | str` is not assignable to parameter `element` with type `str` in function `set.add`", "severity": "error" }, { - "line": 238, "column": 14, - "stop_line": 238, - "stop_column": 18, "path": "src/documents/management/commands/document_importer.py", - "code": -2, "name": "bad-override-mutable-attribute", - "description": "Class member `Command.salt` overrides parent class `CryptMixin` in an inconsistent manner\n `Command.salt` has type `str | None`, which is not consistent with `str` in `CryptMixin.salt` (the type of read-write attributes cannot be changed)", "concise_description": "Class member `Command.salt` overrides parent class `CryptMixin` in an inconsistent manner", "severity": "error" }, { - "line": 420, - "column": 29, - "stop_line": 420, - "stop_column": 51, - "path": "src/documents/management/commands/document_importer.py", - "code": -2, - "name": "unsupported-operation", - "description": "`/` is not supported between `Path` and `None`\n Argument `None` is not assignable to parameter `key` with type `PathLike[str] | str` in function `pathlib.PurePath.__truediv__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "`/` is not supported between `Path` and `None`", - "severity": "error" - }, - { - "line": 463, - "column": 35, - "stop_line": 463, - "stop_column": 60, - "path": "src/documents/management/commands/document_importer.py", - "code": -2, - "name": "unsupported-operation", - "description": "`/` is not supported between `Path` and `None`\n Argument `None` is not assignable to parameter `key` with type `PathLike[str] | str` in function `pathlib.PurePath.__truediv__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "`/` is not supported between `Path` and `None`", - "severity": "error" - }, - { - "line": 49, "column": 42, - "stop_line": 49, - "stop_column": 69, "path": "src/documents/matching.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_correspondent`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_correspondent`", "severity": "error" }, { - "line": 81, "column": 42, - "stop_line": 81, - "stop_column": 69, "path": "src/documents/matching.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_document_type`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_document_type`", "severity": "error" }, { - "line": 112, "column": 33, - "stop_line": 112, - "stop_column": 60, "path": "src/documents/matching.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_tags`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_tags`", "severity": "error" }, { - "line": 139, "column": 41, - "stop_line": 139, - "stop_column": 68, "path": "src/documents/matching.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_storage_path`", "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `documents.classifier.DocumentClassifier.predict_storage_path`", "severity": "error" }, { - "line": 345, - "column": 24, - "stop_line": 348, - "stop_column": 10, - "path": "src/documents/matching.py", - "code": -2, - "name": "bad-specialization", - "description": "`Path` is not assignable to upper bound `bytes | str` of type variable `AnyStr`", - "concise_description": "`Path` is not assignable to upper bound `bytes | str` of type variable `AnyStr`", - "severity": "error" - }, - { - "line": 347, - "column": 13, - "stop_line": 347, - "stop_column": 32, - "path": "src/documents/matching.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str` is not assignable to parameter `pat` with type `Path` in function `fnmatch.fnmatch`", - "concise_description": "Argument `str` is not assignable to parameter `pat` with type `Path` in function `fnmatch.fnmatch`", - "severity": "error" - }, - { - "line": 356, - "column": 12, - "stop_line": 356, - "stop_column": 37, - "path": "src/documents/matching.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[bool, Literal[''] | tuple[str]]` is not assignable to declared return type `tuple[bool, str]`", - "concise_description": "Returned type `tuple[bool, Literal[''] | tuple[str]]` is not assignable to declared return type `tuple[bool, str]`", - "severity": "error" - }, - { - "line": 370, "column": 9, - "stop_line": 370, - "stop_column": 16, "path": "src/documents/matching.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `WorkflowTrigger` is not assignable to parameter `matching_model` with type `MatchingModel` in function `matches`", "concise_description": "Argument `WorkflowTrigger` is not assignable to parameter `matching_model` with type `MatchingModel` in function `matches`", "severity": "error" }, { - "line": 395, "column": 17, - "stop_line": 395, - "stop_column": 55, "path": "src/documents/matching.py", - "code": -2, "name": "unsupported-operation", - "description": "`&` is not supported between `None` and `set[Any]`\n Cannot find `__and__` or `__rand__`", "concise_description": "`&` is not supported between `None` and `set[Any]`", "severity": "error" }, { - "line": 405, "column": 42, - "stop_line": 405, - "stop_column": 58, "path": "src/documents/matching.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `set[Any] | None` is not assignable to parameter `s` with type `Iterable[object]` in function `set.issubset`\n Protocol `Iterable` requires attribute `__iter__`", "concise_description": "Argument `set[Any] | None` is not assignable to parameter `s` with type `Iterable[object]` in function `set.issubset`", "severity": "error" }, { - "line": 414, "column": 12, - "stop_line": 414, - "stop_column": 47, "path": "src/documents/matching.py", - "code": -2, "name": "unsupported-operation", - "description": "`&` is not supported between `None` and `set[Any]`\n Cannot find `__and__` or `__rand__`", "concise_description": "`&` is not supported between `None` and `set[Any]`", "severity": "error" }, { - "line": 685, "column": 21, - "stop_line": 685, - "stop_column": 29, "path": "src/documents/matching.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `ConsumableDocument` in function `consumable_document_matches_workflow`", "concise_description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `ConsumableDocument` in function `consumable_document_matches_workflow`", "severity": "error" }, { - "line": 694, "column": 21, - "stop_line": 694, - "stop_column": 29, "path": "src/documents/matching.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `existing_document_matches_workflow`", "concise_description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `existing_document_matches_workflow`", "severity": "error" }, { - "line": 116, "column": 11, - "stop_line": 116, - "stop_column": 15, "path": "src/documents/models.py", - "code": -2, "name": "inconsistent-inheritance", - "description": "Field `ordering` has inconsistent types inherited from multiple base classes\n Inherited types include:\n `tuple[Literal['name']]` from `Meta`\n `list[str]` from `Meta`", "concise_description": "Field `ordering` has inconsistent types inherited from multiple base classes", "severity": "error" }, { - "line": 453, "column": 21, - "stop_line": 453, - "stop_column": 38, "path": "src/documents/models.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 1031, + "column": 17, + "path": "src/documents/models.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `transaction_id` in function `django.db.models.query.QuerySet.delete`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/models.py", + "name": "bad-argument-type", + "concise_description": "Argument `UUID | Unknown` is not assignable to parameter `transaction_id` with type `str` in function `django_softdelete.models.SoftDeleteModel.delete`", + "severity": "error" + }, + { "column": 9, - "stop_line": 1031, - "stop_column": 15, "path": "src/documents/models.py", - "code": -2, "name": "bad-override", - "description": "Class member `ShareLinkBundle.delete` overrides parent class `Model` in an inconsistent manner\n `ShareLinkBundle.delete` has type `(self: ShareLinkBundle, using: Unknown | None = None, *, keep_parents: bool | Unknown = False) -> tuple[int, dict[str, int]]`, which is not assignable to `(self: ShareLinkBundle, using: Any | None = None, keep_parents: bool = False) -> tuple[int, dict[str, int]]`, the type of `Model.delete`\n Signature mismatch:\n expected: def delete(self: ShareLinkBundle, using: Any | None = None, keep_parents: bool = False) -> tuple[int, dict[str, int]]: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ parameters\n found: def delete(self: ShareLinkBundle, using: Unknown | None = None, *, keep_parents: bool | Unknown = False) -> tuple[int, dict...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ parameters", "concise_description": "Class member `ShareLinkBundle.delete` overrides parent class `Model` in an inconsistent manner", "severity": "error" }, { - "line": 1206, "column": 54, - "stop_line": 1206, - "stop_column": 74, "path": "src/documents/models.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `CustomFieldInstance.get_value_field_name`", "concise_description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `CustomFieldInstance.get_value_field_name`", "severity": "error" }, { - "line": 1230, "column": 5, - "stop_line": 1230, - "stop_column": 13, "path": "src/documents/models.py", - "code": -2, "name": "unbound-name", - "description": "`auditlog` may be uninitialized", "concise_description": "`auditlog` may be uninitialized", "severity": "error" }, { - "line": 146, "column": 28, - "stop_line": 146, - "stop_column": 31, "path": "src/documents/parsers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `list[Path | str | Unknown]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "concise_description": "Argument `list[Path | str | Unknown]` is not assignable to parameter `arguments` with type `list[str]` in function `documents.utils.run_subprocess`", "severity": "error" }, { - "line": 123, "column": 42, - "stop_line": 123, - "stop_column": 64, "path": "src/documents/permissions.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `list` has no attribute `exists`", "concise_description": "Object of class `list` has no attribute `exists`", "severity": "error" }, { - "line": 124, "column": 35, - "stop_line": 124, - "stop_column": 58, "path": "src/documents/permissions.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `list` has no attribute `exclude`", "concise_description": "Object of class `list` has no attribute `exclude`", "severity": "error" }, { - "line": 125, "column": 16, - "stop_line": 125, - "stop_column": 38, "path": "src/documents/permissions.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `list` has no attribute `exists`", "concise_description": "Object of class `list` has no attribute `exists`", "severity": "error" }, { - "line": 97, + "column": 6, + "path": "src/documents/permissions.py", + "name": "bad-specialization", + "concise_description": "`int` is not assignable to upper bound `Model` of type variable `_Model`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/permissions.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['global_objects']` is not assignable to parameter `name` with type `Literal['objects']` in function `django.db.models.base.ModelBase.__getattr__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/permissions.py", + "name": "bad-return", + "concise_description": "Returned type `QuerySet[Model, Any]` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/permissions.py", + "name": "bad-return", + "concise_description": "Returned type `QuerySet[Model, Any]` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/permissions.py", + "name": "bad-return", + "concise_description": "Returned type `QuerySet[Model, Any]` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/permissions.py", + "name": "bad-return", + "concise_description": "Returned type `QuerySet[Model, Any]` is not assignable to declared return type `QuerySet[int, int]`", + "severity": "error" + }, + { + "column": 6, + "path": "src/documents/permissions.py", + "name": "bad-specialization", + "concise_description": "`int` is not assignable to upper bound `Model` of type variable `_Model`", + "severity": "error" + }, + { "column": 29, - "stop_line": 97, - "stop_column": 48, "path": "src/documents/plugins/helpers.py", - "code": -2, "name": "bad-assignment", - "description": "`BaseChannelLayer | None` is not assignable to attribute `_channel` with type `RedisPubSubChannelLayer | None`", "concise_description": "`BaseChannelLayer | None` is not assignable to attribute `_channel` with type `RedisPubSubChannelLayer | None`", "severity": "error" }, { - "line": 23, "column": 26, - "stop_line": 23, - "stop_column": 33, "path": "src/documents/regex.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `error` has no attribute `msg`", "concise_description": "Object of class `error` has no attribute `msg`", "severity": "error" }, { - "line": 186, - "column": 24, - "stop_line": 186, - "stop_column": 51, + "column": 33, "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `writer`", - "concise_description": "Object of class `NoneType` has no attribute `writer`", + "name": "unbound-name", + "concise_description": "`correspondent` may be uninitialized", "severity": "error" }, { - "line": 192, - "column": 17, - "stop_line": 192, - "stop_column": 36, + "column": 33, "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `commit`", - "concise_description": "Object of class `NoneType` has no attribute `commit`", + "name": "unbound-name", + "concise_description": "`document_type` may be uninitialized", "severity": "error" }, { - "line": 193, - "column": 17, - "stop_line": 193, - "stop_column": 44, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `reload`", - "concise_description": "Object of class `NoneType` has no attribute `reload`", - "severity": "error" - }, - { - "line": 222, - "column": 9, - "stop_line": 222, - "stop_column": 34, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `add_document`", - "concise_description": "Object of class `NoneType` has no attribute `add_document`", - "severity": "error" - }, - { - "line": 235, - "column": 9, - "stop_line": 235, - "stop_column": 47, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `delete_documents_by_query`", - "concise_description": "Object of class `NoneType` has no attribute `delete_documents_by_query`", - "severity": "error" - }, - { - "line": 237, - "column": 17, - "stop_line": 237, - "stop_column": 38, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", - "severity": "error" - }, - { - "line": 333, - "column": 44, - "stop_line": 333, - "stop_column": 55, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_text_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_text_query`", - "severity": "error" - }, - { - "line": 335, "column": 45, - "stop_line": 335, - "stop_column": 56, "path": "src/documents/search/_backend.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_title_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_title_query`", + "concise_description": "Argument `list[int]` is not assignable to parameter `args` with type `tuple[Any, ...] | None` in function `celery.app.task.Task.apply_async`", "severity": "error" }, { - "line": 337, - "column": 37, - "stop_line": 337, - "stop_column": 48, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_user_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_user_query`", - "severity": "error" - }, - { - "line": 346, "column": 57, - "stop_line": 346, - "stop_column": 69, "path": "src/documents/search/_backend.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", + "concise_description": "Argument `list[int]` is not assignable to parameter `args` with type `tuple[Any, ...] | None` in function `celery.app.task.Task.apply_async`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/search/_backend.py", + "name": "bad-override", + "concise_description": "Class member `_DocumentViewerStream.__iter__` overrides parent class `QuerySetStream` in an inconsistent manner", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/search/_query.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `children` in function `whoosh_compat.ast.Node.__init__`", + "severity": "error" + }, + { + "column": 59, + "path": "src/documents/search/_query.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `int | None` is not assignable to parameter `analyzed` with type `bool` in function `whoosh_compat.ast.Term.__init__`", + "severity": "error" + }, + { + "column": 74, + "path": "src/documents/search/_query.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `int | None` is not assignable to parameter `analyzed` with type `bool` in function `whoosh_compat.ast.Term.__init__`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/search/_query.py", + "name": "bad-argument-type", + "concise_description": "Argument `FieldRef | None` is not assignable to parameter `field` with type `FieldRef` in function `whoosh_compat.ast.Fuzzy.__init__`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/search/_schema.py", + "name": "unexpected-keyword", + "concise_description": "Unexpected keyword argument `fast` in function `tantivy.tantivy.SchemaBuilder.add_json_field`", "severity": "error" }, { - "line": 389, - "column": 50, - "stop_line": 389, - "stop_column": 75, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", - "concise_description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", - "severity": "error" - }, - { - "line": 395, - "column": 50, - "stop_line": 395, - "stop_column": 75, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", - "concise_description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", - "severity": "error" - }, - { - "line": 400, - "column": 49, - "stop_line": 400, - "stop_column": 73, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", - "concise_description": "Argument `int | None` is not assignable to parameter `value` with type `int` in function `tantivy.tantivy.Document.add_unsigned`", - "severity": "error" - }, - { - "line": 414, - "column": 21, - "stop_line": 414, - "stop_column": 35, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `notes`", - "concise_description": "Object of class `Document` has no attribute `notes`", - "severity": "error" - }, - { - "line": 423, - "column": 20, - "stop_line": 423, - "stop_column": 42, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 465, - "column": 43, - "stop_line": 465, - "stop_column": 50, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `str` has no attribute `pk`", - "concise_description": "Object of class `str` has no attribute `pk`", - "severity": "error" - }, - { - "line": 555, - "column": 65, - "stop_line": 555, - "stop_column": 76, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_text_highlight_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `index` with type `Index` in function `documents.search._query.parse_simple_text_highlight_query`", - "severity": "error" - }, - { - "line": 566, - "column": 17, - "stop_line": 566, - "stop_column": 40, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `parse_query`", - "concise_description": "Object of class `NoneType` has no attribute `parse_query`", - "severity": "error" - }, - { - "line": 573, - "column": 20, - "stop_line": 573, - "stop_column": 40, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `searcher`", - "concise_description": "Object of class `NoneType` has no attribute `searcher`", - "severity": "error" - }, - { - "line": 582, - "column": 17, - "stop_line": 582, - "stop_column": 29, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", - "severity": "error" - }, - { - "line": 609, - "column": 25, - "stop_line": 609, - "stop_column": 37, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.SnippetGenerator.create`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.SnippetGenerator.create`", - "severity": "error" - }, - { - "line": 624, - "column": 29, - "stop_line": 624, - "stop_column": 41, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.SnippetGenerator.create`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.SnippetGenerator.create`", - "severity": "error" - }, - { - "line": 679, - "column": 20, - "stop_line": 679, - "stop_column": 40, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `searcher`", - "concise_description": "Object of class `NoneType` has no attribute `searcher`", - "severity": "error" - }, - { - "line": 739, - "column": 20, - "stop_line": 739, - "stop_column": 40, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `searcher`", - "concise_description": "Object of class `NoneType` has no attribute `searcher`", - "severity": "error" - }, - { - "line": 752, - "column": 25, - "stop_line": 752, - "stop_column": 37, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.term_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.term_query`", - "severity": "error" - }, - { - "line": 760, - "column": 25, - "stop_line": 760, - "stop_column": 37, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.regex_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.regex_query`", - "severity": "error" - }, - { - "line": 770, - "column": 37, - "stop_line": 770, - "stop_column": 54, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", - "severity": "error" - }, - { - "line": 774, - "column": 66, - "stop_line": 774, - "stop_column": 78, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `documents.search._query.build_permission_filter`", - "severity": "error" - }, - { - "line": 822, - "column": 20, - "stop_line": 822, - "stop_column": 40, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `searcher`", - "concise_description": "Object of class `NoneType` has no attribute `searcher`", - "severity": "error" - }, - { - "line": 825, - "column": 13, - "stop_line": 825, - "stop_column": 25, - "path": "src/documents/search/_backend.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", - "severity": "error" - }, - { - "line": 132, "column": 9, - "stop_line": 132, - "stop_column": 17, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "description": "Class member `MatchingModelSerializer.validate` overrides parent class `ModelSerializer` in an inconsistent manner\n Got parameter name `data`, expected `attrs`", "concise_description": "Class member `MatchingModelSerializer.validate` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 206, "column": 62, - "stop_line": 208, - "stop_column": 26, "path": "src/documents/serialisers.py", - "code": -2, "name": "unsupported-operation", - "description": "Cannot set item in `dict[str, QuerySet[User, User]]`\n Argument `QuerySet[Group, Group]` is not assignable to parameter `value` with type `QuerySet[User, User]` in function `dict.__setitem__`", "concise_description": "Cannot set item in `dict[str, QuerySet[User, User]]`", "severity": "error" }, { - "line": 295, "column": 17, - "stop_line": 299, - "stop_column": 30, "path": "src/documents/serialisers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `list` has no attribute `values_list`", "concise_description": "Object of class `list` has no attribute `values_list`", "severity": "error" }, { - "line": 361, - "column": 21, - "stop_line": 361, - "stop_column": 37, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `has_perm`", - "concise_description": "Object of class `NoneType` has no attribute `has_perm`", - "severity": "error" - }, - { - "line": 473, "column": 9, - "stop_line": 473, - "stop_column": 26, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "description": "Class member `OwnedObjectListSerializer.to_representation` overrides parent class `ListSerializer` in an inconsistent manner\n Got parameter name `documents`, expected `data`", "concise_description": "Class member `OwnedObjectListSerializer.to_representation` overrides parent class `ListSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 474, "column": 9, - "stop_line": 474, - "stop_column": 27, "path": "src/documents/serialisers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `context`", "concise_description": "Object of class `NoneType` has no attribute `context`", "severity": "error" }, { - "line": 474, "column": 51, - "stop_line": 474, - "stop_column": 83, "path": "src/documents/serialisers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\nObject of class `Field` has no attribute `get_shared_object_pks`\nObject of class `NoneType` has no attribute `get_shared_object_pks`", - "concise_description": "Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\nObject of class `Field` has no attribute `get_shared_object_pks`\nObject of class `NoneType` has no attribute `get_shared_object_pks`", + "concise_description": "Object of type `BaseSerializer[Unknown] | Field[Unknown, Unknown, Unknown, Unknown] | None` has no attribute `get_shared_object_pks`", "severity": "error" }, { - "line": 484, - "column": 17, - "stop_line": 484, - "stop_column": 30, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Correspondent]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Correspondent]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 503, - "column": 17, - "stop_line": 503, - "stop_column": 29, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[DocumentType]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[DocumentType]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 573, "column": 14, - "stop_line": 578, - "stop_column": 6, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-assignment", - "description": "`ManyRelatedField | RelatedField[@_, @_, Any]` is not assignable to attribute `parent` with type `BaseSerializer[Unknown]`", "concise_description": "`ManyRelatedField | RelatedField[@_, @_, Any]` is not assignable to attribute `parent` with type `BaseSerializer[Unknown]`", "severity": "error" }, { - "line": 628, "column": 17, - "stop_line": 628, - "stop_column": 20, "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Tag]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Tag]` is not assignable to attribute `model` with type `type[_MT]`", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `Mapping[str, Any]`", "severity": "error" }, { - "line": 654, "column": 9, - "stop_line": 654, - "stop_column": 17, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "description": "Class member `TagSerializer.validate` overrides parent class `MatchingModelSerializer` in an inconsistent manner\n Got parameter name `attrs`, expected `data`", "concise_description": "Class member `TagSerializer.validate` overrides parent class `MatchingModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 707, "column": 17, - "stop_line": 707, - "stop_column": 42, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `type[CustomField.FieldDataType]` is not assignable to parameter `choices` with type `Sequence[Any]` in function `rest_framework.fields.ChoiceField.__init__`", "concise_description": "Argument `type[CustomField.FieldDataType]` is not assignable to parameter `choices` with type `Sequence[Any]` in function `rest_framework.fields.ChoiceField.__init__`", "severity": "error" }, { - "line": 714, - "column": 17, - "stop_line": 714, - "stop_column": 28, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[CustomField]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[CustomField]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 792, "column": 28, - "stop_line": 792, - "stop_column": 39, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-assignment", - "description": "`Unknown | None` is not assignable to attribute `method_name` with type `str`", "concise_description": "`Unknown | None` is not assignable to attribute `method_name` with type `str`", "severity": "error" }, { - "line": 830, "column": 13, - "stop_line": 830, - "stop_column": 35, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "concise_description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", "severity": "error" }, { - "line": 846, "column": 9, - "stop_line": 846, - "stop_column": 18, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "description": "Class member `CustomFieldInstanceSerializer.get_value` overrides parent class `ModelSerializer` in an inconsistent manner\n Got parameter name `obj`, expected `dictionary`", "concise_description": "Class member `CustomFieldInstanceSerializer.get_value` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 849, "column": 9, - "stop_line": 849, - "stop_column": 17, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "description": "Class member `CustomFieldInstanceSerializer.validate` overrides parent class `ModelSerializer` in an inconsistent manner\n Got parameter name `data`, expected `attrs`", "concise_description": "Class member `CustomFieldInstanceSerializer.validate` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 892, "column": 34, - "stop_line": 892, - "stop_column": 68, "path": "src/documents/serialisers.py", - "code": -2, "name": "unsupported-operation", - "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { - "line": 920, - "column": 17, - "stop_line": 920, - "stop_column": 36, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[CustomFieldInstance]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[CustomFieldInstance]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 930, - "column": 17, - "stop_line": 930, - "stop_column": 21, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 938, - "column": 17, - "stop_line": 938, - "stop_column": 21, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Note]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Note]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 1095, "column": 30, - "stop_line": 1095, - "stop_column": 55, "path": "src/documents/serialisers.py", - "code": -2, "name": "unsupported-operation", - "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { - "line": 1139, - "column": 12, - "stop_line": 1139, - "stop_column": 34, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1143, - "column": 42, - "stop_line": 1143, - "stop_column": 64, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1227, - "column": 17, - "stop_line": 1227, - "stop_column": 25, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Document]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Document]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 1262, "column": 9, - "stop_line": 1262, - "stop_column": 26, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "description": "Class member `SearchResultListSerializer.to_representation` overrides parent class `ListSerializer` in an inconsistent manner\n Got parameter name `hits`, expected `data`", "concise_description": "Class member `SearchResultListSerializer.to_representation` overrides parent class `ListSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 1265, "column": 21, - "stop_line": 1265, - "stop_column": 47, "path": "src/documents/serialisers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `BaseSerializer` has no attribute `fetch_documents`\nObject of class `Field` has no attribute `fetch_documents`\nObject of class `NoneType` has no attribute `fetch_documents`", - "concise_description": "Object of class `BaseSerializer` has no attribute `fetch_documents`\nObject of class `Field` has no attribute `fetch_documents`\nObject of class `NoneType` has no attribute `fetch_documents`", + "concise_description": "Object of type `BaseSerializer[Unknown] | Field[Unknown, Unknown, Unknown, Unknown] | None` has no attribute `fetch_documents`", "severity": "error" }, { - "line": 1266, "column": 9, - "stop_line": 1266, - "stop_column": 27, "path": "src/documents/serialisers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `context`", "concise_description": "Object of class `NoneType` has no attribute `context`", "severity": "error" }, { - "line": 1268, "column": 9, - "stop_line": 1268, - "stop_column": 27, "path": "src/documents/serialisers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `context`", "concise_description": "Object of class `NoneType` has no attribute `context`", "severity": "error" }, { - "line": 1268, "column": 51, - "stop_line": 1268, - "stop_column": 83, "path": "src/documents/serialisers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\nObject of class `Field` has no attribute `get_shared_object_pks`\nObject of class `NoneType` has no attribute `get_shared_object_pks`", - "concise_description": "Object of class `BaseSerializer` has no attribute `get_shared_object_pks`\nObject of class `Field` has no attribute `get_shared_object_pks`\nObject of class `NoneType` has no attribute `get_shared_object_pks`", + "concise_description": "Object of type `BaseSerializer[Unknown] | Field[Unknown, Unknown, Unknown, Unknown] | None` has no attribute `get_shared_object_pks`", "severity": "error" }, { - "line": 1293, "column": 9, - "stop_line": 1293, - "stop_column": 26, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-param-name", - "description": "Class member `SearchResultSerializer.to_representation` overrides parent class `DocumentSerializer` in an inconsistent manner\n Got parameter name `hit`, expected `instance`", "concise_description": "Class member `SearchResultSerializer.to_representation` overrides parent class `DocumentSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 1315, "column": 9, - "stop_line": 1315, - "stop_column": 30, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override-mutable-attribute", - "description": "Class member `Meta.list_serializer_class` overrides parent class `Meta` in an inconsistent manner\n `Meta.list_serializer_class` has type `type[SearchResultListSerializer]`, which is not consistent with `type[OwnedObjectListSerializer]` in `Meta.list_serializer_class` (the type of read-write attributes cannot be changed)", "concise_description": "Class member `Meta.list_serializer_class` overrides parent class `Meta` in an inconsistent manner", "severity": "error" }, { - "line": 1320, - "column": 17, - "stop_line": 1320, - "stop_column": 36, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[SavedViewFilterRule]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[SavedViewFilterRule]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 1328, - "column": 17, - "stop_line": 1328, - "stop_column": 26, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[SavedView]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[SavedView]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 1467, "column": 21, - "stop_line": 1467, - "stop_column": 62, "path": "src/documents/serialisers.py", - "code": -2, "name": "unsupported-operation", - "description": "`Literal[SavedView.DisplayFields.CUSTOM_FIELD]` is not subscriptable", "concise_description": "`Literal[SavedView.DisplayFields.CUSTOM_FIELD]` is not subscriptable", "severity": "error" }, { - "line": 1469, "column": 36, - "stop_line": 1469, - "stop_column": 63, "path": "src/documents/serialisers.py", - "code": -2, "name": "unsupported-operation", - "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { - "line": 1696, "column": 7, - "stop_line": 1696, - "stop_column": 25, "path": "src/documents/serialisers.py", - "code": -2, "name": "invalid-inheritance", - "description": "Class `BulkEditSerializer` has inconsistent type arguments for base class `Field`: `Field[Any, Any, Any, dict[str, Any]]` and `Field[Any, Any, Any, dict[str, list[int]]]`", "concise_description": "Class `BulkEditSerializer` has inconsistent type arguments for base class `Field`: `Field[Any, Any, Any, dict[str, Any]]` and `Field[Any, Any, Any, dict[str, list[int]]]`", "severity": "error" }, { - "line": 2356, "column": 73, - "stop_line": 2356, - "stop_column": 80, "path": "src/documents/serialisers.py", - "code": -2, "name": "unbound-name", - "description": "`address` is uninitialized", "concise_description": "`address` is uninitialized", "severity": "error" }, { - "line": 2370, - "column": 17, - "stop_line": 2370, - "stop_column": 28, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[StoragePath]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[StoragePath]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2418, - "column": 17, - "stop_line": 2418, - "stop_column": 27, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[UiSettings]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[UiSettings]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2434, "column": 9, - "stop_line": 2434, - "stop_column": 15, "path": "src/documents/serialisers.py", - "code": -2, "name": "bad-override", - "description": "Class member `UiSettingsViewSerializer.create` overrides parent class `ModelSerializer` in an inconsistent manner\n `UiSettingsViewSerializer.create` has type `(self: UiSettingsViewSerializer, validated_data: Unknown) -> tuple[UiSettings, bool]`, which is not assignable to `(self: UiSettingsViewSerializer, validated_data: Any) -> UiSettings`, the type of `ModelSerializer.create`\n Signature mismatch:\n expected: def create(self: UiSettingsViewSerializer, validated_data: Any) -> UiSettings: ...\n ^^^ ^^^^^^^^^^ return type\n |\n parameters\n found: def create(self: UiSettingsViewSerializer, validated_data: Unknown) -> tuple[UiSettings, bool]: ...\n ^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", "concise_description": "Class member `UiSettingsViewSerializer.create` overrides parent class `ModelSerializer` in an inconsistent manner", "severity": "error" }, { - "line": 2463, - "column": 17, - "stop_line": 2463, - "stop_column": 30, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[PaperlessTask]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[PaperlessTask]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2516, - "column": 17, - "stop_line": 2516, - "stop_column": 30, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[PaperlessTask]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[PaperlessTask]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2554, "column": 46, - "stop_line": 2554, - "stop_column": 76, "path": "src/documents/serialisers.py", - "code": -2, "name": "no-matching-overload", - "description": "No matching overload found for function `dict.get` called with arguments: (str, str)\n Possible overloads:\n (key: PaperlessTask.TaskType, default: None = None, /) -> str | None\n (key: PaperlessTask.TaskType, default: str, /) -> str [closest match]\n (key: PaperlessTask.TaskType, default: _T, /) -> str | _T", "concise_description": "No matching overload found for function `dict.get` called with arguments: (str, str)", "severity": "error" }, { - "line": 2570, "column": 38, - "stop_line": 2570, - "stop_column": 70, "path": "src/documents/serialisers.py", - "code": -2, "name": "no-matching-overload", - "description": "No matching overload found for function `dict.get` called with arguments: (str, str)\n Possible overloads:\n (key: PaperlessTask.Status, default: None = None, /) -> str | None\n (key: PaperlessTask.Status, default: str, /) -> str [closest match]\n (key: PaperlessTask.Status, default: _T, /) -> str | _T", "concise_description": "No matching overload found for function `dict.get` called with arguments: (str, str)", "severity": "error" }, { - "line": 2581, "column": 51, - "stop_line": 2581, - "stop_column": 86, "path": "src/documents/serialisers.py", - "code": -2, "name": "no-matching-overload", - "description": "No matching overload found for function `dict.get` called with arguments: (str, Literal['manual_task'])\n Possible overloads:\n (key: PaperlessTask.TriggerSource, default: None = None, /) -> str | None\n (key: PaperlessTask.TriggerSource, default: str, /) -> str [closest match]\n (key: PaperlessTask.TriggerSource, default: _T, /) -> str | _T", "concise_description": "No matching overload found for function `dict.get` called with arguments: (str, Literal['manual_task'])", "severity": "error" }, { - "line": 2659, - "column": 17, - "stop_line": 2659, - "stop_column": 26, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[ShareLink]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[ShareLink]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2704, - "column": 17, - "stop_line": 2704, - "stop_column": 32, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[ShareLinkBundle]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[ShareLinkBundle]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 2917, - "column": 17, - "stop_line": 2917, - "stop_column": 32, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[WorkflowTrigger]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[WorkflowTrigger]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3013, - "column": 17, - "stop_line": 3013, - "stop_column": 36, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[WorkflowActionEmail]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[WorkflowActionEmail]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3033, - "column": 17, - "stop_line": 3033, - "stop_column": 38, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[WorkflowActionWebhook]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[WorkflowActionWebhook]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3056, - "column": 17, - "stop_line": 3056, - "stop_column": 31, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[WorkflowAction]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[WorkflowAction]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3175, - "column": 17, - "stop_line": 3175, - "stop_column": 25, - "path": "src/documents/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Workflow]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Workflow]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 3375, "column": 52, - "stop_line": 3375, - "stop_column": 60, "path": "src/documents/serialisers.py", - "code": -2, "name": "unbound-name", - "description": "`triggers` may be uninitialized", "concise_description": "`triggers` may be uninitialized", "severity": "error" }, { - "line": 3375, "column": 62, - "stop_line": 3375, - "stop_column": 69, "path": "src/documents/serialisers.py", - "code": -2, "name": "unbound-name", - "description": "`actions` may be uninitialized", "concise_description": "`actions` may be uninitialized", "severity": "error" }, { - "line": 124, "column": 72, - "stop_line": 124, - "stop_column": 82, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", "severity": "error" }, { - "line": 185, "column": 72, - "stop_line": 185, - "stop_column": 82, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", "severity": "error" }, { - "line": 267, "column": 50, - "stop_line": 267, - "stop_column": 60, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", "severity": "error" }, { - "line": 311, "column": 70, - "stop_line": 311, - "stop_column": 80, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", "severity": "error" }, { - "line": 544, "column": 46, - "stop_line": 544, - "stop_column": 66, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 545, "column": 49, - "stop_line": 545, - "stop_column": 69, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 550, "column": 28, - "stop_line": 550, - "stop_column": 52, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `is_file`", "concise_description": "Object of class `NoneType` has no attribute `is_file`", "severity": "error" }, { - "line": 576, "column": 43, - "stop_line": 576, - "stop_column": 60, "path": "src/documents/signals/handlers.py", - "code": -2, - "name": "bad-typed-dict-key", - "description": "`str` is not assignable to TypedDict key `filename` with type `datetime`", - "concise_description": "`str` is not assignable to TypedDict key `filename` with type `datetime`", + "name": "bad-assignment", + "concise_description": "`str` is not assignable to dict key `filename` with type `datetime`", "severity": "error" }, { - "line": 578, "column": 51, - "stop_line": 578, - "stop_column": 76, "path": "src/documents/signals/handlers.py", - "code": -2, - "name": "bad-typed-dict-key", - "description": "`Any | None` is not assignable to TypedDict key `archive_filename` with type `datetime`", - "concise_description": "`Any | None` is not assignable to TypedDict key `archive_filename` with type `datetime`", + "name": "bad-assignment", + "concise_description": "`Any | None` is not assignable to dict key `archive_filename` with type `datetime`", "severity": "error" }, { - "line": 597, "column": 21, - "stop_line": 597, - "stop_column": 37, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `old_path` with type `Path` in function `validate_move`", "concise_description": "Argument `Path | None` is not assignable to parameter `old_path` with type `Path` in function `validate_move`", "severity": "error" }, { - "line": 598, "column": 21, - "stop_line": 598, - "stop_column": 42, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `new_path` with type `Path` in function `validate_move`", "concise_description": "Argument `Path | None` is not assignable to parameter `new_path` with type `Path` in function `validate_move`", "severity": "error" }, { - "line": 601, "column": 46, - "stop_line": 601, - "stop_column": 67, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "concise_description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", "severity": "error" }, { - "line": 602, "column": 28, - "stop_line": 602, - "stop_column": 69, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-specialization", - "description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "concise_description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "severity": "error" }, { - "line": 602, "column": 29, - "stop_line": 602, - "stop_column": 45, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { - "line": 622, "column": 20, - "stop_line": 622, - "stop_column": 33, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "unbound-name", - "description": "`move_original` is uninitialized", "concise_description": "`move_original` is uninitialized", "severity": "error" }, { - "line": 624, "column": 55, - "stop_line": 624, - "stop_column": 70, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "unbound-name", - "description": "`old_source_path` is uninitialized", "concise_description": "`old_source_path` is uninitialized", "severity": "error" }, { - "line": 626, "column": 20, - "stop_line": 626, - "stop_column": 32, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "unbound-name", - "description": "`move_archive` is uninitialized", "concise_description": "`move_archive` is uninitialized", "severity": "error" }, { - "line": 626, "column": 37, - "stop_line": 626, - "stop_column": 66, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `is_file`", "concise_description": "Object of class `NoneType` has no attribute `is_file`", "severity": "error" }, { - "line": 628, "column": 32, - "stop_line": 628, - "stop_column": 73, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-specialization", - "description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "concise_description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", "severity": "error" }, { - "line": 628, "column": 33, - "stop_line": 628, - "stop_column": 54, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { - "line": 628, "column": 56, - "stop_line": 628, - "stop_column": 72, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "unbound-name", - "description": "`old_archive_path` is uninitialized", "concise_description": "`old_archive_path` is uninitialized", "severity": "error" }, { - "line": 642, "column": 33, - "stop_line": 642, - "stop_column": 45, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "unbound-name", - "description": "`old_filename` is uninitialized", "concise_description": "`old_filename` is uninitialized", "severity": "error" }, { - "line": 643, "column": 41, - "stop_line": 643, - "stop_column": 61, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "unbound-name", - "description": "`old_archive_filename` is uninitialized", "concise_description": "`old_archive_filename` is uninitialized", "severity": "error" }, { - "line": 653, "column": 49, - "stop_line": 653, - "stop_column": 73, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `is_file`", "concise_description": "Object of class `NoneType` has no attribute `is_file`", "severity": "error" }, { - "line": 655, "column": 22, - "stop_line": 655, - "stop_column": 38, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", "severity": "error" }, { - "line": 682, "column": 23, - "stop_line": 682, - "stop_column": 50, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { - "line": 686, - "column": 5, - "stop_line": 686, - "stop_column": 24, - "path": "src/documents/signals/handlers.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CustomField` has no attribute `fields`", - "concise_description": "Object of class `CustomField` has no attribute `fields`", - "severity": "error" - }, - { - "line": 690, - "column": 24, - "stop_line": 690, - "stop_column": 43, - "path": "src/documents/signals/handlers.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CustomField` has no attribute `fields`", - "concise_description": "Object of class `CustomField` has no attribute `fields`", - "severity": "error" - }, - { - "line": 707, - "column": 13, - "stop_line": 707, - "stop_column": 28, - "path": "src/documents/signals/handlers.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CustomField` has no attribute `fields`", - "concise_description": "Object of class `CustomField` has no attribute `fields`", - "severity": "error" - }, - { - "line": 721, "column": 12, - "stop_line": 721, - "stop_column": 51, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "not-iterable", - "description": "`in` is not supported between `str` and `None`", "concise_description": "`in` is not supported between `str` and `None`", "severity": "error" }, { - "line": 725, "column": 13, - "stop_line": 725, - "stop_column": 39, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `remove`", "concise_description": "Object of class `NoneType` has no attribute `remove`", "severity": "error" }, { - "line": 764, "column": 27, - "stop_line": 764, - "stop_column": 51, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get`", "concise_description": "Object of class `NoneType` has no attribute `get`", "severity": "error" }, { - "line": 784, "column": 17, - "stop_line": 784, - "stop_column": 52, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "unsupported-operation", - "description": "Cannot set item in `None`\n Object of class `NoneType` has no attribute `__setitem__`", "concise_description": "Cannot set item in `None`", "severity": "error" }, { - "line": 884, "column": 13, - "stop_line": 884, - "stop_column": 33, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `source_path`", "concise_description": "Object of class `ConsumableDocument` has no attribute `source_path`", "severity": "error" }, { - "line": 884, "column": 60, - "stop_line": 884, - "stop_column": 82, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `original_file`", "concise_description": "Object of class `Document` has no attribute `original_file`", "severity": "error" }, { - "line": 931, "column": 29, - "stop_line": 931, - "stop_column": 37, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `documents.workflows.mutations.apply_assignment_to_document`", "concise_description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `documents.workflows.mutations.apply_assignment_to_document`", "severity": "error" }, { - "line": 938, "column": 59, - "stop_line": 938, - "stop_column": 67, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `documents.workflows.mutations.apply_removal_to_document`", "concise_description": "Argument `ConsumableDocument | Document` is not assignable to parameter `document` with type `Document` in function `documents.workflows.mutations.apply_removal_to_document`", "severity": "error" }, { - "line": 965, + "column": 25, + "path": "src/documents/signals/handlers.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `original_file` with type `Path` in function `documents.workflows.actions.execute_email_action`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/signals/handlers.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `original_file` with type `Path` in function `documents.workflows.actions.execute_webhook_action`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/signals/handlers.py", + "name": "missing-attribute", + "concise_description": "Object of class `Task` has no attribute `delay_on_commit`", + "severity": "error" + }, + { + "column": 41, + "path": "src/documents/signals/handlers.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", + "severity": "error" + }, + { "column": 17, - "stop_line": 965, - "stop_column": 31, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `title`", "concise_description": "Object of class `ConsumableDocument` has no attribute `title`", "severity": "error" }, { - "line": 965, "column": 34, - "stop_line": 965, - "stop_column": 48, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `title`", "concise_description": "Object of class `ConsumableDocument` has no attribute `title`", "severity": "error" }, { - "line": 975, "column": 17, - "stop_line": 975, - "stop_column": 30, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `save`", "concise_description": "Object of class `ConsumableDocument` has no attribute `save`", "severity": "error" }, { - "line": 1190, "column": 49, - "stop_line": 1190, - "stop_column": 86, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "no-matching-overload", - "description": "No matching overload found for function `dict.get` called with arguments: (Unknown | None, Literal[PaperlessTask.Status.FAILURE])\n Possible overloads:\n (key: str, default: None = None, /) -> PaperlessTask.Status | None\n (key: str, default: PaperlessTask.Status, /) -> PaperlessTask.Status [closest match]\n (key: str, default: _T, /) -> PaperlessTask.Status | _T", "concise_description": "No matching overload found for function `dict.get` called with arguments: (Unknown | None, Literal[PaperlessTask.Status.FAILURE])", "severity": "error" }, { - "line": 1329, "column": 13, - "stop_line": 1329, - "stop_column": 28, "path": "src/documents/signals/handlers.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `BaseDatabaseWrapper` has no attribute `close_pool`", "concise_description": "Object of class `BaseDatabaseWrapper` has no attribute `close_pool`", "severity": "error" }, { - "line": 174, + "column": 13, + "path": "src/documents/signals/handlers.py", + "name": "missing-attribute", + "concise_description": "Object of class `BaseDatabaseWrapper` has no attribute `close_pool`", + "severity": "error" + }, + { "column": 21, - "stop_line": 174, - "stop_column": 36, "path": "src/documents/tasks.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `task_id` with type `str` in function `documents.plugins.base.ConsumeTaskPlugin.__init__`", "concise_description": "Argument `str | None` is not assignable to parameter `task_id` with type `str` in function `documents.plugins.base.ConsumeTaskPlugin.__init__`", "severity": "error" }, { - "line": 218, "column": 16, - "stop_line": 218, - "stop_column": 19, "path": "src/documents/tasks.py", - "code": -2, "name": "bad-return", - "description": "Returned type `str | None` is not assignable to declared return type `ConsumeFileDuplicateResult | ConsumeFileStoppedResult | ConsumeFileSuccessResult | None`", "concise_description": "Returned type `str | None` is not assignable to declared return type `ConsumeFileDuplicateResult | ConsumeFileStoppedResult | ConsumeFileSuccessResult | None`", "severity": "error" }, { - "line": 321, "column": 49, - "stop_line": 321, - "stop_column": 74, "path": "src/documents/tasks.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.utils.compute_checksum`", "severity": "error" }, { - "line": 337, - "column": 25, - "stop_line": 337, - "stop_column": 52, - "path": "src/documents/tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `log_create`", - "concise_description": "Object of class `Manager` has no attribute `log_create`", - "severity": "error" - }, - { - "line": 361, - "column": 25, - "stop_line": 361, - "stop_column": 52, - "path": "src/documents/tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `log_create`", - "concise_description": "Object of class `Manager` has no attribute `log_create`", - "severity": "error" - }, - { - "line": 374, - "column": 54, - "stop_line": 374, - "stop_column": 75, - "path": "src/documents/tasks.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", - "concise_description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", - "severity": "error" - }, - { - "line": 375, - "column": 36, - "stop_line": 375, - "stop_column": 86, - "path": "src/documents/tasks.py", - "code": -2, - "name": "bad-specialization", - "description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", - "concise_description": "`Path | None` is not assignable to upper bound `PathLike[str] | str` of type variable `_StrPathT`", - "severity": "error" - }, - { - "line": 375, "column": 37, - "stop_line": 375, - "stop_column": 62, "path": "src/documents/tasks.py", - "code": -2, "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`\n Protocol `PathLike` requires attribute `__fspath__`", "concise_description": "Argument `Path | None` is not assignable to parameter `src` with type `PathLike[str] | str` in function `shutil.move`", "severity": "error" }, { - "line": 552, "column": 33, - "stop_line": 552, - "stop_column": 61, "path": "src/documents/tasks.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `run_at`", "concise_description": "Object of class `NoneType` has no attribute `run_at`", "severity": "error" }, { - "line": 309, + "column": 1, + "path": "src/documents/templating/filepath.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, ((obj: Sized, /) -> int) | ((s: Any, /) -> Markup) | ((s: Any, /) -> str) | ((env: Environment, s: str, length: int = 255, killwords: bool = False, end: str = '...', leeway: int | None = None) -> str) | ((environment: Environment, obj: Any, name: str) -> Undefined | Any) | ((environment: Environment, s: str, width: int = 79, break_long_words: bool = True, wrapstring: str | None = None, break_on_hyphens: bool = True) -> str) | ((eval_ctx: EvalContext, d: Mapping[str, Any], autospace: bool = True) -> str) | ((eval_ctx: EvalContext, s: str, old: str, new: str, count: int | None = None) -> str) | ((eval_ctx: EvalContext, value: str, trim_url_limit: int | None = None, nofollow: bool = False, target: str | None = None, rel: str | None = None, extra_schemes: Iterable[str] | None = None) -> str) | ((eval_ctx: EvalContext, value: Any, indent: int | None = None) -> Markup) | ((s: str) -> int) | ((s: str) -> str) | ((s: str, width: int | str = 4, first: bool = False, blank: bool = False) -> str) | ((value: HasHTML | str) -> Markup) | ((value: HasHTML | str) -> str) | ((value: Iterable[tuple[str, Any]] | Mapping[str, Any] | str) -> str) | ((value: float | int | str, binary: bool = False) -> str) | ((value: float, precision: int = 0, method: Literal['ceil', 'common', 'floor'] = 'common') -> float) | ((value: str) -> Markup) | ((value: str, chars: str | None = None) -> str) | ((value: str, width: int = 80) -> str) | ((value: str, *args: Any, **kwargs: Any) -> str) | ((value: Any) -> str) | ((value: Any, default: float = 0.0) -> float) | ((value: Any, default: int = 0, base: int = 10) -> int) | ((*args: Unknown, **kwargs: Unknown) -> Unknown) | Overload[(context: Context, value: AsyncIterable[Any] | Iterable[Any], name: str, *args: Any, **kwargs: Any) -> Iterable[Any], (context: Context, value: AsyncIterable[Any] | Iterable[Any], *, attribute: str = ..., default: Any | None = None) -> Iterable[Any]] | Overload[(value: str) -> str, [V](value: Iterable[V]) -> Iterable[V]] | [_T](x: SupportsAbs[_T], /) -> _T | [K, V](value: Mapping[K, V] | Undefined) -> Iterator[tuple[K, V]] | [K, V](value: Mapping[K, V], case_sensitive: bool = False, by: Literal['key', 'value'] = 'key', reverse: bool = False) -> list[tuple[K, V]] | [V](environment: Environment, value: Iterable[V], reverse: bool = False, case_sensitive: bool = False, attribute: int | str | None = None) -> list[V] | [V](environment: Environment, value: Iterable[V], case_sensitive: bool = False, attribute: int | str | None = None) -> Undefined | V | [V](value: V, default_value: V = '', boolean: bool = False) -> V | [V](environment: Environment, seq: Reversible[V]) -> Undefined | V | [V](context: Context, seq: Sequence[V]) -> Undefined | V | [V](value: Iterable[V], linecount: int, fill_with: V | None = None) -> Iterator[list[V]]]`", + "severity": "error" + }, + { "column": 17, - "stop_line": 309, - "stop_column": 66, "path": "src/documents/templating/filepath.py", - "code": -2, "name": "unsupported-operation", - "description": "`None` is not subscriptable", "concise_description": "`None` is not subscriptable", "severity": "error" }, { - "line": 331, "column": 12, - "stop_line": 331, - "stop_column": 22, "path": "src/documents/templating/filepath.py", - "code": -2, "name": "bad-return", - "description": "Returned type `dict[str, dict[str, dict[str, str | Any | None]]]` is not assignable to declared return type `dict[str, dict[str, dict[str, str]]]`", "concise_description": "Returned type `dict[str, dict[str, dict[str, str | Any | None]]]` is not assignable to declared return type `dict[str, dict[str, dict[str, str]]]`", "severity": "error" }, { - "line": 30, "column": 17, - "stop_line": 30, - "stop_column": 38, "path": "src/documents/templating/filters.py", - "code": -2, "name": "bad-assignment", - "description": "`datetime | None` is not assignable to variable `value` with type `date | datetime | str`", "concise_description": "`datetime | None` is not assignable to variable `value` with type `date | datetime | str`", "severity": "error" }, { - "line": 47, "column": 17, - "stop_line": 47, - "stop_column": 34, "path": "src/documents/templating/filters.py", - "code": -2, "name": "bad-assignment", - "description": "`date | None` is not assignable to variable `value` with type `datetime | str`", "concise_description": "`date | None` is not assignable to variable `value` with type `datetime | str`", "severity": "error" }, { - "line": 48, "column": 12, - "stop_line": 48, - "stop_column": 26, "path": "src/documents/templating/filters.py", - "code": -2, "name": "missing-attribute", - "description": "Object of class `str` has no attribute `strftime`", "concise_description": "Object of class `str` has no attribute `strftime`", "severity": "error" }, { - "line": 109, + "column": 1, + "path": "src/documents/templating/workflows.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, ((obj: Sized, /) -> int) | ((s: Any, /) -> Markup) | ((s: Any, /) -> str) | ((env: Environment, s: str, length: int = 255, killwords: bool = False, end: str = '...', leeway: int | None = None) -> str) | ((environment: Environment, obj: Any, name: str) -> Undefined | Any) | ((environment: Environment, s: str, width: int = 79, break_long_words: bool = True, wrapstring: str | None = None, break_on_hyphens: bool = True) -> str) | ((eval_ctx: EvalContext, d: Mapping[str, Any], autospace: bool = True) -> str) | ((eval_ctx: EvalContext, s: str, old: str, new: str, count: int | None = None) -> str) | ((eval_ctx: EvalContext, value: str, trim_url_limit: int | None = None, nofollow: bool = False, target: str | None = None, rel: str | None = None, extra_schemes: Iterable[str] | None = None) -> str) | ((eval_ctx: EvalContext, value: Any, indent: int | None = None) -> Markup) | ((s: str) -> int) | ((s: str) -> str) | ((s: str, width: int | str = 4, first: bool = False, blank: bool = False) -> str) | ((value: HasHTML | str) -> Markup) | ((value: HasHTML | str) -> str) | ((value: Iterable[tuple[str, Any]] | Mapping[str, Any] | str) -> str) | ((value: float | int | str, binary: bool = False) -> str) | ((value: float, precision: int = 0, method: Literal['ceil', 'common', 'floor'] = 'common') -> float) | ((value: str) -> Markup) | ((value: str, chars: str | None = None) -> str) | ((value: str, width: int = 80) -> str) | ((value: str, *args: Any, **kwargs: Any) -> str) | ((value: Any) -> str) | ((value: Any, default: float = 0.0) -> float) | ((value: Any, default: int = 0, base: int = 10) -> int) | ((*args: Unknown, **kwargs: Unknown) -> Unknown) | Overload[(context: Context, value: AsyncIterable[Any] | Iterable[Any], name: str, *args: Any, **kwargs: Any) -> Iterable[Any], (context: Context, value: AsyncIterable[Any] | Iterable[Any], *, attribute: str = ..., default: Any | None = None) -> Iterable[Any]] | Overload[(value: str) -> str, [V](value: Iterable[V]) -> Iterable[V]] | [_T](x: SupportsAbs[_T], /) -> _T | [K, V](value: Mapping[K, V] | Undefined) -> Iterator[tuple[K, V]] | [K, V](value: Mapping[K, V], case_sensitive: bool = False, by: Literal['key', 'value'] = 'key', reverse: bool = False) -> list[tuple[K, V]] | [V](environment: Environment, value: Iterable[V], reverse: bool = False, case_sensitive: bool = False, attribute: int | str | None = None) -> list[V] | [V](environment: Environment, value: Iterable[V], case_sensitive: bool = False, attribute: int | str | None = None) -> Undefined | V | [V](value: V, default_value: V = '', boolean: bool = False) -> V | [V](environment: Environment, seq: Reversible[V]) -> Undefined | V | [V](context: Context, seq: Sequence[V]) -> Undefined | V | [V](value: Iterable[V], linecount: int, fill_with: V | None = None) -> Iterator[list[V]]]`", + "severity": "error" + }, + { "column": 12, - "stop_line": 109, - "stop_column": 16, "path": "src/documents/templating/workflows.py", - "code": -2, "name": "bad-return", - "description": "Returned type `None` is not assignable to declared return type `str`", "concise_description": "Returned type `None` is not assignable to declared return type `str`", "severity": "error" }, { - "line": 86, - "column": 12, - "stop_line": 95, - "stop_column": 6, - "path": "src/documents/tests/conftest.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `DocumentFactory` is not assignable to declared return type `Document`", - "concise_description": "Returned type `DocumentFactory` is not assignable to declared return type `Document`", - "severity": "error" - }, - { - "line": 134, - "column": 12, - "stop_line": 134, - "stop_column": 49, - "path": "src/documents/tests/conftest.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `create_user`", - "concise_description": "Object of class `Manager` has no attribute `create_user`", - "severity": "error" - }, - { - "line": 98, "column": 22, - "stop_line": 98, - "stop_column": 35, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 99, "column": 22, - "stop_line": 99, - "stop_column": 35, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { - "line": 110, "column": 22, - "stop_line": 110, - "stop_column": 35, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 111, "column": 22, - "stop_line": 111, - "stop_column": 35, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { - "line": 237, "column": 26, - "stop_line": 237, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 238, "column": 26, - "stop_line": 238, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { - "line": 250, "column": 26, - "stop_line": 250, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 251, "column": 26, - "stop_line": 251, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { - "line": 271, "column": 26, - "stop_line": 271, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 272, "column": 26, - "stop_line": 272, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { - "line": 292, "column": 26, - "stop_line": 292, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 293, "column": 26, - "stop_line": 293, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { - "line": 305, "column": 26, - "stop_line": 305, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stdout` with type `OutputWrapper`", "severity": "error" }, { - "line": 306, "column": 26, - "stop_line": 306, - "stop_column": 39, "path": "src/documents/tests/management/test_management_base_cmd.py", - "code": -2, "name": "bad-assignment", - "description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "concise_description": "`StringIO` is not assignable to attribute `stderr` with type `OutputWrapper`", "severity": "error" }, { - "line": 196, - "column": 14, - "stop_line": 196, - "stop_column": 29, - "path": "src/documents/tests/management/test_management_sanity_checker.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `source_path`", - "concise_description": "Object of class `DocumentFactory` has no attribute `source_path`", - "severity": "error" - }, - { - "line": 197, - "column": 14, - "stop_line": 197, - "stop_column": 32, - "path": "src/documents/tests/management/test_management_sanity_checker.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `thumbnail_path`", - "concise_description": "Object of class `DocumentFactory` has no attribute `thumbnail_path`", - "severity": "error" - }, - { - "line": 518, - "column": 16, - "stop_line": 518, - "stop_column": 66, - "path": "src/documents/tests/search/test_query.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SearchResult` has no attribute `count`", - "concise_description": "Object of class `SearchResult` has no attribute `count`", - "severity": "error" - }, - { - "line": 529, - "column": 16, - "stop_line": 529, - "stop_column": 66, - "path": "src/documents/tests/search/test_query.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SearchResult` has no attribute `count`", - "concise_description": "Object of class `SearchResult` has no attribute `count`", - "severity": "error" - }, - { - "line": 540, - "column": 16, - "stop_line": 540, - "stop_column": 66, - "path": "src/documents/tests/search/test_query.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SearchResult` has no attribute `count`", - "concise_description": "Object of class `SearchResult` has no attribute `count`", - "severity": "error" - }, - { - "line": 551, - "column": 16, - "stop_line": 551, - "stop_column": 66, - "path": "src/documents/tests/search/test_query.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SearchResult` has no attribute `count`", - "concise_description": "Object of class `SearchResult` has no attribute `count`", - "severity": "error" - }, - { - "line": 563, - "column": 16, - "stop_line": 563, - "stop_column": 66, - "path": "src/documents/tests/search/test_query.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SearchResult` has no attribute `count`", - "concise_description": "Object of class `SearchResult` has no attribute `count`", - "severity": "error" - }, - { - "line": 71, - "column": 16, - "stop_line": 71, - "stop_column": 65, - "path": "src/documents/tests/search/test_tokenizer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SearchResult` has no attribute `count`", - "concise_description": "Object of class `SearchResult` has no attribute `count`", - "severity": "error" - }, - { - "line": 82, - "column": 16, - "stop_line": 82, - "stop_column": 64, - "path": "src/documents/tests/search/test_tokenizer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SearchResult` has no attribute `count`", - "concise_description": "Object of class `SearchResult` has no attribute `count`", - "severity": "error" - }, - { - "line": 100, - "column": 16, - "stop_line": 100, - "stop_column": 71, - "path": "src/documents/tests/search/test_tokenizer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SearchResult` has no attribute `count`", - "concise_description": "Object of class `SearchResult` has no attribute `count`", - "severity": "error" - }, - { - "line": 25, - "column": 20, - "stop_line": 25, - "stop_column": 43, - "path": "src/documents/tests/test_admin.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `searcher`", - "concise_description": "Object of class `NoneType` has no attribute `searcher`", - "severity": "error" - }, - { - "line": 28, - "column": 17, - "stop_line": 28, - "stop_column": 32, - "path": "src/documents/tests/test_admin.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `schema` with type `Schema` in function `tantivy.tantivy.Query.range_query`", - "severity": "error" - }, - { - "line": 55, - "column": 26, - "stop_line": 55, - "stop_column": 65, - "path": "src/documents/tests/test_admin.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 126, - "column": 26, - "stop_line": 126, - "stop_column": 38, - "path": "src/documents/tests/test_admin.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ModelForm` has no attribute `request`", - "concise_description": "Object of class `ModelForm` has no attribute `request`", - "severity": "error" - }, - { - "line": 138, - "column": 9, - "stop_line": 138, - "stop_column": 21, - "path": "src/documents/tests/test_admin.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ModelForm` has no attribute `request`", - "concise_description": "Object of class `ModelForm` has no attribute `request`", - "severity": "error" - }, - { - "line": 146, - "column": 9, - "stop_line": 146, - "stop_column": 21, - "path": "src/documents/tests/test_admin.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ModelForm` has no attribute `request`", - "concise_description": "Object of class `ModelForm` has no attribute `request`", - "severity": "error" - }, - { - "line": 195, - "column": 30, - "stop_line": 195, - "stop_column": 43, - "path": "src/documents/tests/test_api_app_config.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `path`", - "concise_description": "Object of class `NoneType` has no attribute `path`", - "severity": "error" - }, - { - "line": 208, - "column": 31, - "stop_line": 208, - "stop_column": 44, - "path": "src/documents/tests/test_api_app_config.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `path`", - "concise_description": "Object of class `NoneType` has no attribute `path`", - "severity": "error" - }, - { - "line": 241, - "column": 25, - "stop_line": 241, - "stop_column": 45, - "path": "src/documents/tests/test_api_app_config.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `path`", - "concise_description": "Object of class `NoneType` has no attribute `path`", - "severity": "error" - }, - { - "line": 277, - "column": 25, - "stop_line": 277, - "stop_column": 45, - "path": "src/documents/tests/test_api_app_config.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `path`", - "concise_description": "Object of class `NoneType` has no attribute `path`", - "severity": "error" - }, - { - "line": 278, - "column": 27, - "stop_line": 278, - "stop_column": 43, - "path": "src/documents/tests/test_api_app_config.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ImageFile` has no attribute `text`", - "concise_description": "Object of class `ImageFile` has no attribute `text`", - "severity": "error" - }, - { - "line": 57, - "column": 20, - "stop_line": 57, - "stop_column": 83, - "path": "src/documents/tests/test_api_bulk_download.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, follow_symlinks: bool = True) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, follow_symlinks: bool = True) -> bytes | _BytesPathT", - "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", - "severity": "error" - }, - { - "line": 279, - "column": 17, - "stop_line": 279, - "stop_column": 34, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 531, - "column": 30, - "stop_line": 531, - "stop_column": 47, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 572, - "column": 17, - "stop_line": 572, - "stop_column": 34, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 591, - "column": 17, - "stop_line": 591, - "stop_column": 34, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 641, - "column": 30, - "stop_line": 641, - "stop_column": 47, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 658, - "column": 30, - "stop_line": 658, - "stop_column": 47, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 659, - "column": 17, - "stop_line": 659, - "stop_column": 34, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 702, - "column": 30, - "stop_line": 702, - "stop_column": 47, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 742, - "column": 38, - "stop_line": 742, - "stop_column": 55, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 794, - "column": 30, - "stop_line": 794, - "stop_column": 47, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 865, - "column": 30, - "stop_line": 865, - "stop_column": 47, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 900, - "column": 30, - "stop_line": 900, - "stop_column": 47, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 941, - "column": 30, - "stop_line": 941, - "stop_column": 47, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 978, - "column": 30, - "stop_line": 978, - "stop_column": 47, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1073, - "column": 17, - "stop_line": 1073, - "stop_column": 35, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1076, - "column": 17, - "stop_line": 1076, - "stop_column": 35, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1079, - "column": 17, - "stop_line": 1079, - "stop_column": 35, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1098, - "column": 17, - "stop_line": 1098, - "stop_column": 35, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1117, - "column": 17, - "stop_line": 1117, - "stop_column": 35, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1120, - "column": 18, - "stop_line": 1120, - "stop_column": 36, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1123, - "column": 18, - "stop_line": 1123, - "stop_column": 36, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1137, - "column": 18, - "stop_line": 1137, - "stop_column": 36, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1140, - "column": 18, - "stop_line": 1140, - "stop_column": 36, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1143, - "column": 18, - "stop_line": 1143, - "stop_column": 36, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1170, - "column": 18, - "stop_line": 1170, - "stop_column": 36, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1266, - "column": 13, - "stop_line": 1266, - "stop_column": 37, - "path": "src/documents/tests/test_api_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 306, - "column": 44, - "stop_line": 306, - "stop_column": 67, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 321, - "column": 31, - "stop_line": 321, - "stop_column": 54, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `thumbnail_dir`", - "concise_description": "Class `dirs` has no class attribute `thumbnail_dir`", - "severity": "error" - }, - { - "line": 351, - "column": 44, - "stop_line": 351, - "stop_column": 67, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 373, - "column": 20, - "stop_line": 373, - "stop_column": 43, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `thumbnail_dir`", - "concise_description": "Class `dirs` has no class attribute `thumbnail_dir`", - "severity": "error" - }, - { - "line": 411, - "column": 19, - "stop_line": 411, - "stop_column": 35, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 453, - "column": 19, - "stop_line": 453, - "stop_column": 35, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 1468, - "column": 13, - "stop_line": 1468, - "stop_column": 20, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `bytes` is not assignable to parameter `data` with type `str` in function `rest_framework.test.APIClient.generic`", - "concise_description": "Argument `bytes` is not assignable to parameter `data` with type `str` in function `rest_framework.test.APIClient.generic`", - "severity": "error" - }, - { - "line": 1732, - "column": 31, - "stop_line": 1732, - "stop_column": 48, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `list[int] | None` is not assignable to parameter `first` with type `Iterable[Any]` in function `unittest.case.TestCase.assertCountEqual`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Argument `list[int] | None` is not assignable to parameter `first` with type `Iterable[Any]` in function `unittest.case.TestCase.assertCountEqual`", - "severity": "error" - }, - { - "line": 1879, - "column": 9, - "stop_line": 1879, - "stop_column": 25, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "not-iterable", - "description": "Type `None` is not iterable", - "concise_description": "Type `None` is not iterable", - "severity": "error" - }, - { - "line": 2063, - "column": 20, - "stop_line": 2063, - "stop_column": 52, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, follow_symlinks: bool = True) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, follow_symlinks: bool = True) -> bytes | _BytesPathT", - "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", - "severity": "error" - }, - { - "line": 2556, - "column": 31, - "stop_line": 2556, - "stop_column": 52, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `User` has no attribute `ui_settings`", - "concise_description": "Object of class `User` has no attribute `ui_settings`", - "severity": "error" - }, - { - "line": 2576, - "column": 31, - "stop_line": 2576, - "stop_column": 52, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `User` has no attribute `ui_settings`", - "concise_description": "Object of class `User` has no attribute `ui_settings`", - "severity": "error" - }, - { - "line": 2594, - "column": 26, - "stop_line": 2594, - "stop_column": 41, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SavedView` has no attribute `filter_rules`", - "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", - "severity": "error" - }, - { - "line": 2606, - "column": 26, - "stop_line": 2606, - "stop_column": 41, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SavedView` has no attribute `filter_rules`", - "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", - "severity": "error" - }, - { - "line": 2614, - "column": 26, - "stop_line": 2614, - "stop_column": 41, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SavedView` has no attribute `filter_rules`", - "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", - "severity": "error" - }, - { - "line": 2615, - "column": 26, - "stop_line": 2615, - "stop_column": 41, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SavedView` has no attribute `filter_rules`", - "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", - "severity": "error" - }, - { - "line": 2623, - "column": 26, - "stop_line": 2623, - "stop_column": 41, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SavedView` has no attribute `filter_rules`", - "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", - "severity": "error" - }, - { - "line": 2975, - "column": 27, - "stop_line": 2975, - "stop_column": 39, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `id`", - "concise_description": "Object of class `NoneType` has no attribute `id`", - "severity": "error" - }, - { - "line": 2976, - "column": 33, - "stop_line": 2976, - "stop_column": 51, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `username`", - "concise_description": "Object of class `NoneType` has no attribute `username`", - "severity": "error" - }, - { - "line": 2977, - "column": 35, - "stop_line": 2977, - "stop_column": 55, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `first_name`", - "concise_description": "Object of class `NoneType` has no attribute `first_name`", - "severity": "error" - }, - { - "line": 2978, - "column": 34, - "stop_line": 2978, - "stop_column": 53, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `last_name`", - "concise_description": "Object of class `NoneType` has no attribute `last_name`", - "severity": "error" - }, - { - "line": 3676, - "column": 20, - "stop_line": 3676, - "stop_column": 52, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, follow_symlinks: bool = True) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, follow_symlinks: bool = True) -> bytes | _BytesPathT", - "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", - "severity": "error" - }, - { - "line": 4016, - "column": 23, - "stop_line": 4016, - "stop_column": 50, - "path": "src/documents/tests/test_api_documents.py", - "code": -2, - "name": "bad-unpacking", - "description": "Expected argument after ** to have `str` keys, got: dict[str, list[dict[str, str]]] | list[bool] | list[date] | list[float] | list[int] | list[str] | str in function `django.db.models.manager.Manager.create`", - "concise_description": "Expected argument after ** to have `str` keys, got: dict[str, list[dict[str, str]]] | list[bool] | list[date] | list[float] | list[int] | list[str] | str in function `django.db.models.manager.Manager.create`", - "severity": "error" - }, - { - "line": 44, - "column": 20, - "stop_line": 47, - "stop_column": 10, - "path": "src/documents/tests/test_api_email.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)\n Possible overloads:\n (src: StrPath, dst: _StrPathT, *, follow_symlinks: bool = True) -> str | _StrPathT [closest match]\n (src: BytesPath, dst: _BytesPathT, *, follow_symlinks: bool = True) -> bytes | _BytesPathT", - "concise_description": "No matching overload found for function `shutil.copy` called with arguments: (Path, Path | None)", - "severity": "error" - }, - { - "line": 103, - "column": 24, - "stop_line": 103, - "stop_column": 51, - "path": "src/documents/tests/test_api_email.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `stat`", - "concise_description": "Object of class `NoneType` has no attribute `stat`", - "severity": "error" - }, - { - "line": 27, - "column": 16, - "stop_line": 27, - "stop_column": 44, - "path": "src/documents/tests/test_api_filter_by_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 30, - "column": 16, - "stop_line": 30, - "stop_column": 44, - "path": "src/documents/tests/test_api_filter_by_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 528, - "column": 16, - "stop_line": 528, - "stop_column": 39, - "path": "src/documents/tests/test_api_filter_by_custom_fields.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `SavedView` has no attribute `filter_rules`", - "concise_description": "Object of class `SavedView` has no attribute `filter_rules`", - "severity": "error" - }, - { - "line": 222, - "column": 26, - "stop_line": 222, - "stop_column": 36, - "path": "src/documents/tests/test_api_permissions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `owner`", - "concise_description": "Object of class `NoneType` has no attribute `owner`", - "severity": "error" - }, - { - "line": 252, - "column": 26, - "stop_line": 252, - "stop_column": 36, - "path": "src/documents/tests/test_api_permissions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `owner`", - "concise_description": "Object of class `NoneType` has no attribute `owner`", - "severity": "error" - }, - { - "line": 299, - "column": 55, - "stop_line": 299, - "stop_column": 59, - "path": "src/documents/tests/test_api_permissions.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", - "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", - "severity": "error" - }, - { - "line": 300, - "column": 53, - "stop_line": 300, - "stop_column": 57, - "path": "src/documents/tests/test_api_permissions.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", - "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", - "severity": "error" - }, - { - "line": 344, - "column": 26, - "stop_line": 344, - "stop_column": 36, - "path": "src/documents/tests/test_api_permissions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `owner`", - "concise_description": "Object of class `NoneType` has no attribute `owner`", - "severity": "error" - }, - { - "line": 345, - "column": 53, - "stop_line": 345, - "stop_column": 57, - "path": "src/documents/tests/test_api_permissions.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", - "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", - "severity": "error" - }, - { - "line": 46, - "column": 21, - "stop_line": 46, - "stop_column": 29, - "path": "src/documents/tests/test_api_profile.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `name`", - "concise_description": "Object of class `NoneType` has no attribute `name`", - "severity": "error" - }, - { - "line": 49, - "column": 19, - "stop_line": 49, - "stop_column": 39, - "path": "src/documents/tests/test_api_profile.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `provider_id`", - "concise_description": "Object of class `NoneType` has no attribute `provider_id`", - "severity": "error" - }, - { - "line": 71, - "column": 9, - "stop_line": 71, - "stop_column": 36, - "path": "src/documents/tests/test_api_profile.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `User` has no attribute `socialaccount_set`", - "concise_description": "Object of class `User` has no attribute `socialaccount_set`", - "severity": "error" - }, - { - "line": 279, - "column": 41, - "stop_line": 279, - "stop_column": 51, - "path": "src/documents/tests/test_api_profile.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `key`", - "concise_description": "Object of class `NoneType` has no attribute `key`", - "severity": "error" - }, - { - "line": 382, - "column": 29, - "stop_line": 382, - "stop_column": 56, - "path": "src/documents/tests/test_api_profile.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `User` has no attribute `socialaccount_set`", - "concise_description": "Object of class `User` has no attribute `socialaccount_set`", - "severity": "error" - }, - { - "line": 393, - "column": 17, - "stop_line": 393, - "stop_column": 44, - "path": "src/documents/tests/test_api_profile.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `User` has no attribute `socialaccount_set`", - "concise_description": "Object of class `User` has no attribute `socialaccount_set`", - "severity": "error" - }, - { - "line": 83, - "column": 14, - "stop_line": 83, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 90, - "column": 14, - "stop_line": 90, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 96, - "column": 21, - "stop_line": 96, - "stop_column": 45, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 107, - "column": 14, - "stop_line": 107, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 119, - "column": 14, - "stop_line": 119, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 126, - "column": 14, - "stop_line": 126, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 132, - "column": 34, - "stop_line": 132, - "stop_column": 58, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 144, - "column": 17, - "stop_line": 144, - "stop_column": 41, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 155, - "column": 17, - "stop_line": 155, - "stop_column": 41, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 160, - "column": 26, - "stop_line": 160, - "stop_column": 50, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 190, - "column": 14, - "stop_line": 190, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 200, - "column": 14, - "stop_line": 200, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 217, - "column": 14, - "stop_line": 217, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 222, - "column": 20, - "stop_line": 222, - "stop_column": 44, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 251, - "column": 14, - "stop_line": 251, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 257, - "column": 14, - "stop_line": 257, - "stop_column": 33, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 262, - "column": 21, - "stop_line": 262, - "stop_column": 45, - "path": "src/documents/tests/test_api_schema.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `SchemaGenerator`\n Object of class `SchemaGenerator` has no attribute `__getitem__`", - "concise_description": "Cannot index into `SchemaGenerator`", - "severity": "error" - }, - { - "line": 1647, - "column": 25, - "stop_line": 1647, - "stop_column": 58, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "unsupported-operation", - "description": "`<` is not supported between `int` and `None`\n Argument `None` is not assignable to parameter `value` with type `int` in function `int.__lt__`", - "concise_description": "`<` is not supported between `int` and `None`", - "severity": "error" - }, - { - "line": 1647, - "column": 25, - "stop_line": 1647, - "stop_column": 58, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "unsupported-operation", - "description": "`<` is not supported between `None` and `int`\n Argument `None` is not assignable to parameter `value` with type `int` in function `int.__gt__`", - "concise_description": "`<` is not supported between `None` and `int`", - "severity": "error" - }, - { - "line": 1647, - "column": 25, - "stop_line": 1647, - "stop_column": 58, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "unsupported-operation", - "description": "`<` is not supported between `None` and `None`\n Cannot find `__lt__` or `__gt__`", - "concise_description": "`<` is not supported between `None` and `None`", - "severity": "error" - }, - { - "line": 1647, - "column": 28, - "stop_line": 1647, - "stop_column": 40, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "bad-specialization", - "description": "`int | None` is not assignable to upper bound `SupportsDunderGT[Any] | SupportsDunderLT[Any]` of type variable `SupportsRichComparisonT`", - "concise_description": "`int | None` is not assignable to upper bound `SupportsDunderGT[Any] | SupportsDunderLT[Any]` of type variable `SupportsRichComparisonT`", - "severity": "error" - }, - { - "line": 1647, - "column": 46, - "stop_line": 1647, - "stop_column": 58, - "path": "src/documents/tests/test_api_search.py", - "code": -2, - "name": "bad-specialization", - "description": "`int | None` is not assignable to upper bound `SupportsDunderGT[Any] | SupportsDunderLT[Any]` of type variable `SupportsRichComparisonT`", - "concise_description": "`int | None` is not assignable to upper bound `SupportsDunderGT[Any] | SupportsDunderLT[Any]` of type variable `SupportsRichComparisonT`", - "severity": "error" - }, - { - "line": 106, - "column": 47, - "stop_line": 106, - "stop_column": 72, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `dict[str, Faker]` is not assignable to parameter `data` with type `Iterable[tuple[str, Iterable[bytes | float | str] | bytes | float | str]] | Mapping[str, Iterable[bytes | float | str] | bytes | float | str] | None` in function `rest_framework.test.APIClient.get`", - "concise_description": "Argument `dict[str, Faker]` is not assignable to parameter `data` with type `Iterable[tuple[str, Iterable[bytes | float | str] | bytes | float | str]] | Mapping[str, Iterable[bytes | float | str] | bytes | float | str] | None` in function `rest_framework.test.APIClient.get`", - "severity": "error" - }, - { - "line": 491, - "column": 24, - "stop_line": 491, - "stop_column": 32, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 491, - "column": 34, - "stop_line": 491, - "stop_column": 42, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 506, - "column": 24, - "stop_line": 506, - "stop_column": 31, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 521, - "column": 24, - "stop_line": 521, - "stop_column": 31, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 541, - "column": 24, - "stop_line": 541, - "stop_column": 31, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 584, - "column": 41, - "stop_line": 584, - "stop_column": 52, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `pk`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 825, - "column": 42, - "stop_line": 825, - "stop_column": 48, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 833, - "column": 34, - "stop_line": 833, - "stop_column": 40, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 845, - "column": 42, - "stop_line": 845, - "stop_column": 48, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 864, - "column": 42, - "stop_line": 864, - "stop_column": 48, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 880, - "column": 52, - "stop_line": 880, - "stop_column": 55, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DocumentFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `DocumentFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 884, - "column": 42, - "stop_line": 884, - "stop_column": 48, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 892, - "column": 34, - "stop_line": 892, - "stop_column": 40, - "path": "src/documents/tests/test_api_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 83, - "column": 23, - "stop_line": 83, - "stop_column": 49, - "path": "src/documents/tests/test_api_uisettings.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `User` has no attribute `ui_settings`", - "concise_description": "Object of class `User` has no attribute `ui_settings`", - "severity": "error" - }, - { - "line": 99, - "column": 13, - "stop_line": 99, - "stop_column": 48, - "path": "src/documents/tests/test_api_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `pk`", - "concise_description": "Object of class `NoneType` has no attribute `pk`", - "severity": "error" - }, - { - "line": 34, - "column": 13, - "stop_line": 34, - "stop_column": 54, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", - "concise_description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", - "severity": "error" - }, - { - "line": 35, - "column": 13, - "stop_line": 35, - "stop_column": 22, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `GetReaderPluginMixin` has no attribute `dirs`", - "concise_description": "Object of class `GetReaderPluginMixin` has no attribute `dirs`", - "severity": "error" - }, - { - "line": 622, - "column": 21, - "stop_line": 622, - "stop_column": 42, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 658, - "column": 5, - "stop_line": 658, - "stop_column": 20, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestAsnBarcode, filepath: Path) -> BarcodePlugin)\n Possible overloads:\n (func: (ParamSpec(_P)) -> Generator[_T_co, None, object]) -> (ParamSpec(_P)) -> _GeneratorContextManager[_T_co] [closest match]\n (func: (ParamSpec(_P)) -> Iterator[_T_co]) -> (ParamSpec(_P)) -> _GeneratorContextManager[_T_co]", - "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestAsnBarcode, filepath: Path) -> BarcodePlugin)", - "severity": "error" - }, - { - "line": 659, - "column": 45, - "stop_line": 659, - "stop_column": 58, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "bad-return", - "description": "Generator function should return `Generator`", - "concise_description": "Generator function should return `Generator`", - "severity": "error" - }, - { - "line": 663, - "column": 13, - "stop_line": 663, - "stop_column": 54, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", - "concise_description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", - "severity": "error" - }, - { - "line": 664, - "column": 13, - "stop_line": 664, - "stop_column": 34, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 817, - "column": 5, - "stop_line": 817, - "stop_column": 20, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestTagBarcode, filepath: Path) -> BarcodePlugin)\n Possible overloads:\n (func: (ParamSpec(_P)) -> Generator[_T_co, None, object]) -> (ParamSpec(_P)) -> _GeneratorContextManager[_T_co] [closest match]\n (func: (ParamSpec(_P)) -> Iterator[_T_co]) -> (ParamSpec(_P)) -> _GeneratorContextManager[_T_co]", - "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestTagBarcode, filepath: Path) -> BarcodePlugin)", - "severity": "error" - }, - { - "line": 818, - "column": 45, - "stop_line": 818, - "stop_column": 58, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "bad-return", - "description": "Generator function should return `Generator`", - "concise_description": "Generator function should return `Generator`", - "severity": "error" - }, - { - "line": 822, - "column": 13, - "stop_line": 822, - "stop_column": 54, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", - "concise_description": "Argument `DummyProgressManager` is not assignable to parameter `status_mgr` with type `ProgressManager` in function `documents.barcodes.BarcodePlugin.__init__`", - "severity": "error" - }, - { - "line": 823, - "column": 13, - "stop_line": 823, - "stop_column": 34, - "path": "src/documents/tests/test_barcodes.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 73, - "column": 13, - "stop_line": 73, - "stop_column": 23, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", - "concise_description": "Argument `int` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", - "severity": "error" - }, - { - "line": 82, - "column": 81, - "stop_line": 82, - "stop_column": 85, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", - "concise_description": "Argument `None` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", - "severity": "error" - }, - { - "line": 92, - "column": 13, - "stop_line": 92, - "stop_column": 24, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", - "concise_description": "Argument `int` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", - "severity": "error" - }, - { - "line": 101, - "column": 81, - "stop_line": 101, - "stop_column": 85, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", - "concise_description": "Argument `None` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", - "severity": "error" - }, - { - "line": 120, - "column": 13, - "stop_line": 120, - "stop_column": 24, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", - "concise_description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", - "severity": "error" - }, - { - "line": 144, - "column": 13, - "stop_line": 144, - "stop_column": 24, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", - "concise_description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", - "severity": "error" - }, - { - "line": 151, - "column": 13, - "stop_line": 151, - "stop_column": 17, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", - "concise_description": "Argument `None` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", - "severity": "error" - }, - { - "line": 242, - "column": 13, - "stop_line": 242, - "stop_column": 36, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 246, - "column": 13, - "stop_line": 246, - "stop_column": 36, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 302, - "column": 13, - "stop_line": 302, - "stop_column": 36, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 306, - "column": 13, - "stop_line": 306, - "stop_column": 36, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 310, - "column": 13, - "stop_line": 310, - "stop_column": 36, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 314, - "column": 13, - "stop_line": 314, - "stop_column": 36, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 318, - "column": 13, - "stop_line": 318, - "stop_column": 36, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 322, - "column": 17, - "stop_line": 322, - "stop_column": 40, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 339, - "column": 17, - "stop_line": 339, - "stop_column": 40, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 342, - "column": 17, - "stop_line": 342, - "stop_column": 40, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 366, - "column": 17, - "stop_line": 366, - "stop_column": 40, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 369, - "column": 17, - "stop_line": 369, - "stop_column": 40, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 460, - "column": 48, - "stop_line": 460, - "stop_column": 50, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 466, - "column": 26, - "stop_line": 466, - "stop_column": 49, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", - "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", - "severity": "error" - }, - { - "line": 504, - "column": 48, - "stop_line": 504, - "stop_column": 50, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 510, - "column": 26, - "stop_line": 510, - "stop_column": 49, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", - "concise_description": "Object of class `Group` has no attribute `count`\nObject of class `dict` has no attribute `count`", - "severity": "error" - }, - { - "line": 525, - "column": 19, - "stop_line": 525, - "stop_column": 40, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 534, - "column": 27, - "stop_line": 534, - "stop_column": 48, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `archive_dir`", - "concise_description": "Class `dirs` has no class attribute `archive_dir`", - "severity": "error" - }, - { - "line": 543, - "column": 19, - "stop_line": 543, - "stop_column": 40, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 552, - "column": 27, - "stop_line": 552, - "stop_column": 48, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `archive_dir`", - "concise_description": "Class `dirs` has no class attribute `archive_dir`", - "severity": "error" - }, - { - "line": 561, - "column": 19, - "stop_line": 561, - "stop_column": 40, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 594, - "column": 19, - "stop_line": 594, - "stop_column": 40, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 599, - "column": 27, - "stop_line": 599, - "stop_column": 48, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `archive_dir`", - "concise_description": "Class `dirs` has no class attribute `archive_dir`", - "severity": "error" - }, - { - "line": 668, - "column": 24, - "stop_line": 668, - "stop_column": 45, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 904, - "column": 24, - "stop_line": 904, - "stop_column": 45, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 1449, - "column": 20, - "stop_line": 1449, - "stop_column": 41, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 1525, - "column": 20, - "stop_line": 1525, - "stop_column": 41, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 1585, - "column": 20, - "stop_line": 1585, - "stop_column": 41, - "path": "src/documents/tests/test_bulk_edit.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 206, - "column": 18, - "stop_line": 206, - "stop_column": 67, - "path": "src/documents/tests/test_classifier.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `classes_`", - "concise_description": "Object of class `NoneType` has no attribute `classes_`", - "severity": "error" - }, - { - "line": 210, - "column": 18, - "stop_line": 210, - "stop_column": 57, - "path": "src/documents/tests/test_classifier.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `classes_`", - "concise_description": "Object of class `NoneType` has no attribute `classes_`", - "severity": "error" - }, - { - "line": 230, - "column": 23, - "stop_line": 230, - "stop_column": 64, - "path": "src/documents/tests/test_classifier.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `transform`", - "concise_description": "Object of class `NoneType` has no attribute `transform`", - "severity": "error" - }, - { - "line": 461, "column": 40, - "stop_line": 461, - "stop_column": 66, - "path": "src/documents/tests/test_classifier.py", - "code": -2, + "path": "src/documents/tests/search/test_cjk_clause.py", "name": "missing-module-attribute", - "description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", - "concise_description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "severity": "error" }, { - "line": 481, - "column": 17, - "stop_line": 481, - "stop_column": 25, - "path": "src/documents/tests/test_classifier.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `append`", - "concise_description": "Object of class `NoneType` has no attribute `append`", - "severity": "error" - }, - { - "line": 104, - "column": 16, - "stop_line": 104, - "stop_column": 27, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `Path | None` is not assignable to declared return type `Path`", - "concise_description": "Returned type `Path | None` is not assignable to declared return type `Path`", - "severity": "error" - }, - { - "line": 209, - "column": 15, - "stop_line": 209, - "stop_column": 36, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 221, - "column": 15, - "stop_line": 221, - "stop_column": 36, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 229, - "column": 15, - "stop_line": 229, - "stop_column": 36, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 267, - "column": 27, - "stop_line": 267, - "stop_column": 48, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 291, - "column": 28, - "stop_line": 291, - "stop_column": 49, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 358, - "column": 26, - "stop_line": 358, - "stop_column": 51, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `id`", - "concise_description": "Object of class `NoneType` has no attribute `id`", - "severity": "error" - }, - { - "line": 373, - "column": 26, - "stop_line": 373, - "stop_column": 51, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `id`", - "concise_description": "Object of class `NoneType` has no attribute `id`", - "severity": "error" - }, - { - "line": 388, - "column": 26, - "stop_line": 388, - "stop_column": 50, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `id`", - "concise_description": "Object of class `NoneType` has no attribute `id`", - "severity": "error" - }, - { - "line": 433, - "column": 56, - "stop_line": 433, - "stop_column": 78, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 438, - "column": 26, - "stop_line": 438, - "stop_column": 48, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 440, - "column": 13, - "stop_line": 440, - "stop_column": 35, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 689, - "column": 34, - "stop_line": 689, - "stop_column": 51, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`\n Protocol `Sized` requires attribute `__len__`", - "concise_description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`", - "severity": "error" - }, - { - "line": 691, - "column": 17, - "stop_line": 691, - "stop_column": 42, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`\n Protocol `Sized` requires attribute `__len__`", - "concise_description": "Argument `Any | None` is not assignable to parameter `obj` with type `Sized` in function `len`", - "severity": "error" - }, - { - "line": 695, - "column": 27, - "stop_line": 695, - "stop_column": 48, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 728, - "column": 27, - "stop_line": 728, - "stop_column": 48, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 791, - "column": 13, - "stop_line": 791, - "stop_column": 34, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 801, - "column": 13, - "stop_line": 801, - "stop_column": 34, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 853, - "column": 13, - "stop_line": 853, - "stop_column": 34, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 863, - "column": 13, - "stop_line": 863, - "stop_column": 34, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 906, - "column": 17, - "stop_line": 906, - "stop_column": 38, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 916, - "column": 17, - "stop_line": 916, - "stop_column": 38, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 1088, - "column": 26, - "stop_line": 1088, - "stop_column": 39, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `filename`", - "concise_description": "Object of class `NoneType` has no attribute `filename`", - "severity": "error" - }, - { - "line": 1089, - "column": 26, - "stop_line": 1089, - "stop_column": 47, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `archive_filename`", - "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", - "severity": "error" - }, - { - "line": 1091, - "column": 26, - "stop_line": 1091, - "stop_column": 39, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `filename`", - "concise_description": "Object of class `NoneType` has no attribute `filename`", - "severity": "error" - }, - { - "line": 1092, - "column": 26, - "stop_line": 1092, - "stop_column": 47, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `archive_filename`", - "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", - "severity": "error" - }, - { - "line": 1094, - "column": 26, - "stop_line": 1094, - "stop_column": 39, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `filename`", - "concise_description": "Object of class `NoneType` has no attribute `filename`", - "severity": "error" - }, - { - "line": 1095, - "column": 26, - "stop_line": 1095, - "stop_column": 47, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `archive_filename`", - "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", - "severity": "error" - }, - { - "line": 1191, - "column": 15, - "stop_line": 1191, - "stop_column": 36, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 1222, - "column": 15, - "stop_line": 1222, - "stop_column": 36, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 1253, - "column": 15, - "stop_line": 1253, - "stop_column": 36, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 1286, - "column": 15, - "stop_line": 1286, - "stop_column": 36, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 1311, - "column": 26, - "stop_line": 1311, - "stop_column": 47, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 1436, - "column": 26, - "stop_line": 1436, - "stop_column": 47, - "path": "src/documents/tests/test_consumer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 32, - "column": 38, - "stop_line": 32, - "stop_column": 63, - "path": "src/documents/tests/test_double_sided.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `consumption_dir`", - "concise_description": "Class `dirs` has no class attribute `consumption_dir`", - "severity": "error" - }, - { - "line": 33, - "column": 9, - "stop_line": 33, - "stop_column": 35, - "path": "src/documents/tests/test_double_sided.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `double_sided_dir`", - "concise_description": "Class `dirs` has no class attribute `double_sided_dir`", - "severity": "error" - }, - { - "line": 34, - "column": 29, - "stop_line": 34, - "stop_column": 50, - "path": "src/documents/tests/test_double_sided.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 42, - "column": 15, - "stop_line": 42, - "stop_column": 41, - "path": "src/documents/tests/test_double_sided.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `double_sided_dir`", - "concise_description": "Class `dirs` has no class attribute `double_sided_dir`", - "severity": "error" - }, - { - "line": 106, - "column": 18, - "stop_line": 106, - "stop_column": 43, - "path": "src/documents/tests/test_double_sided.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `consumption_dir`", - "concise_description": "Class `dirs` has no class attribute `consumption_dir`", - "severity": "error" - }, - { - "line": 240, - "column": 21, - "stop_line": 240, - "stop_column": 46, - "path": "src/documents/tests/test_double_sided.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `consumption_dir`", - "concise_description": "Class `dirs` has no class attribute `consumption_dir`", - "severity": "error" - }, - { - "line": 232, - "column": 38, - "stop_line": 232, - "stop_column": 54, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", - "concise_description": "Argument `Path | None` is not assignable to parameter `source_path` with type `Path` in function `documents.file_handling.create_source_path_directory`", - "severity": "error" - }, - { - "line": 233, - "column": 9, - "stop_line": 233, - "stop_column": 37, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `write_bytes`", - "concise_description": "Object of class `NoneType` has no attribute `write_bytes`", - "severity": "error" - }, - { - "line": 250, - "column": 27, - "stop_line": 250, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 608, - "column": 18, - "stop_line": 608, - "stop_column": 34, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 691, - "column": 27, - "stop_line": 691, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 711, - "column": 27, - "stop_line": 711, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 738, - "column": 30, - "stop_line": 738, - "stop_column": 46, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`", - "severity": "error" - }, - { - "line": 761, - "column": 27, - "stop_line": 761, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 785, - "column": 27, - "stop_line": 785, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 807, - "column": 27, - "stop_line": 807, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 838, - "column": 27, - "stop_line": 838, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 858, - "column": 27, - "stop_line": 858, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 889, - "column": 27, - "stop_line": 889, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 909, - "column": 27, - "stop_line": 909, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 917, - "column": 30, - "stop_line": 917, - "stop_column": 46, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`", - "severity": "error" - }, - { - "line": 944, - "column": 27, - "stop_line": 944, - "stop_column": 44, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 951, - "column": 27, - "stop_line": 951, - "stop_column": 44, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 977, - "column": 27, - "stop_line": 977, - "stop_column": 43, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 1883, - "column": 31, - "stop_line": 1883, - "stop_column": 48, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 1906, - "column": 31, - "stop_line": 1906, - "stop_column": 48, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 1922, - "column": 31, - "stop_line": 1922, - "stop_column": 48, - "path": "src/documents/tests/test_file_handling.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 166, - "column": 27, - "stop_line": 166, - "stop_column": 40, - "path": "src/documents/tests/test_filters.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal[1698330605] | dict[Any, Any] | list[object] | None` is not assignable to parameter `value` with type `date | datetime | str` in function `documents.templating.filters.localize_date`", - "concise_description": "Argument `Literal[1698330605] | dict[Any, Any] | list[object] | None` is not assignable to parameter `value` with type `date | datetime | str` in function `documents.templating.filters.localize_date`", - "severity": "error" - }, - { - "line": 45, - "column": 39, - "stop_line": 45, - "stop_column": 62, - "path": "src/documents/tests/test_management.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 51, - "column": 39, - "stop_line": 51, - "stop_column": 62, - "path": "src/documents/tests/test_management.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 59, - "column": 27, - "stop_line": 59, - "stop_column": 43, - "path": "src/documents/tests/test_management.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 95, - "column": 39, - "stop_line": 95, - "stop_column": 62, - "path": "src/documents/tests/test_management.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 96, - "column": 39, - "stop_line": 96, - "stop_column": 62, - "path": "src/documents/tests/test_management.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 190, - "column": 14, - "stop_line": 190, - "stop_column": 30, - "path": "src/documents/tests/test_management.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 200, - "column": 30, - "stop_line": 200, - "stop_column": 46, - "path": "src/documents/tests/test_management.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsNotFile`", - "severity": "error" - }, - { - "line": 202, - "column": 27, - "stop_line": 202, - "stop_column": 44, - "path": "src/documents/tests/test_management.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `documents.tests.utils.FileSystemAssertsMixin.assertIsFile`", - "severity": "error" - }, - { - "line": 63, - "column": 24, - "stop_line": 63, - "stop_column": 52, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-argument", - "description": "Missing argument `ignore_errors` in function `unittest.case.TestCase.addCleanup`", - "concise_description": "Missing argument `ignore_errors` in function `unittest.case.TestCase.addCleanup`", - "severity": "error" - }, - { - "line": 63, - "column": 24, - "stop_line": 63, - "stop_column": 52, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-argument", - "description": "Missing argument `onerror` in function `unittest.case.TestCase.addCleanup`", - "concise_description": "Missing argument `onerror` in function `unittest.case.TestCase.addCleanup`", - "severity": "error" - }, - { - "line": 188, - "column": 22, - "stop_line": 188, - "stop_column": 27, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", - "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", - "severity": "error" - }, - { - "line": 196, - "column": 28, - "stop_line": 196, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 199, - "column": 18, - "stop_line": 199, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 303, - "column": 28, - "stop_line": 303, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 306, - "column": 18, - "stop_line": 306, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 315, - "column": 28, - "stop_line": 315, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 318, - "column": 18, - "stop_line": 318, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 417, - "column": 28, - "stop_line": 417, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 420, - "column": 18, - "stop_line": 420, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 456, - "column": 28, - "stop_line": 456, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 459, - "column": 18, - "stop_line": 459, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 486, - "column": 28, - "stop_line": 486, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 489, - "column": 18, - "stop_line": 489, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 521, - "column": 28, - "stop_line": 521, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 524, - "column": 18, - "stop_line": 524, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 546, - "column": 24, - "stop_line": 546, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-argument", - "description": "Missing argument `ignore_errors` in function `unittest.case.TestCase.addCleanup`", - "concise_description": "Missing argument `ignore_errors` in function `unittest.case.TestCase.addCleanup`", - "severity": "error" - }, - { - "line": 546, - "column": 24, - "stop_line": 546, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-argument", - "description": "Missing argument `onerror` in function `unittest.case.TestCase.addCleanup`", - "concise_description": "Missing argument `onerror` in function `unittest.case.TestCase.addCleanup`", - "severity": "error" - }, - { - "line": 566, - "column": 28, - "stop_line": 566, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 569, - "column": 18, - "stop_line": 569, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 574, - "column": 22, - "stop_line": 574, - "stop_column": 27, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", - "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", - "severity": "error" - }, - { - "line": 598, - "column": 28, - "stop_line": 598, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 601, - "column": 18, - "stop_line": 601, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 609, - "column": 26, - "stop_line": 609, - "stop_column": 31, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", - "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", - "severity": "error" - }, - { - "line": 637, - "column": 28, - "stop_line": 637, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 640, - "column": 18, - "stop_line": 640, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 654, - "column": 22, - "stop_line": 654, - "stop_column": 27, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", - "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", - "severity": "error" - }, - { - "line": 735, - "column": 28, - "stop_line": 735, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 738, - "column": 18, - "stop_line": 738, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 781, - "column": 28, - "stop_line": 781, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 784, - "column": 18, - "stop_line": 784, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 829, - "column": 28, - "stop_line": 829, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 832, - "column": 18, - "stop_line": 832, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 865, - "column": 28, - "stop_line": 865, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 868, - "column": 18, - "stop_line": 868, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 895, - "column": 28, - "stop_line": 895, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 898, - "column": 18, - "stop_line": 898, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 925, - "column": 28, - "stop_line": 925, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 928, - "column": 18, - "stop_line": 928, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 965, - "column": 28, - "stop_line": 965, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 968, - "column": 18, - "stop_line": 968, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 988, - "column": 28, - "stop_line": 988, - "stop_column": 47, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 991, - "column": 18, - "stop_line": 991, - "stop_column": 37, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 1000, - "column": 13, - "stop_line": 1000, - "stop_column": 54, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `QuerySet` has no attribute `hard_delete`", - "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", - "severity": "error" - }, - { - "line": 1035, - "column": 23, - "stop_line": 1035, - "stop_column": 42, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 1038, - "column": 13, - "stop_line": 1038, - "stop_column": 32, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 1048, - "column": 23, - "stop_line": 1048, - "stop_column": 42, - "path": "src/documents/tests/test_management_exporter.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 43, - "column": 21, - "stop_line": 43, - "stop_column": 42, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 62, - "column": 25, - "stop_line": 62, - "stop_column": 46, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 70, - "column": 21, - "stop_line": 70, - "stop_column": 42, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 89, - "column": 25, - "stop_line": 89, - "stop_column": 46, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 100, - "column": 21, - "stop_line": 100, - "stop_column": 42, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 217, - "column": 10, - "stop_line": 217, - "stop_column": 33, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 219, - "column": 10, - "stop_line": 219, - "stop_column": 33, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 227, - "column": 21, - "stop_line": 227, - "stop_column": 42, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 256, - "column": 21, - "stop_line": 256, - "stop_column": 42, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 293, - "column": 21, - "stop_line": 293, - "stop_column": 42, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 314, - "column": 10, - "stop_line": 314, - "stop_column": 31, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 321, - "column": 21, - "stop_line": 321, - "stop_column": 42, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 341, - "column": 10, - "stop_line": 341, - "stop_column": 31, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 342, - "column": 10, - "stop_line": 342, - "stop_column": 31, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 351, - "column": 21, - "stop_line": 351, - "stop_column": 42, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 372, - "column": 20, - "stop_line": 372, - "stop_column": 41, - "path": "src/documents/tests/test_management_importer.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 58, - "column": 12, - "stop_line": 58, - "stop_column": 25, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[StoragePathFactory, StoragePathFactory, StoragePathFactory]` is not assignable to declared return type `tuple[StoragePath, StoragePath, StoragePath]`", - "concise_description": "Returned type `tuple[StoragePathFactory, StoragePathFactory, StoragePathFactory]` is not assignable to declared return type `tuple[StoragePath, StoragePath, StoragePath]`", - "severity": "error" - }, - { - "line": 69, - "column": 12, - "stop_line": 69, - "stop_column": 68, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[TagFactory, TagFactory, TagFactory, TagFactory, TagFactory]` is not assignable to declared return type `tuple[Tag, Tag, Tag, Tag, Tag]`", - "concise_description": "Returned type `tuple[TagFactory, TagFactory, TagFactory, TagFactory, TagFactory]` is not assignable to declared return type `tuple[Tag, Tag, Tag, Tag, Tag]`", - "severity": "error" - }, - { - "line": 83, - "column": 12, - "stop_line": 83, - "stop_column": 29, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[CorrespondentFactory, CorrespondentFactory]` is not assignable to declared return type `tuple[Correspondent, Correspondent]`", - "concise_description": "Returned type `tuple[CorrespondentFactory, CorrespondentFactory]` is not assignable to declared return type `tuple[Correspondent, Correspondent]`", - "severity": "error" - }, - { - "line": 97, - "column": 12, - "stop_line": 97, - "stop_column": 31, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[DocumentTypeFactory, DocumentTypeFactory]` is not assignable to declared return type `tuple[DocumentType, DocumentType]`", - "concise_description": "Returned type `tuple[DocumentTypeFactory, DocumentTypeFactory]` is not assignable to declared return type `tuple[DocumentType, DocumentType]`", - "severity": "error" - }, - { - "line": 116, - "column": 5, - "stop_line": 116, - "stop_column": 12, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `tags`", - "concise_description": "Object of class `DocumentFactory` has no attribute `tags`", - "severity": "error" - }, - { - "line": 117, - "column": 5, - "stop_line": 117, - "stop_column": 12, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `tags`", - "concise_description": "Object of class `DocumentFactory` has no attribute `tags`", - "severity": "error" - }, - { - "line": 119, - "column": 12, - "stop_line": 119, - "stop_column": 26, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `tuple[DocumentFactory, DocumentFactory, DocumentFactory, DocumentFactory]` is not assignable to declared return type `tuple[Document, Document, Document, Document]`", - "concise_description": "Returned type `tuple[DocumentFactory, DocumentFactory, DocumentFactory, DocumentFactory]` is not assignable to declared return type `tuple[Document, Document, Document, Document]`", - "severity": "error" - }, - { - "line": 265, - "column": 9, - "stop_line": 265, - "stop_column": 28, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 337, - "column": 9, - "stop_line": 337, - "stop_column": 28, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 416, - "column": 9, - "stop_line": 416, - "stop_column": 28, - "path": "src/documents/tests/test_management_retagger.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `DocumentFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 89, - "column": 9, - "stop_line": 89, - "stop_column": 34, - "path": "src/documents/tests/test_migration_sha256_checksums.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `TestMigrations` has no attribute `_fixture_teardown`", - "concise_description": "Object of class `TestMigrations` has no attribute `_fixture_teardown`", - "severity": "error" - }, - { - "line": 25, - "column": 30, - "stop_line": 25, - "stop_column": 74, - "path": "src/documents/tests/test_models.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `correspondent`", - "concise_description": "Object of class `NoneType` has no attribute `correspondent`", - "severity": "error" - }, - { - "line": 30, - "column": 27, - "stop_line": 30, - "stop_column": 71, - "path": "src/documents/tests/test_models.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `correspondent`", - "concise_description": "Object of class `NoneType` has no attribute `correspondent`", - "severity": "error" - }, - { - "line": 38, - "column": 17, - "stop_line": 38, - "stop_column": 73, - "path": "src/documents/tests/test_parsers.py", - "code": -2, - "name": "not-callable", - "description": "Expected a callable, got `None`", - "concise_description": "Expected a callable, got `None`", - "severity": "error" - }, - { - "line": 62, - "column": 17, - "stop_line": 62, - "stop_column": 73, - "path": "src/documents/tests/test_parsers.py", - "code": -2, - "name": "not-callable", - "description": "Expected a callable, got `None`", - "concise_description": "Expected a callable, got `None`", - "severity": "error" - }, - { - "line": 96, - "column": 21, - "stop_line": 96, - "stop_column": 77, - "path": "src/documents/tests/test_parsers.py", - "code": -2, - "name": "not-callable", - "description": "Expected a callable, got `None`", - "concise_description": "Expected a callable, got `None`", - "severity": "error" - }, - { - "line": 132, - "column": 14, - "stop_line": 132, - "stop_column": 37, - "path": "src/documents/tests/test_sanity_check.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 151, - "column": 24, - "stop_line": 151, - "stop_column": 47, - "path": "src/documents/tests/test_sanity_check.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 164, - "column": 14, - "stop_line": 164, - "stop_column": 37, - "path": "src/documents/tests/test_sanity_check.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 127, - "column": 28, - "stop_line": 127, - "stop_column": 47, - "path": "src/documents/tests/test_share_link_bundles.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 141, - "column": 28, - "stop_line": 141, - "stop_column": 54, - "path": "src/documents/tests/test_share_link_bundles.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `_MonkeyPatchedResponse` has no attribute `streaming_content`", - "concise_description": "Object of class `_MonkeyPatchedResponse` has no attribute `streaming_content`", - "severity": "error" - }, - { - "line": 202, - "column": 29, - "stop_line": 202, - "stop_column": 48, - "path": "src/documents/tests/test_share_link_bundles.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 206, - "column": 28, - "stop_line": 206, - "stop_column": 47, - "path": "src/documents/tests/test_share_link_bundles.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 440, - "column": 30, - "stop_line": 440, - "stop_column": 49, - "path": "src/documents/tests/test_share_link_bundles.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 443, - "column": 26, - "stop_line": 443, - "stop_column": 59, - "path": "src/documents/tests/test_share_link_bundles.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `resolve`", - "concise_description": "Object of class `NoneType` has no attribute `resolve`", - "severity": "error" - }, - { - "line": 96, - "column": 23, - "stop_line": 96, - "stop_column": 35, - "path": "src/documents/tests/test_tag_hierarchy.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "severity": "error" - }, - { - "line": 109, - "column": 23, - "stop_line": 109, - "stop_column": 35, - "path": "src/documents/tests/test_tag_hierarchy.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "severity": "error" - }, - { - "line": 196, - "column": 9, - "stop_line": 196, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 198, - "column": 16, - "stop_line": 198, - "stop_column": 33, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `date_started`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `date_started`", - "severity": "error" - }, - { - "line": 216, - "column": 16, - "stop_line": 220, - "stop_column": 10, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `PaperlessTaskFactory` is not assignable to declared return type `PaperlessTask`", - "concise_description": "Returned type `PaperlessTaskFactory` is not assignable to declared return type `PaperlessTask`", - "severity": "error" - }, - { - "line": 309, - "column": 9, - "stop_line": 309, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 311, - "column": 16, - "stop_line": 311, - "stop_column": 46, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 312, - "column": 16, - "stop_line": 312, - "stop_column": 49, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 313, - "column": 16, - "stop_line": 313, - "stop_column": 30, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `date_done`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `date_done`", - "severity": "error" - }, - { - "line": 334, - "column": 9, - "stop_line": 334, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 335, - "column": 16, - "stop_line": 335, - "stop_column": 47, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "not-iterable", - "description": "`in` is not supported between `Literal['traceback']` and `None`", - "concise_description": "`in` is not supported between `Literal['traceback']` and `None`", - "severity": "error" - }, - { - "line": 336, - "column": 20, - "stop_line": 336, - "stop_column": 49, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 353, - "column": 9, - "stop_line": 353, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 354, - "column": 16, - "stop_line": 354, - "stop_column": 37, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `duration_seconds`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `duration_seconds`", - "severity": "error" - }, - { - "line": 355, - "column": 16, - "stop_line": 355, - "stop_column": 38, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `wait_time_seconds`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `wait_time_seconds`", - "severity": "error" - }, - { - "line": 371, - "column": 9, - "stop_line": 371, - "stop_column": 29, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 373, - "column": 16, - "stop_line": 373, - "stop_column": 30, - "path": "src/documents/tests/test_task_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessTaskFactory` has no attribute `date_done`", - "concise_description": "Object of class `PaperlessTaskFactory` has no attribute `date_done`", - "severity": "error" - }, - { - "line": 228, - "column": 19, - "stop_line": 228, - "stop_column": 40, - "path": "src/documents/tests/test_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 237, - "column": 27, - "stop_line": 237, - "stop_column": 48, - "path": "src/documents/tests/test_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `archive_dir`", - "concise_description": "Class `dirs` has no class attribute `archive_dir`", - "severity": "error" - }, - { - "line": 269, - "column": 19, - "stop_line": 269, - "stop_column": 40, - "path": "src/documents/tests/test_tasks.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 46, - "column": 26, - "stop_line": 46, - "stop_column": 38, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", - "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", - "severity": "error" - }, - { - "line": 71, - "column": 17, - "stop_line": 71, - "stop_column": 53, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 75, - "column": 17, - "stop_line": 75, - "stop_column": 52, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 79, - "column": 17, - "stop_line": 79, - "stop_column": 52, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 83, - "column": 17, - "stop_line": 83, - "stop_column": 54, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 87, - "column": 17, - "stop_line": 87, - "stop_column": 49, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 102, - "column": 9, - "stop_line": 102, - "stop_column": 24, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `app_logo`", - "concise_description": "Object of class `NoneType` has no attribute `app_logo`", - "severity": "error" - }, - { - "line": 103, - "column": 9, - "stop_line": 103, - "stop_column": 20, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `save`", - "concise_description": "Object of class `NoneType` has no attribute `save`", - "severity": "error" - }, - { - "line": 108, - "column": 26, - "stop_line": 108, - "stop_column": 41, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `app_logo`", - "concise_description": "Object of class `NoneType` has no attribute `app_logo`", - "severity": "error" - }, - { - "line": 125, - "column": 44, - "stop_line": 125, - "stop_column": 67, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 164, - "column": 9, - "stop_line": 164, - "stop_column": 24, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", - "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", - "severity": "error" - }, - { - "line": 173, - "column": 9, - "stop_line": 173, - "stop_column": 24, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", - "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", - "severity": "error" - }, - { - "line": 374, - "column": 13, - "stop_line": 377, - "stop_column": 26, - "path": "src/documents/tests/test_views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `suggestions`", - "concise_description": "Object of class `NoneType` has no attribute `suggestions`", - "severity": "error" - }, - { - "line": 140, - "column": 30, - "stop_line": 140, - "stop_column": 51, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 176, - "column": 13, - "stop_line": 176, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 207, - "column": 25, - "stop_line": 209, - "stop_column": 26, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", - "severity": "error" - }, - { - "line": 224, - "column": 25, - "stop_line": 226, - "stop_column": 26, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", - "severity": "error" - }, - { - "line": 235, - "column": 26, - "stop_line": 235, - "stop_column": 48, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 239, - "column": 21, - "stop_line": 239, - "stop_column": 43, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 288, - "column": 13, - "stop_line": 288, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 319, - "column": 25, - "stop_line": 321, - "stop_column": 26, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", - "severity": "error" - }, - { - "line": 336, - "column": 25, - "stop_line": 338, - "stop_column": 26, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", - "severity": "error" - }, - { - "line": 363, - "column": 30, - "stop_line": 363, - "stop_column": 51, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 407, - "column": 13, - "stop_line": 407, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 459, - "column": 29, - "stop_line": 459, - "stop_column": 50, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 476, - "column": 13, - "stop_line": 476, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 529, - "column": 13, - "stop_line": 529, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 552, - "column": 28, - "stop_line": 552, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 555, - "column": 46, - "stop_line": 555, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 561, - "column": 28, - "stop_line": 561, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 564, - "column": 46, - "stop_line": 564, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 570, - "column": 45, - "stop_line": 570, - "stop_column": 59, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `str` has no attribute `name`", - "concise_description": "Object of class `str` has no attribute `name`", - "severity": "error" - }, - { - "line": 606, - "column": 13, - "stop_line": 606, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 629, - "column": 28, - "stop_line": 629, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 632, - "column": 46, - "stop_line": 632, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 638, - "column": 28, - "stop_line": 638, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 641, - "column": 46, - "stop_line": 641, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 685, - "column": 13, - "stop_line": 685, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 709, - "column": 28, - "stop_line": 709, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 712, - "column": 46, - "stop_line": 712, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 718, - "column": 28, - "stop_line": 718, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 721, - "column": 46, - "stop_line": 721, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 763, - "column": 13, - "stop_line": 763, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 786, - "column": 28, - "stop_line": 786, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 789, - "column": 46, - "stop_line": 789, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 795, - "column": 28, - "stop_line": 795, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 798, - "column": 46, - "stop_line": 798, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 874, - "column": 13, - "stop_line": 874, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 889, - "column": 26, - "stop_line": 889, - "stop_column": 48, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 950, - "column": 31, - "stop_line": 950, - "stop_column": 43, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Any | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 1422, - "column": 40, - "stop_line": 1422, - "stop_column": 46, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`\n Protocol `Container` requires attribute `__contains__`", - "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", - "severity": "error" - }, - { - "line": 1438, - "column": 35, - "stop_line": 1438, - "stop_column": 41, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`\n Protocol `Container` requires attribute `__contains__`", - "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", - "severity": "error" - }, - { - "line": 1457, - "column": 39, - "stop_line": 1457, - "stop_column": 45, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`\n Protocol `Container` requires attribute `__contains__`", - "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", - "severity": "error" - }, - { - "line": 1922, - "column": 26, - "stop_line": 1922, - "stop_column": 43, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1947, - "column": 13, - "stop_line": 1947, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 2006, - "column": 26, - "stop_line": 2006, - "stop_column": 43, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 2055, - "column": 43, - "stop_line": 2058, - "stop_column": 10, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2059, - "column": 45, - "stop_line": 2062, - "stop_column": 10, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2070, - "column": 38, - "stop_line": 2070, - "stop_column": 64, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2833, - "column": 26, - "stop_line": 2833, - "stop_column": 43, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 2836, - "column": 38, - "stop_line": 2836, - "stop_column": 64, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2904, - "column": 26, - "stop_line": 2904, - "stop_column": 43, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 2907, - "column": 38, - "stop_line": 2907, - "stop_column": 64, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 2971, - "column": 13, - "stop_line": 2971, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 3006, - "column": 25, - "stop_line": 3008, - "stop_column": 26, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", - "severity": "error" - }, - { - "line": 3023, - "column": 25, - "stop_line": 3025, - "stop_column": 26, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", - "severity": "error" - }, - { - "line": 3034, - "column": 26, - "stop_line": 3034, - "stop_column": 48, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 3095, - "column": 13, - "stop_line": 3095, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 3119, - "column": 28, - "stop_line": 3119, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 3122, - "column": 46, - "stop_line": 3122, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 3128, - "column": 28, - "stop_line": 3128, - "stop_column": 30, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `list.count`", - "concise_description": "Missing positional argument `value` in function `list.count`", - "severity": "error" - }, - { - "line": 3131, - "column": 46, - "stop_line": 3131, - "stop_column": 77, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-assignment", - "description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", - "severity": "error" - }, - { - "line": 3134, - "column": 21, - "stop_line": 3134, - "stop_column": 43, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 3246, - "column": 13, - "stop_line": 3246, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 3258, - "column": 27, - "stop_line": 3258, - "stop_column": 44, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | Unknown` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", - "concise_description": "Argument `str | Unknown` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", - "severity": "error" - }, - { - "line": 3346, - "column": 13, - "stop_line": 3346, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 3384, - "column": 13, - "stop_line": 3384, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 3604, - "column": 13, - "stop_line": 3604, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 3726, - "column": 13, - "stop_line": 3726, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 3975, - "column": 23, - "stop_line": 3975, - "stop_column": 27, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 3993, - "column": 23, - "stop_line": 3993, - "stop_column": 27, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4018, - "column": 27, - "stop_line": 4018, - "stop_column": 31, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4066, - "column": 13, - "stop_line": 4066, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 4115, - "column": 23, - "stop_line": 4115, - "stop_column": 35, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "severity": "error" - }, - { - "line": 4164, - "column": 23, - "stop_line": 4164, - "stop_column": 35, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "severity": "error" - }, - { - "line": 4196, - "column": 23, - "stop_line": 4196, - "stop_column": 35, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", - "severity": "error" - }, - { - "line": 4409, - "column": 13, - "stop_line": 4409, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 4601, - "column": 13, - "stop_line": 4601, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 4665, - "column": 13, - "stop_line": 4665, - "stop_column": 34, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 4714, - "column": 19, - "stop_line": 4714, - "stop_column": 23, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4717, - "column": 16, - "stop_line": 4717, - "stop_column": 48, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `headers`", - "concise_description": "Object of class `NoneType` has no attribute `headers`", - "severity": "error" - }, - { - "line": 4727, - "column": 19, - "stop_line": 4727, - "stop_column": 23, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4730, - "column": 16, - "stop_line": 4730, - "stop_column": 48, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `headers`", - "concise_description": "Object of class `NoneType` has no attribute `headers`", - "severity": "error" - }, - { - "line": 4767, - "column": 23, - "stop_line": 4767, - "stop_column": 27, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4776, - "column": 23, - "stop_line": 4776, - "stop_column": 27, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4795, - "column": 23, - "stop_line": 4795, - "stop_column": 27, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4822, - "column": 23, - "stop_line": 4822, - "stop_column": 27, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4846, - "column": 19, - "stop_line": 4846, - "stop_column": 23, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4851, - "column": 16, - "stop_line": 4851, - "stop_column": 23, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `url`", - "concise_description": "Object of class `NoneType` has no attribute `url`", - "severity": "error" - }, - { - "line": 4852, - "column": 16, - "stop_line": 4852, - "stop_column": 27, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `headers`", - "concise_description": "Object of class `NoneType` has no attribute `headers`", - "severity": "error" - }, - { - "line": 4876, - "column": 23, - "stop_line": 4876, - "stop_column": 27, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4902, - "column": 19, - "stop_line": 4902, - "stop_column": 23, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", - "severity": "error" - }, - { - "line": 4907, - "column": 16, - "stop_line": 4907, - "stop_column": 27, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `headers`", - "concise_description": "Object of class `NoneType` has no attribute `headers`", - "severity": "error" - }, - { - "line": 4908, - "column": 35, - "stop_line": 4908, - "stop_column": 46, - "path": "src/documents/tests/test_workflows.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `headers`", - "concise_description": "Object of class `NoneType` has no attribute `headers`", - "severity": "error" - }, - { - "line": 41, - "column": 22, - "stop_line": 41, - "stop_column": 35, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `data_dir`", - "concise_description": "Class `dirs` has no class attribute `data_dir`", - "severity": "error" - }, - { - "line": 42, - "column": 26, - "stop_line": 42, - "stop_column": 40, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 43, - "column": 26, - "stop_line": 43, - "stop_column": 40, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 44, - "column": 24, - "stop_line": 44, - "stop_column": 38, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 45, - "column": 24, - "stop_line": 45, - "stop_column": 37, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `data_dir`", - "concise_description": "Class `dirs` has no class attribute `data_dir`", - "severity": "error" - }, - { - "line": 47, - "column": 5, - "stop_line": 47, - "stop_column": 19, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `index_dir`", - "concise_description": "Class `dirs` has no class attribute `index_dir`", - "severity": "error" - }, - { - "line": 48, - "column": 5, - "stop_line": 48, - "stop_column": 23, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 49, - "column": 5, - "stop_line": 49, - "stop_column": 23, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `thumbnail_dir`", - "concise_description": "Class `dirs` has no class attribute `thumbnail_dir`", - "severity": "error" - }, - { - "line": 50, - "column": 5, - "stop_line": 50, - "stop_column": 21, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `archive_dir`", - "concise_description": "Class `dirs` has no class attribute `archive_dir`", - "severity": "error" - }, - { - "line": 51, - "column": 5, - "stop_line": 51, - "stop_column": 21, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `logging_dir`", - "concise_description": "Class `dirs` has no class attribute `logging_dir`", - "severity": "error" - }, - { - "line": 54, - "column": 18, - "stop_line": 54, - "stop_column": 31, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `data_dir`", - "concise_description": "Class `dirs` has no class attribute `data_dir`", - "severity": "error" - }, - { - "line": 55, - "column": 21, - "stop_line": 55, - "stop_column": 37, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `scratch_dir`", - "concise_description": "Class `dirs` has no class attribute `scratch_dir`", - "severity": "error" - }, - { - "line": 56, - "column": 20, - "stop_line": 56, - "stop_column": 34, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 57, - "column": 23, - "stop_line": 57, - "stop_column": 41, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `originals_dir`", - "concise_description": "Class `dirs` has no class attribute `originals_dir`", - "severity": "error" - }, - { - "line": 58, - "column": 23, - "stop_line": 58, - "stop_column": 41, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `thumbnail_dir`", - "concise_description": "Class `dirs` has no class attribute `thumbnail_dir`", - "severity": "error" - }, - { - "line": 59, - "column": 21, - "stop_line": 59, - "stop_column": 37, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `archive_dir`", - "concise_description": "Class `dirs` has no class attribute `archive_dir`", - "severity": "error" - }, - { - "line": 60, - "column": 25, - "stop_line": 60, - "stop_column": 45, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `consumption_dir`", - "concise_description": "Class `dirs` has no class attribute `consumption_dir`", - "severity": "error" - }, - { - "line": 61, - "column": 21, - "stop_line": 61, - "stop_column": 37, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `logging_dir`", - "concise_description": "Class `dirs` has no class attribute `logging_dir`", - "severity": "error" - }, - { - "line": 62, - "column": 19, - "stop_line": 62, - "stop_column": 33, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `index_dir`", - "concise_description": "Class `dirs` has no class attribute `index_dir`", - "severity": "error" - }, - { - "line": 63, - "column": 21, - "stop_line": 63, - "stop_column": 36, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `static_dir`", - "concise_description": "Class `dirs` has no class attribute `static_dir`", - "severity": "error" - }, - { - "line": 64, - "column": 20, - "stop_line": 64, - "stop_column": 33, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `data_dir`", - "concise_description": "Class `dirs` has no class attribute `data_dir`", - "severity": "error" - }, - { - "line": 65, - "column": 20, - "stop_line": 65, - "stop_column": 34, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `media_dir`", - "concise_description": "Class `dirs` has no class attribute `media_dir`", - "severity": "error" - }, - { - "line": 67, - "column": 5, - "stop_line": 67, - "stop_column": 27, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `dirs` has no class attribute `settings_override`", - "concise_description": "Class `dirs` has no class attribute `settings_override`", - "severity": "error" - }, - { - "line": 164, - "column": 9, - "stop_line": 164, - "stop_column": 22, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `setUp`", - "concise_description": "Object of class `object` has no attribute `setUp`", - "severity": "error" - }, - { - "line": 169, - "column": 9, - "stop_line": 169, - "stop_column": 25, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `tearDown`", - "concise_description": "Object of class `object` has no attribute `tearDown`", - "severity": "error" - }, - { - "line": 180, - "column": 9, - "stop_line": 180, - "stop_column": 24, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", - "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", - "severity": "error" - }, - { - "line": 183, - "column": 9, - "stop_line": 183, - "stop_column": 25, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertFalse`", - "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertFalse`", - "severity": "error" - }, - { - "line": 186, - "column": 9, - "stop_line": 186, - "stop_column": 24, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", - "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", - "severity": "error" - }, - { - "line": 189, - "column": 9, - "stop_line": 189, - "stop_column": 25, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertFalse`", - "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertFalse`", - "severity": "error" - }, - { - "line": 203, - "column": 9, - "stop_line": 203, - "stop_column": 25, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertEqual`", - "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertEqual`", - "severity": "error" - }, - { - "line": 207, - "column": 9, - "stop_line": 207, - "stop_column": 24, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", - "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertTrue`", - "severity": "error" - }, - { - "line": 209, - "column": 9, - "stop_line": 209, - "stop_column": 25, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `FileSystemAssertsMixin` has no attribute `assertEqual`", - "concise_description": "Object of class `FileSystemAssertsMixin` has no attribute `assertEqual`", - "severity": "error" - }, - { - "line": 227, - "column": 9, - "stop_line": 227, - "stop_column": 22, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `setUp`", - "concise_description": "Object of class `object` has no attribute `setUp`", - "severity": "error" - }, - { - "line": 230, - "column": 9, - "stop_line": 230, - "stop_column": 25, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `tearDown`", - "concise_description": "Object of class `object` has no attribute `tearDown`", - "severity": "error" - }, - { - "line": 245, - "column": 9, - "stop_line": 245, - "stop_column": 22, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `setUp`", - "concise_description": "Object of class `object` has no attribute `setUp`", - "severity": "error" - }, - { - "line": 248, - "column": 9, - "stop_line": 248, - "stop_column": 25, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `tearDown`", - "concise_description": "Object of class `object` has no attribute `tearDown`", - "severity": "error" - }, - { - "line": 272, - "column": 16, - "stop_line": 272, - "stop_column": 74, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `name`", - "concise_description": "Object of class `NoneType` has no attribute `name`", - "severity": "error" - }, - { - "line": 353, - "column": 13, - "stop_line": 353, - "stop_column": 22, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `GetConsumerMixin` has no attribute `dirs`", - "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", - "severity": "error" - }, - { - "line": 361, - "column": 13, - "stop_line": 361, - "stop_column": 22, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `GetConsumerMixin` has no attribute `dirs`", - "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", - "severity": "error" - }, - { - "line": 369, - "column": 13, - "stop_line": 369, - "stop_column": 22, - "path": "src/documents/tests/utils.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `GetConsumerMixin` has no attribute `dirs`", - "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", - "severity": "error" - }, - { - "line": 86, - "column": 34, - "stop_line": 86, - "stop_column": 45, - "path": "src/documents/utils.py", - "code": -2, - "name": "bad-assignment", - "description": "`float | int | None` is not assignable to attribute `MAX_IMAGE_PIXELS` with type `int | None`", - "concise_description": "`float | int | None` is not assignable to attribute `MAX_IMAGE_PIXELS` with type `int | None`", - "severity": "error" - }, - { - "line": 289, - "column": 31, - "stop_line": 289, - "stop_column": 57, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `username`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `username`", - "severity": "error" - }, - { - "line": 290, "column": 32, - "stop_line": 290, - "stop_column": 63, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `get_full_name`\nObject of class `AnonymousUser` has no attribute `get_full_name`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `get_full_name`\nObject of class `AnonymousUser` has no attribute `get_full_name`", + "path": "src/documents/tests/search/test_cjk_clause.py", + "name": "bad-argument-type", + "concise_description": "Argument `TestCjkParseFailureDegradesGracefully.test_a_cjk_run_tantivy_cannot_parse_drops_the_clause_only._RaisingIndex` is not assignable to parameter `index` with type `Index` in function `documents.search._query._parse_cjk_text`", "severity": "error" }, { - "line": 345, - "column": 17, - "stop_line": 345, - "stop_column": 30, - "path": "src/documents/views.py", - "code": -2, + "column": 33, + "path": "src/documents/tests/search/test_cjk_clause.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `index` with type `Index` in function `documents.search._query._build_cjk_query`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/tests/search/test_cjk_emit_registry.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", + "severity": "error" + }, + { + "column": 20, + "path": "src/documents/tests/search/test_cjk_emit_registry.py", "name": "missing-attribute", - "description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", - "concise_description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 377, "column": 19, - "stop_line": 377, - "stop_column": 49, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `get_serializer_context`", - "concise_description": "Object of class `object` has no attribute `get_serializer_context`", + "path": "src/documents/tests/search/test_cjk_leaf_rewrite.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", "severity": "error" }, { - "line": 380, - "column": 21, - "stop_line": 380, - "stop_column": 33, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BulkPermissionMixin` has no attribute `request`", - "concise_description": "Object of class `BulkPermissionMixin` has no attribute `request`", - "severity": "error" - }, - { - "line": 395, - "column": 24, - "stop_line": 395, - "stop_column": 44, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BulkPermissionMixin` has no attribute `filter_queryset`", - "concise_description": "Object of class `BulkPermissionMixin` has no attribute `filter_queryset`", - "severity": "error" - }, - { - "line": 395, - "column": 45, - "stop_line": 395, - "stop_column": 62, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BulkPermissionMixin` has no attribute `get_queryset`", - "concise_description": "Object of class `BulkPermissionMixin` has no attribute `get_queryset`", - "severity": "error" - }, - { - "line": 397, - "column": 22, - "stop_line": 397, - "stop_column": 35, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", - "concise_description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", - "severity": "error" - }, - { - "line": 499, - "column": 29, - "stop_line": 499, - "stop_column": 51, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `annotate`", - "concise_description": "Object of class `NoneType` has no attribute `annotate`", - "severity": "error" - }, - { - "line": 505, - "column": 25, - "stop_line": 505, - "stop_column": 47, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `annotate`", - "concise_description": "Object of class `NoneType` has no attribute `annotate`", - "severity": "error" - }, - { - "line": 930, - "column": 48, - "stop_line": 930, - "stop_column": 64, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Correspondent` has no attribute `document_count`", - "concise_description": "Object of class `Correspondent` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 933, - "column": 48, - "stop_line": 933, - "stop_column": 64, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Tag` has no attribute `document_count`", - "concise_description": "Object of class `Tag` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 936, - "column": 48, - "stop_line": 936, - "stop_column": 64, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentType` has no attribute `document_count`", - "concise_description": "Object of class `DocumentType` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 939, - "column": 48, - "stop_line": 939, - "stop_column": 64, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `StoragePath` has no attribute `document_count`", - "concise_description": "Object of class `StoragePath` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 942, - "column": 48, - "stop_line": 942, - "stop_column": 64, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CustomField` has no attribute `document_count`", - "concise_description": "Object of class `CustomField` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 1115, - "column": 9, - "stop_line": 1115, - "stop_column": 16, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-override", - "description": "Class member `DocumentViewSet.destroy` overrides parent class `DestroyModelMixin` in an inconsistent manner\n `DocumentViewSet.destroy` has type `(self: DocumentViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response`, which is not assignable to `(self: DocumentViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `DestroyModelMixin.destroy`\n Signature mismatch:\n ...umentViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n ...umentViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", - "concise_description": "Class member `DocumentViewSet.destroy` overrides parent class `DestroyModelMixin` in an inconsistent manner", - "severity": "error" - }, - { - "line": 1269, - "column": 37, - "stop_line": 1269, - "stop_column": 54, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `list[MetadataEntry] | list[Unknown] | None` is not assignable to parameter `original_metadata` with type `list[Unknown]` in function `documents.caching.set_metadata_cache`", - "concise_description": "Argument `list[MetadataEntry] | list[Unknown] | None` is not assignable to parameter `original_metadata` with type `list[Unknown]` in function `documents.caching.set_metadata_cache`", - "severity": "error" - }, - { - "line": 1383, - "column": 45, - "stop_line": 1383, - "stop_column": 57, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Any | None` is not assignable to parameter `filename` with type `str` in function `documents.plugins.date_parsing.base.DateParserPluginBase.parse`", - "concise_description": "Argument `Any | None` is not assignable to parameter `filename` with type `str` in function `documents.plugins.date_parsing.base.DateParserPluginBase.parse`", - "severity": "error" - }, - { - "line": 1396, - "column": 61, - "stop_line": 1396, - "stop_column": 71, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", - "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", - "severity": "error" - }, - { - "line": 1398, - "column": 56, - "stop_line": 1398, - "stop_column": 66, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", - "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", - "severity": "error" - }, - { - "line": 1400, - "column": 63, - "stop_line": 1400, - "stop_column": 73, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", - "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", - "severity": "error" - }, - { - "line": 1403, - "column": 62, - "stop_line": 1403, - "stop_column": 72, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", - "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", - "severity": "error" - }, - { - "line": 1517, - "column": 21, - "stop_line": 1517, - "stop_column": 48, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `log_create`", - "concise_description": "Object of class `Manager` has no attribute `log_create`", - "severity": "error" - }, - { - "line": 1559, - "column": 17, - "stop_line": 1559, - "stop_column": 44, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `log_create`", - "concise_description": "Object of class `Manager` has no attribute `log_create`", - "severity": "error" - }, - { - "line": 1586, - "column": 5, - "stop_line": 1586, - "stop_column": 62, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-specialization", - "description": "`(self: Self@DocumentViewSet, request: Unknown, pk: Unknown | None = None) -> HttpResponseForbidden | Response | None` is not assignable to upper bound `(...) -> HttpResponseBase` of type variable `_View`", - "concise_description": "`(self: Self@DocumentViewSet, request: Unknown, pk: Unknown | None = None) -> HttpResponseForbidden | Response | None` is not assignable to upper bound `(...) -> HttpResponseBase` of type variable `_View`", - "severity": "error" - }, - { - "line": 1643, - "column": 26, - "stop_line": 1643, - "stop_column": 57, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `get_for_object`", - "concise_description": "Object of class `Manager` has no attribute `get_for_object`", - "severity": "error" - }, - { - "line": 1649, - "column": 22, - "stop_line": 1649, - "stop_column": 54, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `get_for_objects`", - "concise_description": "Object of class `Manager` has no attribute `get_for_objects`", - "severity": "error" - }, - { - "line": 1650, - "column": 13, - "stop_line": 1650, - "stop_column": 30, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 1688, - "column": 36, - "stop_line": 1688, - "stop_column": 64, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-argument", - "description": "Missing argument `request` in function `DocumentViewSet.email_documents`", - "concise_description": "Missing argument `request` in function `DocumentViewSet.email_documents`", - "severity": "error" - }, - { - "line": 1728, - "column": 30, - "stop_line": 1728, - "stop_column": 45, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.mail.EmailAttachment.__init__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `Path` in function `documents.mail.EmailAttachment.__init__`", - "severity": "error" - }, - { - "line": 1897, - "column": 13, - "stop_line": 1897, - "stop_column": 40, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `log_create`", - "concise_description": "Object of class `Manager` has no attribute `log_create`", - "severity": "error" - }, - { - "line": 1976, - "column": 13, - "stop_line": 1976, - "stop_column": 40, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `log_create`", - "concise_description": "Object of class `Manager` has no attribute `log_create`", - "severity": "error" - }, - { - "line": 2052, - "column": 70, - "stop_line": 2052, - "stop_column": 79, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `QuerySet[Any, Any] | list[Document]` is not assignable to parameter `documents` with type `list[Document]` in function `paperless_ai.chat.stream_chat_with_documents`", - "concise_description": "Argument `QuerySet[Any, Any] | list[Document]` is not assignable to parameter `documents` with type `list[Document]` in function `paperless_ai.chat.stream_chat_with_documents`", - "severity": "error" - }, - { - "line": 2121, - "column": 9, - "stop_line": 2121, - "stop_column": 13, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-override", - "description": "Class member `UnifiedSearchViewSet.list` overrides parent class `DocumentViewSet` in an inconsistent manner\n `UnifiedSearchViewSet.list` has type `(self: UnifiedSearchViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | HttpResponseForbidden | Response`, which is not assignable to `(self: UnifiedSearchViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> Response`, the type of `DocumentViewSet.list`\n Signature mismatch:\n ...s: Unknown, **kwargs: Unknown) -> Response: ...\n ^ return type\n ...s: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | HttpResponseForbidden | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return type", - "concise_description": "Class member `UnifiedSearchViewSet.list` overrides parent class `DocumentViewSet` in an inconsistent manner", - "severity": "error" - }, - { - "line": 2160, - "column": 17, - "stop_line": 2160, - "stop_column": 45, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BasePagination` has no attribute `get_page_size`\nObject of class `NoneType` has no attribute `get_page_size`", - "concise_description": "Object of class `BasePagination` has no attribute `get_page_size`\nObject of class `NoneType` has no attribute `get_page_size`", - "severity": "error" - }, - { - "line": 2160, - "column": 58, - "stop_line": 2160, - "stop_column": 82, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BasePagination` has no attribute `page_size`\nObject of class `NoneType` has no attribute `page_size`", - "concise_description": "Object of class `BasePagination` has no attribute `page_size`\nObject of class `NoneType` has no attribute `page_size`", - "severity": "error" - }, - { - "line": 2298, - "column": 43, - "stop_line": 2298, - "stop_column": 45, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `TantivyRelevanceList` is not assignable to parameter `queryset` with type `QuerySet[Any, @_]` in function `rest_framework.generics.GenericAPIView.paginate_queryset`", - "concise_description": "Argument `TantivyRelevanceList` is not assignable to parameter `queryset` with type `QuerySet[Any, @_]` in function `rest_framework.generics.GenericAPIView.paginate_queryset`", - "severity": "error" - }, - { - "line": 2343, - "column": 25, - "stop_line": 2343, - "stop_column": 36, - "path": "src/documents/views.py", - "code": -2, - "name": "unsupported-operation", - "description": "`+` is not supported between `None` and `Literal[1]`\n Argument `None` is not assignable to parameter `value` with type `int` in function `int.__radd__`", - "concise_description": "`+` is not supported between `None` and `Literal[1]`", - "severity": "error" - }, - { - "line": 2572, - "column": 18, - "stop_line": 2572, - "stop_column": 35, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", - "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", - "severity": "error" - }, - { - "line": 2593, - "column": 18, - "stop_line": 2593, - "stop_column": 22, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", - "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", - "severity": "error" - }, - { - "line": 2676, - "column": 18, - "stop_line": 2676, - "stop_column": 22, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", - "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", - "severity": "error" - }, - { - "line": 2688, - "column": 18, - "stop_line": 2688, - "stop_column": 22, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", - "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", - "severity": "error" - }, - { - "line": 2717, - "column": 33, - "stop_line": 2717, - "stop_column": 46, - "path": "src/documents/views.py", - "code": -2, - "name": "unbound-name", - "description": "`old_documents` may be uninitialized", - "concise_description": "`old_documents` may be uninitialized", - "severity": "error" - }, - { - "line": 2727, - "column": 21, - "stop_line": 2727, - "stop_column": 48, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Manager` has no attribute `log_create`", - "concise_description": "Object of class `Manager` has no attribute `log_create`", - "severity": "error" - }, - { - "line": 3108, - "column": 52, - "stop_line": 3108, - "stop_column": 68, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Correspondent` has no attribute `document_count`", - "concise_description": "Object of class `Correspondent` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 3112, - "column": 52, - "stop_line": 3112, - "stop_column": 68, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Tag` has no attribute `document_count`", - "concise_description": "Object of class `Tag` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 3115, - "column": 52, - "stop_line": 3115, - "stop_column": 68, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentType` has no attribute `document_count`", - "concise_description": "Object of class `DocumentType` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 3118, - "column": 52, - "stop_line": 3118, - "stop_column": 68, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `StoragePath` has no attribute `document_count`", - "concise_description": "Object of class `StoragePath` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 3122, - "column": 52, - "stop_line": 3122, - "stop_column": 68, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CustomField` has no attribute `document_count`", - "concise_description": "Object of class `CustomField` has no attribute `document_count`", - "severity": "error" - }, - { - "line": 3175, - "column": 65, - "stop_line": 3175, - "stop_column": 69, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `AbstractBaseUser | AnonymousUser | None` is not assignable to parameter `user` with type `AbstractBaseUser | None` in function `documents.search._backend.TantivyBackend.autocomplete`", - "concise_description": "Argument `AbstractBaseUser | AnonymousUser | None` is not assignable to parameter `user` with type `AbstractBaseUser | None` in function `documents.search._backend.TantivyBackend.autocomplete`", - "severity": "error" - }, - { - "line": 3906, - "column": 9, - "stop_line": 3906, - "stop_column": 29, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-override", - "description": "Class member `TasksViewSet.get_serializer_class` overrides parent class `ReadOnlyModelViewSet` in an inconsistent manner\n `TasksViewSet.get_serializer_class` has type `(self: TasksViewSet) -> type[TaskSerializerV10] | type[TaskSerializerV9]`, which is not assignable to `(self: TasksViewSet) -> type[BaseSerializer[PaperlessTask]]`, the type of `ReadOnlyModelViewSet.get_serializer_class`\n Signature mismatch:\n expected: def get_serializer_class(self: TasksViewSet) -> type[BaseSerializer[PaperlessTask]]: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n found: def get_serializer_class(self: TasksViewSet) -> type[TaskSerializerV10] | type[TaskSerializerV9]: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return type", - "concise_description": "Class member `TasksViewSet.get_serializer_class` overrides parent class `ReadOnlyModelViewSet` in an inconsistent manner", - "severity": "error" - }, - { - "line": 3914, - "column": 12, - "stop_line": 3914, - "stop_column": 38, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `is_staff`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_staff`", - "severity": "error" - }, - { - "line": 3998, - "column": 44, - "stop_line": 3998, - "stop_column": 48, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `QuerySet[PaperlessTask, dict[str, Any]]` is not assignable to parameter `instance` with type `dict[str, Any] | None` in function `rest_framework.serializers.BaseSerializer.__init__`", - "concise_description": "Argument `QuerySet[PaperlessTask, dict[str, Any]]` is not assignable to parameter `instance` with type `dict[str, Any] | None` in function `rest_framework.serializers.BaseSerializer.__init__`", - "severity": "error" - }, - { - "line": 4352, - "column": 24, - "stop_line": 4352, - "stop_column": 51, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BaseSerializer` has no attribute `get_object_class`", - "concise_description": "Object of class `BaseSerializer` has no attribute `get_object_class`", - "severity": "error" - }, - { - "line": 4371, - "column": 17, - "stop_line": 4371, - "stop_column": 21, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.get_objects_for_user_owner_aware`", - "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.get_objects_for_user_owner_aware`", - "severity": "error" - }, - { - "line": 4396, - "column": 16, - "stop_line": 4396, - "stop_column": 33, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", - "severity": "error" - }, - { - "line": 4398, - "column": 25, - "stop_line": 4398, - "stop_column": 38, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `has_perm`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `has_perm`", - "severity": "error" - }, - { - "line": 4453, - "column": 9, - "stop_line": 4453, - "stop_column": 23, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-override", - "description": "Class member `WorkflowTriggerViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner\n `WorkflowTriggerViewSet.partial_update` has type `(self: WorkflowTriggerViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response`, which is not assignable to `(self: WorkflowTriggerViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `ModelViewSet.partial_update`\n Signature mismatch:\n ...iggerViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n ...iggerViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", - "concise_description": "Class member `WorkflowTriggerViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner", - "severity": "error" - }, - { - "line": 4478, - "column": 9, - "stop_line": 4478, - "stop_column": 23, - "path": "src/documents/views.py", - "code": -2, - "name": "bad-override", - "description": "Class member `WorkflowActionViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner\n `WorkflowActionViewSet.partial_update` has type `(self: WorkflowActionViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response`, which is not assignable to `(self: WorkflowActionViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `ModelViewSet.partial_update`\n Signature mismatch:\n ...ctionViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n ...ctionViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseBadRequest | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", - "concise_description": "Class member `WorkflowActionViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner", - "severity": "error" - }, - { - "line": 4690, - "column": 36, - "stop_line": 4690, - "stop_column": 52, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `keys`", - "concise_description": "Object of class `NoneType` has no attribute `keys`", - "severity": "error" - }, - { - "line": 4691, - "column": 33, - "stop_line": 4691, - "stop_column": 56, - "path": "src/documents/views.py", - "code": -2, - "name": "unsupported-operation", - "description": "`None` is not subscriptable", - "concise_description": "`None` is not subscriptable", - "severity": "error" - }, - { - "line": 4816, "column": 40, - "stop_line": 4816, - "stop_column": 54, - "path": "src/documents/views.py", - "code": -2, - "name": "unbound-name", - "description": "`all_migrations` may be uninitialized", - "concise_description": "`all_migrations` may be uninitialized", + "path": "src/documents/tests/search/test_cjk_widening.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "severity": "error" }, { - "line": 4824, - "column": 38, - "stop_line": 4824, - "stop_column": 51, - "path": "src/documents/views.py", - "code": -2, - "name": "unbound-name", - "description": "`celery_active` may be uninitialized", - "concise_description": "`celery_active` may be uninitialized", + "column": 40, + "path": "src/documents/tests/search/test_date_keyword_timezone.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "severity": "error" }, { - "line": 4893, - "column": 16, - "stop_line": 4893, - "stop_column": 31, - "path": "src/documents/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `app_logo`", - "concise_description": "Object of class `NoneType` has no attribute `app_logo`", + "column": 40, + "path": "src/documents/tests/search/test_fuzzy_scoring.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "severity": "error" }, { - "line": 38, - "column": 22, - "stop_line": 38, - "stop_column": 36, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `title`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `title`", + "column": 40, + "path": "src/documents/tests/search/test_fuzzy_widening.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "severity": "error" }, { - "line": 39, - "column": 80, - "stop_line": 39, - "stop_column": 91, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `pk`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", - "severity": "error" - }, - { - "line": 40, - "column": 30, - "stop_line": 40, - "stop_column": 57, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `name`", - "concise_description": "Object of class `object` has no attribute `name`", - "severity": "error" - }, - { - "line": 41, - "column": 16, - "stop_line": 41, - "stop_column": 38, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `correspondent`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `correspondent`", - "severity": "error" - }, - { - "line": 43, - "column": 30, - "stop_line": 43, - "stop_column": 57, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `name`", - "concise_description": "Object of class `object` has no attribute `name`", - "severity": "error" - }, - { - "line": 44, - "column": 16, - "stop_line": 44, - "stop_column": 38, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `document_type`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `document_type`", - "severity": "error" - }, - { - "line": 46, - "column": 31, - "stop_line": 46, - "stop_column": 54, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `username`", - "concise_description": "Object of class `object` has no attribute `username`", - "severity": "error" - }, - { - "line": 46, - "column": 58, - "stop_line": 46, - "stop_column": 72, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `owner`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `owner`", - "severity": "error" - }, - { - "line": 47, "column": 25, - "stop_line": 47, - "stop_column": 51, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `original_filename`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `original_filename`", - "severity": "error" - }, - { - "line": 48, - "column": 33, - "stop_line": 48, - "stop_column": 50, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `filename`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `filename`", - "severity": "error" - }, - { - "line": 49, - "column": 41, - "stop_line": 49, - "stop_column": 55, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `added`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `added`", - "severity": "error" - }, - { - "line": 50, - "column": 24, - "stop_line": 50, - "stop_column": 40, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `created`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `created`", - "severity": "error" - }, - { - "line": 51, - "column": 19, - "stop_line": 51, - "stop_column": 30, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ConsumableDocument` has no attribute `pk`", - "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", - "severity": "error" - }, - { - "line": 70, - "column": 42, - "stop_line": 70, - "stop_column": 64, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `original_file`", - "concise_description": "Object of class `Document` has no attribute `original_file`", - "severity": "error" - }, - { - "line": 108, - "column": 13, - "stop_line": 108, - "stop_column": 33, - "path": "src/documents/workflows/actions.py", - "code": -2, + "path": "src/documents/tests/search/test_fuzzy_widening.py", "name": "bad-argument-type", - "description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", - "concise_description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", + "concise_description": "Argument `object` is not assignable to parameter `node` with type `Node` in function `whoosh_compat.emitters.tantivy_.emit`", "severity": "error" }, { - "line": 120, - "column": 12, - "stop_line": 120, - "stop_column": 32, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `subject`", - "concise_description": "Object of class `NoneType` has no attribute `subject`", - "severity": "error" - }, - { - "line": 125, - "column": 13, - "stop_line": 125, - "stop_column": 30, - "path": "src/documents/workflows/actions.py", - "code": -2, + "column": 32, + "path": "src/documents/tests/search/test_fuzzy_widening.py", "name": "bad-argument-type", - "description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", - "concise_description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", + "concise_description": "Unpacked keyword argument `object` is not assignable to parameter `index` with type `Index` in function `whoosh_compat.emitters.tantivy_.emit`", + "severity": "error" + }, + { + "column": 32, + "path": "src/documents/tests/search/test_fuzzy_widening.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `object` is not assignable to parameter `registry` with type `FieldRegistry` in function `whoosh_compat.emitters.tantivy_.emit`", + "severity": "error" + }, + { + "column": 32, + "path": "src/documents/tests/search/test_fuzzy_widening.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `object` is not assignable to parameter `rewrite_leaf` with type `((Phrase | Term) -> Node) | None` in function `whoosh_compat.emitters.tantivy_.emit`", + "severity": "error" + }, + { + "column": 22, + "path": "src/documents/tests/search/test_permission_field_isolation.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | None` is not assignable to parameter `target` with type `Group | User` in function `paperless_testing.permissions.grant_object`", "severity": "error" }, { - "line": 137, "column": 12, - "stop_line": 137, - "stop_column": 29, - "path": "src/documents/workflows/actions.py", - "code": -2, + "path": "src/documents/tests/search/test_query.py", "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `body`", - "concise_description": "Object of class `NoneType` has no attribute `body`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 143, - "column": 12, - "stop_line": 143, - "stop_column": 41, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `include_document`", - "concise_description": "Object of class `NoneType` has no attribute `include_document`", - "severity": "error" - }, - { - "line": 176, - "column": 16, - "stop_line": 176, - "stop_column": 31, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `to`", - "concise_description": "Object of class `NoneType` has no attribute `to`", - "severity": "error" - }, - { - "line": 180, "column": 59, - "stop_line": 180, - "stop_column": 74, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `to`", - "concise_description": "Object of class `NoneType` has no attribute `to`", + "path": "src/documents/tests/search/test_query.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "severity": "error" }, { - "line": 199, - "column": 12, - "stop_line": 199, - "stop_column": 37, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `use_params`", - "concise_description": "Object of class `NoneType` has no attribute `use_params`", - "severity": "error" - }, - { - "line": 200, "column": 16, - "stop_line": 200, - "stop_column": 37, - "path": "src/documents/workflows/actions.py", - "code": -2, + "path": "src/documents/tests/search/test_query.py", "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `params`", - "concise_description": "Object of class `NoneType` has no attribute `params`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 202, - "column": 39, - "stop_line": 202, - "stop_column": 66, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `items`", - "concise_description": "Object of class `object` has no attribute `items`", - "severity": "error" - }, - { - "line": 221, - "column": 14, - "stop_line": 221, - "stop_column": 33, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `body`", - "concise_description": "Object of class `NoneType` has no attribute `body`", - "severity": "error" - }, - { - "line": 223, - "column": 17, - "stop_line": 223, - "stop_column": 36, - "path": "src/documents/workflows/actions.py", - "code": -2, + "column": 59, + "path": "src/documents/tests/search/test_query.py", "name": "bad-argument-type", - "description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", - "concise_description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "severity": "error" }, { - "line": 236, - "column": 12, - "stop_line": 236, - "stop_column": 34, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `headers`", - "concise_description": "Object of class `NoneType` has no attribute `headers`", - "severity": "error" - }, - { - "line": 238, - "column": 55, - "stop_line": 238, - "stop_column": 83, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `object` has no attribute `items`", - "concise_description": "Object of class `object` has no attribute `items`", - "severity": "error" - }, - { - "line": 245, - "column": 12, - "stop_line": 245, - "stop_column": 43, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `include_document`", - "concise_description": "Object of class `NoneType` has no attribute `include_document`", - "severity": "error" - }, - { - "line": 258, - "column": 24, - "stop_line": 258, - "stop_column": 42, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `url`", - "concise_description": "Object of class `NoneType` has no attribute `url`", - "severity": "error" - }, - { - "line": 262, - "column": 28, - "stop_line": 262, - "stop_column": 50, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `as_json`", - "concise_description": "Object of class `NoneType` has no attribute `as_json`", - "severity": "error" - }, - { - "line": 266, - "column": 27, - "stop_line": 266, - "stop_column": 45, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `url`", - "concise_description": "Object of class `NoneType` has no attribute `url`", - "severity": "error" - }, - { - "line": 302, - "column": 43, - "stop_line": 302, - "stop_column": 65, - "path": "src/documents/workflows/actions.py", - "code": -2, - "name": "bad-assignment", - "description": "`Unknown | None` is not assignable to `Document`", - "concise_description": "`Unknown | None` is not assignable to `Document`", - "severity": "error" - }, - { - "line": 26, - "column": 8, - "stop_line": 26, - "stop_column": 30, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", - "severity": "error" - }, - { - "line": 64, - "column": 13, - "stop_line": 64, - "stop_column": 41, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", - "severity": "error" - }, - { - "line": 65, - "column": 13, - "stop_line": 65, - "stop_column": 42, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", - "severity": "error" - }, - { - "line": 66, - "column": 13, - "stop_line": 66, - "stop_column": 43, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", - "severity": "error" - }, - { - "line": 67, - "column": 13, - "stop_line": 67, - "stop_column": 44, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", - "severity": "error" - }, - { - "line": 86, - "column": 8, - "stop_line": 86, - "stop_column": 39, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", - "severity": "error" - }, - { - "line": 89, - "column": 27, - "stop_line": 89, - "stop_column": 42, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", - "concise_description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", - "severity": "error" - }, - { - "line": 92, - "column": 35, - "stop_line": 92, - "stop_column": 73, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get`", - "concise_description": "Object of class `NoneType` has no attribute `get`", - "severity": "error" - }, - { - "line": 122, - "column": 8, - "stop_line": 122, - "stop_column": 30, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", - "severity": "error" - }, - { - "line": 149, - "column": 13, - "stop_line": 149, - "stop_column": 41, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", - "severity": "error" - }, - { - "line": 150, - "column": 13, - "stop_line": 150, - "stop_column": 42, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", - "severity": "error" - }, - { - "line": 151, - "column": 13, - "stop_line": 151, - "stop_column": 43, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", - "severity": "error" - }, - { - "line": 152, - "column": 13, - "stop_line": 152, - "stop_column": 44, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", - "severity": "error" - }, - { - "line": 180, - "column": 8, - "stop_line": 180, - "stop_column": 39, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", - "severity": "error" - }, - { - "line": 185, - "column": 27, - "stop_line": 185, - "stop_column": 65, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get`", - "concise_description": "Object of class `NoneType` has no attribute `get`", - "severity": "error" - }, - { - "line": 251, - "column": 13, - "stop_line": 251, - "stop_column": 41, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", - "severity": "error" - }, - { - "line": 252, - "column": 13, - "stop_line": 252, - "stop_column": 42, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", - "severity": "error" - }, - { - "line": 253, - "column": 13, - "stop_line": 253, - "stop_column": 43, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", - "severity": "error" - }, - { - "line": 254, - "column": 13, - "stop_line": 254, - "stop_column": 44, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", - "severity": "error" - }, - { - "line": 267, - "column": 9, - "stop_line": 267, - "stop_column": 74, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `QuerySet` has no attribute `hard_delete`", - "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", - "severity": "error" - }, - { - "line": 268, - "column": 10, - "stop_line": 268, - "stop_column": 41, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", - "severity": "error" - }, - { - "line": 269, - "column": 9, - "stop_line": 272, - "stop_column": 22, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `QuerySet` has no attribute `hard_delete`", - "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", - "severity": "error" - }, - { - "line": 325, - "column": 13, - "stop_line": 325, - "stop_column": 41, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", - "severity": "error" - }, - { - "line": 326, - "column": 13, - "stop_line": 326, - "stop_column": 42, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", - "severity": "error" - }, - { - "line": 327, - "column": 13, - "stop_line": 327, - "stop_column": 43, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", - "severity": "error" - }, - { - "line": 328, - "column": 13, - "stop_line": 328, - "stop_column": 44, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", - "severity": "error" - }, - { - "line": 350, - "column": 10, - "stop_line": 350, - "stop_column": 41, - "path": "src/documents/workflows/mutations.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", - "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", - "severity": "error" - }, - { - "line": 23, - "column": 9, - "stop_line": 23, - "stop_column": 27, - "path": "src/paperless/adapter.py", - "code": -2, - "name": "bad-override", - "description": "Class member `CustomAccountAdapter.is_open_for_signup` overrides parent class `DefaultAccountAdapter` in an inconsistent manner\n `CustomAccountAdapter.is_open_for_signup` has type `(self: CustomAccountAdapter, request: Unknown) -> bool | Any`, which is not assignable to `(self: CustomAccountAdapter, request: Unknown) -> Literal[True]`, the type of `DefaultAccountAdapter.is_open_for_signup`\n Signature mismatch:\n expected: def is_open_for_signup(self: CustomAccountAdapter, request: Unknown) -> Literal[True]: ...\n ^^^^^^^^^^^^^ return type\n found: def is_open_for_signup(self: CustomAccountAdapter, request: Unknown) -> bool | Any: ...\n ^^^^^^^^^^ return type", - "concise_description": "Class member `CustomAccountAdapter.is_open_for_signup` overrides parent class `DefaultAccountAdapter` in an inconsistent manner", - "severity": "error" - }, - { - "line": 58, - "column": 26, - "stop_line": 58, - "stop_column": 50, - "path": "src/paperless/adapter.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get_host`", - "concise_description": "Object of class `NoneType` has no attribute `get_host`", - "severity": "error" - }, - { - "line": 63, - "column": 31, - "stop_line": 63, - "stop_column": 55, - "path": "src/paperless/adapter.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get_host`", - "concise_description": "Object of class `NoneType` has no attribute `get_host`", - "severity": "error" - }, - { - "line": 109, - "column": 9, - "stop_line": 109, - "stop_column": 27, - "path": "src/paperless/adapter.py", - "code": -2, - "name": "bad-override", - "description": "Class member `CustomSocialAccountAdapter.is_open_for_signup` overrides parent class `DefaultSocialAccountAdapter` in an inconsistent manner\n `CustomSocialAccountAdapter.is_open_for_signup` has type `(self: CustomSocialAccountAdapter, request: Unknown, sociallogin: Unknown) -> bool | Any`, which is not assignable to `(self: CustomSocialAccountAdapter, request: Unknown, sociallogin: Unknown) -> Literal[True]`, the type of `DefaultSocialAccountAdapter.is_open_for_signup`\n Signature mismatch:\n expected: def is_open_for_signup(self: CustomSocialAccountAdapter, request: Unknown, sociallogin: Unknown) -> Literal[True]: ...\n ^^^^^^^^^^^^^ return type\n found: def is_open_for_signup(self: CustomSocialAccountAdapter, request: Unknown, sociallogin: Unknown) -> bool | Any: ...\n ^^^^^^^^^^ return type", - "concise_description": "Class member `CustomSocialAccountAdapter.is_open_for_signup` overrides parent class `DefaultSocialAccountAdapter` in an inconsistent manner", - "severity": "error" - }, - { - "line": 30, - "column": 24, - "stop_line": 30, - "stop_column": 40, - "path": "src/paperless/admin.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get`", - "concise_description": "Object of class `NoneType` has no attribute `get`", - "severity": "error" - }, - { - "line": 33, - "column": 17, - "stop_line": 33, - "stop_column": 29, - "path": "src/paperless/admin.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `PaperlessUserForm` has no attribute `request`", - "concise_description": "Object of class `PaperlessUserForm` has no attribute `request`", - "severity": "error" - }, - { - "line": 48, - "column": 9, - "stop_line": 48, - "stop_column": 21, - "path": "src/paperless/admin.py", - "code": -2, - "name": "bad-argument-count", - "description": "Missing positional argument `value` in function `object.__setattr__`", - "concise_description": "Missing positional argument `value` in function `object.__setattr__`", - "severity": "error" - }, - { - "line": 48, - "column": 9, - "stop_line": 48, - "stop_column": 21, - "path": "src/paperless/admin.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['request']` is not assignable to parameter `self` with type `ModelForm[Unknown]` in function `object.__setattr__`", - "concise_description": "Argument `Literal['request']` is not assignable to parameter `self` with type `ModelForm[Unknown]` in function `object.__setattr__`", - "severity": "error" - }, - { - "line": 65, - "column": 20, - "stop_line": 65, - "stop_column": 46, - "path": "src/paperless/auth.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", - "concise_description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", - "severity": "error" - }, - { - "line": 66, "column": 16, - "stop_line": 66, - "stop_column": 41, - "path": "src/paperless/auth.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", - "concise_description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", + "path": "src/documents/tests/search/test_query.py", + "name": "missing-attribute", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 51, - "column": 5, - "stop_line": 51, - "stop_column": 24, - "path": "src/paperless/celery.py", - "code": -2, + "column": 59, + "path": "src/documents/tests/search/test_query.py", "name": "bad-argument-type", - "description": "Argument `(obj: object) -> bytes` is not assignable to parameter `encoder` with type `((Any) -> str) | None` in function `kombu.serialization.register`", - "concise_description": "Argument `(obj: object) -> bytes` is not assignable to parameter `encoder` with type `((Any) -> str) | None` in function `kombu.serialization.register`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "severity": "error" }, { - "line": 52, - "column": 5, - "stop_line": 52, - "stop_column": 24, - "path": "src/paperless/celery.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `(payload: bytes) -> object` is not assignable to parameter `decoder` with type `((str) -> Any) | None` in function `kombu.serialization.register`", - "concise_description": "Argument `(payload: bytes) -> object` is not assignable to parameter `decoder` with type `((str) -> Any) | None` in function `kombu.serialization.register`", - "severity": "error" - }, - { - "line": 91, - "column": 12, - "stop_line": 91, - "stop_column": 26, - "path": "src/paperless/checks.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", - "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", - "severity": "error" - }, - { - "line": 177, - "column": 9, - "stop_line": 179, - "stop_column": 40, - "path": "src/paperless/checks.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `list[Error]` is not assignable to declared return type `list[Error | Warning]`", - "concise_description": "Returned type `list[Error]` is not assignable to declared return type `list[Error | Warning]`", - "severity": "error" - }, - { - "line": 196, - "column": 12, - "stop_line": 196, - "stop_column": 18, - "path": "src/paperless/checks.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", - "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", - "severity": "error" - }, - { - "line": 345, - "column": 26, - "stop_line": 348, - "stop_column": 6, - "path": "src/paperless/checks.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], capture_output=Literal[True])\n Possible overloads:\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: str | None = None, text: Literal[True], timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str, errors: str | None = None, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, *, universal_newlines: Literal[True], startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: Literal[False] | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: None = None, errors: None = None, input: Buffer | None = None, text: Literal[False] | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[bytes] [closest match]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: Buffer | str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[Any]", - "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], capture_output=Literal[True])", - "severity": "error" - }, - { - "line": 367, "column": 16, - "stop_line": 367, - "stop_column": 20, - "path": "src/paperless/checks.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", - "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", + "path": "src/documents/tests/search/test_query.py", + "name": "missing-attribute", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 379, - "column": 21, - "stop_line": 383, - "stop_column": 22, - "path": "src/paperless/checks.py", - "code": -2, + "column": 59, + "path": "src/documents/tests/search/test_query.py", "name": "bad-argument-type", - "description": "Argument `Error` is not assignable to parameter `object` with type `Warning` in function `list.append`", - "concise_description": "Argument `Error` is not assignable to parameter `object` with type `Warning` in function `list.append`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "severity": "error" }, { - "line": 386, - "column": 12, - "stop_line": 386, - "stop_column": 16, - "path": "src/paperless/checks.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", - "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", - "severity": "error" - }, - { - "line": 27, "column": 16, - "stop_line": 27, - "stop_column": 26, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `ApplicationConfiguration | None` is not assignable to declared return type `ApplicationConfiguration`", - "concise_description": "Returned type `ApplicationConfiguration | None` is not assignable to declared return type `ApplicationConfiguration`", - "severity": "error" - }, - { - "line": 41, - "column": 28, - "stop_line": 43, - "stop_column": 10, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`OutputTypeChoices | str` is not assignable to attribute `output_type` with type `OutputTypeChoices`", - "concise_description": "`OutputTypeChoices | str` is not assignable to attribute `output_type` with type `OutputTypeChoices`", - "severity": "error" - }, - { - "line": 75, - "column": 21, - "stop_line": 75, - "stop_column": 70, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`ModeChoices | str` is not assignable to attribute `mode` with type `ModeChoices`", - "concise_description": "`ModeChoices | str` is not assignable to attribute `mode` with type `ModeChoices`", - "severity": "error" - }, - { - "line": 77, - "column": 13, - "stop_line": 78, - "stop_column": 78, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`ArchiveFileGenerationChoices | str` is not assignable to attribute `archive_file_generation` with type `ArchiveFileGenerationChoices`", - "concise_description": "`ArchiveFileGenerationChoices | str` is not assignable to attribute `archive_file_generation` with type `ArchiveFileGenerationChoices`", - "severity": "error" - }, - { - "line": 81, - "column": 22, - "stop_line": 81, - "stop_column": 82, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`CleanChoices | str` is not assignable to attribute `clean` with type `CleanChoices`", - "concise_description": "`CleanChoices | str` is not assignable to attribute `clean` with type `CleanChoices`", - "severity": "error" - }, - { - "line": 97, - "column": 13, - "stop_line": 98, - "stop_column": 75, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`ColorConvertChoices | str` is not assignable to attribute `color_conversion_strategy` with type `ColorConvertChoices`", - "concise_description": "`ColorConvertChoices | str` is not assignable to attribute `color_conversion_strategy` with type `ColorConvertChoices`", - "severity": "error" - }, - { - "line": 184, - "column": 26, - "stop_line": 184, - "stop_column": 54, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`str | None` is not assignable to attribute `app_title` with type `str`", - "concise_description": "`str | None` is not assignable to attribute `app_title` with type `str`", - "severity": "error" - }, - { - "line": 185, - "column": 25, - "stop_line": 185, - "stop_column": 81, - "path": "src/paperless/config.py", - "code": -2, - "name": "bad-assignment", - "description": "`Unknown | None` is not assignable to attribute `app_logo` with type `str`", - "concise_description": "`Unknown | None` is not assignable to attribute `app_logo` with type `str`", - "severity": "error" - }, - { - "line": 31, - "column": 12, - "stop_line": 31, - "stop_column": 29, - "path": "src/paperless/consumers.py", - "code": -2, + "path": "src/documents/tests/search/test_query.py", "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 34, - "column": 22, - "stop_line": 34, - "stop_column": 33, - "path": "src/paperless/consumers.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `groups`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", - "severity": "error" - }, - { - "line": 49, - "column": 35, - "stop_line": 49, - "stop_column": 48, - "path": "src/paperless/consumers.py", - "code": -2, + "column": 59, + "path": "src/documents/tests/search/test_query.py", "name": "bad-argument-type", - "description": "Argument `ProgressUpdateData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`\n Field `owner_id` is `NotRequired` and read-write in `PermissionsData`, so it cannot be required in `ProgressUpdateData`", - "concise_description": "Argument `ProgressUpdateData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`", + "concise_description": "Argument `AbstractBaseUser` is not assignable to parameter `user` with type `AbstractUser` in function `documents.search._backend.build_permission_filter`", "severity": "error" }, { - "line": 61, - "column": 35, - "stop_line": 61, - "stop_column": 48, - "path": "src/paperless/consumers.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `DocumentUpdatedData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`\n Field `owner_id` is `NotRequired` and read-write in `PermissionsData`, so it cannot be required in `DocumentUpdatedData`", - "concise_description": "Argument `DocumentUpdatedData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`", - "severity": "error" - }, - { - "line": 31, - "column": 12, - "stop_line": 31, - "stop_column": 15, - "path": "src/paperless/network.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `list[int | str]` is not assignable to declared return type `list[str]`", - "concise_description": "Returned type `list[int | str]` is not assignable to declared return type `list[str]`", - "severity": "error" - }, - { - "line": 404, - "column": 17, - "stop_line": 404, - "stop_column": 70, - "path": "src/paperless/parsers/tesseract.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `pathlib.Path.write_bytes`\n Protocol `Buffer` requires attribute `__buffer__`", - "concise_description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `pathlib.Path.write_bytes`", - "severity": "error" - }, - { - "line": 61, - "column": 38, - "stop_line": 61, - "stop_column": 56, - "path": "src/paperless/parsers/utils.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `pikepdf._core.Object.get` called with arguments: (Literal['/Marked'], Literal[False])\n Possible overloads:\n (key: Name | int | str, default: T | None = ...) -> Object | T | None [closest match]\n (path: _NamePath, default: T | None = ...) -> Object | T | None", - "concise_description": "No matching overload found for function `pikepdf._core.Object.get` called with arguments: (Literal['/Marked'], Literal[False])", - "severity": "error" - }, - { - "line": 39, "column": 16, - "stop_line": 39, - "stop_column": 29, - "path": "src/paperless/serialisers.py", - "code": -2, + "path": "src/documents/tests/search/test_query.py", "name": "missing-attribute", - "description": "Object of class `PasswordValidationMixin` has no attribute `instance`", - "concise_description": "Object of class `PasswordValidationMixin` has no attribute `instance`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 93, - "column": 17, - "stop_line": 93, - "stop_column": 21, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 153, - "column": 17, - "stop_line": 153, - "stop_column": 22, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[Group]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[Group]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 165, - "column": 17, - "stop_line": 165, - "stop_column": 30, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[SocialAccount]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[SocialAccount]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 199, - "column": 17, - "stop_line": 199, - "stop_column": 21, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[User]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 222, - "column": 9, - "stop_line": 222, - "stop_column": 23, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-override", - "description": "Class member `ApplicationConfigurationSerializer.run_validation` overrides parent class `ModelSerializer` in an inconsistent manner\n `ApplicationConfigurationSerializer.run_validation` has type `(self: ApplicationConfigurationSerializer, data: Unknown) -> Any`, which is not assignable to `(self: ApplicationConfigurationSerializer, data: Any = ...) -> Any`, the type of `ModelSerializer.run_validation`\n Signature mismatch:\n expected: def run_validation(self: ApplicationConfigurationSerializer, data: Any = ...) -> Any: ...\n ^^^^^^^^^ parameters\n found: def run_validation(self: ApplicationConfigurationSerializer, data: Unknown) -> Any: ...\n ^^^^^^^ parameters", - "concise_description": "Class member `ApplicationConfigurationSerializer.run_validation` overrides parent class `ModelSerializer` in an inconsistent manner", - "severity": "error" - }, - { - "line": 251, - "column": 28, - "stop_line": 251, - "stop_column": 43, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `UploadedFile` has no attribute `field_name`", - "concise_description": "Object of class `UploadedFile` has no attribute `field_name`", - "severity": "error" - }, - { - "line": 295, - "column": 17, - "stop_line": 295, - "stop_column": 41, - "path": "src/paperless/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[ApplicationConfiguration]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[ApplicationConfiguration]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 277, - "column": 43, - "stop_line": 282, - "stop_column": 6, - "path": "src/paperless/settings/__init__.py", - "code": -2, - "name": "bad-typed-dict-key", - "description": "`dict[str, int | list[str] | str]` is not assignable to TypedDict key `CONFIG` with type `str`", - "concise_description": "`dict[str, int | list[str] | str]` is not assignable to TypedDict key `CONFIG` with type `str`", - "severity": "error" - }, - { - "line": 448, - "column": 30, - "stop_line": 448, - "stop_column": 52, - "path": "src/paperless/settings/__init__.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.append`", - "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.append`", - "severity": "error" - }, - { - "line": 1012, - "column": 39, - "stop_line": 1012, - "stop_column": 74, - "path": "src/paperless/settings/__init__.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `env_ignore` with type `str` in function `paperless.settings.custom.parse_ignore_dates`", - "concise_description": "Argument `str | None` is not assignable to parameter `env_ignore` with type `str` in function `paperless.settings.custom.parse_ignore_dates`", - "severity": "error" - }, - { - "line": 171, - "column": 27, - "stop_line": 171, - "stop_column": 42, - "path": "src/paperless/settings/custom.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `dict[str, float] | str` is not assignable to parameter `key` with type `str` in function `os.getenv`", - "concise_description": "Argument `dict[str, float] | str` is not assignable to parameter `key` with type `str` in function `os.getenv`", - "severity": "error" - }, - { - "line": 179, - "column": 52, - "stop_line": 179, - "stop_column": 63, - "path": "src/paperless/settings/custom.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `dict` has no attribute `split`", - "concise_description": "Object of class `dict` has no attribute `split`", - "severity": "error" - }, - { - "line": 185, - "column": 19, - "stop_line": 185, - "stop_column": 34, - "path": "src/paperless/settings/custom.py", - "code": -2, - "name": "invalid-argument", - "description": "Expected a mapping, got dict[str, float] | str", - "concise_description": "Expected a mapping, got dict[str, float] | str", - "severity": "error" - }, - { - "line": 771, - "column": 12, - "stop_line": 771, - "stop_column": 24, - "path": "src/paperless/tests/parsers/conftest.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `(**django_settings_overrides: Unknown) -> _GeneratorContextManager[RasterisedDocumentParser]` is not assignable to declared return type `(...) -> Generator[RasterisedDocumentParser]`\n Protocol `Generator` requires attribute `__next__`", - "concise_description": "Returned type `(**django_settings_overrides: Unknown) -> _GeneratorContextManager[RasterisedDocumentParser]` is not assignable to declared return type `(...) -> Generator[RasterisedDocumentParser]`", - "severity": "error" - }, - { - "line": 168, - "column": 45, - "stop_line": 168, - "stop_column": 49, - "path": "src/paperless/tests/parsers/test_mail_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['na']` is not assignable to parameter `document_path` with type `Path` in function `paperless.parsers.mail.MailDocumentParser.extract_metadata`", - "concise_description": "Argument `Literal['na']` is not assignable to parameter `document_path` with type `Path` in function `paperless.parsers.mail.MailDocumentParser.extract_metadata`", - "severity": "error" - }, - { - "line": 372, "column": 47, - "stop_line": 372, - "stop_column": 75, - "path": "src/paperless/tests/parsers/test_mail_parser.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `url`", - "concise_description": "Object of class `NoneType` has no attribute `url`", - "severity": "error" - }, - { - "line": 727, - "column": 20, - "stop_line": 727, - "stop_column": 31, - "path": "src/paperless/tests/parsers/test_mail_parser.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `url`", - "concise_description": "Object of class `NoneType` has no attribute `url`", - "severity": "error" - }, - { - "line": 25, - "column": 23, - "stop_line": 36, - "stop_column": 10, - "path": "src/paperless/tests/parsers/test_mail_parser_live.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], check=Literal[True])\n Possible overloads:\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: str | None = None, text: Literal[True], timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str, errors: str | None = None, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, *, universal_newlines: Literal[True], startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[str]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: Literal[False] | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: None = None, errors: None = None, input: Buffer | None = None, text: Literal[False] | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[bytes] [closest match]\n (args: _CMD, bufsize: int = -1, executable: PathLike[bytes] | PathLike[str] | bytes | str | None = None, stdin: _FILE = None, stdout: _FILE = None, stderr: _FILE = None, preexec_fn: (() -> object) | None = None, close_fds: bool = True, shell: bool = False, cwd: PathLike[bytes] | PathLike[str] | bytes | str | None = None, env: Mapping[bytes, StrOrBytesPath] | Mapping[str, StrOrBytesPath] | None = None, universal_newlines: bool | None = None, startupinfo: Any = None, creationflags: int = 0, restore_signals: bool = True, start_new_session: bool = False, pass_fds: Collection[int] = ..., *, capture_output: bool = False, check: bool = False, encoding: str | None = None, errors: str | None = None, input: Buffer | str | None = None, text: bool | None = None, timeout: float | None = None, user: int | str | None = None, group: int | str | None = None, extra_groups: Iterable[int | str] | None = None, umask: int = -1, pipesize: int = -1, process_group: int | None = None) -> CompletedProcess[Any]", - "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], check=Literal[True])", - "severity": "error" - }, - { - "line": 264, - "column": 37, - "stop_line": 264, - "stop_column": 49, - "path": "src/paperless/tests/parsers/test_mail_parser_live.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `pdf_path` with type `Path` in function `extract_text`", - "concise_description": "Argument `Path | None` is not assignable to parameter `pdf_path` with type `Path` in function `extract_text`", - "severity": "error" - }, - { - "line": 401, - "column": 42, - "stop_line": 401, - "stop_column": 46, - "path": "src/paperless/tests/parsers/test_parse_modes.py", - "code": -2, - "name": "bad-assignment", - "description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", - "concise_description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", - "severity": "error" - }, - { - "line": 77, - "column": 34, - "stop_line": 77, - "stop_column": 36, - "path": "src/paperless/tests/parsers/test_remote_parser.py", - "code": -2, - "name": "bad-argument-count", - "description": "Expected 1 more positional argument", - "concise_description": "Expected 1 more positional argument", - "severity": "error" - }, - { - "line": 28, - "column": 24, - "stop_line": 28, - "stop_column": 35, - "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "concise_description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "severity": "error" - }, - { - "line": 29, - "column": 25, - "stop_line": 29, - "stop_column": 37, - "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "concise_description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "severity": "error" - }, - { - "line": 30, - "column": 26, - "stop_line": 30, - "stop_column": 39, - "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "concise_description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "severity": "error" - }, - { - "line": 111, - "column": 28, - "stop_line": 111, - "stop_column": 39, - "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "concise_description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "severity": "error" - }, - { - "line": 112, - "column": 29, - "stop_line": 112, - "stop_column": 41, - "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "concise_description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "severity": "error" - }, - { - "line": 113, - "column": 30, - "stop_line": 113, - "stop_column": 43, - "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "concise_description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", - "severity": "error" - }, - { - "line": 279, - "column": 38, - "stop_line": 279, - "stop_column": 75, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.get_dpi`", - "concise_description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.get_dpi`", - "severity": "error" - }, - { - "line": 290, - "column": 17, - "stop_line": 290, - "stop_column": 65, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.calculate_a4_dpi`", - "concise_description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.calculate_a4_dpi`", - "severity": "error" - }, - { - "line": 410, - "column": 13, - "stop_line": 410, - "stop_column": 40, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "severity": "error" - }, - { - "line": 427, - "column": 13, - "stop_line": 427, - "stop_column": 40, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "severity": "error" - }, - { - "line": 442, - "column": 13, - "stop_line": 442, - "stop_column": 40, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "severity": "error" - }, - { - "line": 455, - "column": 13, - "stop_line": 455, - "stop_column": 40, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "severity": "error" - }, - { - "line": 507, - "column": 13, - "stop_line": 507, - "stop_column": 40, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "severity": "error" - }, - { - "line": 523, - "column": 13, - "stop_line": 523, - "stop_column": 40, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "severity": "error" - }, - { - "line": 593, - "column": 42, - "stop_line": 593, - "stop_column": 46, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-assignment", - "description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", - "concise_description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", - "severity": "error" - }, - { - "line": 1053, - "column": 13, - "stop_line": 1053, - "stop_column": 40, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "concise_description": "Argument `str | None` is not assignable to parameter `content` with type `str` in function `assert_ordered_substrings`", - "severity": "error" - }, - { - "line": 1122, - "column": 14, - "stop_line": 1122, - "stop_column": 37, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1122, - "column": 14, - "stop_line": 1122, - "stop_column": 37, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1149, - "column": 14, - "stop_line": 1149, - "stop_column": 56, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1149, - "column": 14, - "stop_line": 1149, - "stop_column": 56, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1158, - "column": 14, - "stop_line": 1158, - "stop_column": 77, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1158, - "column": 14, - "stop_line": 1158, - "stop_column": 77, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1167, - "column": 14, - "stop_line": 1167, - "stop_column": 77, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1167, - "column": 14, - "stop_line": 1167, - "stop_column": 77, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1188, - "column": 14, - "stop_line": 1188, - "stop_column": 77, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1188, - "column": 14, - "stop_line": 1188, - "stop_column": 77, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1196, - "column": 14, - "stop_line": 1196, - "stop_column": 69, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1196, - "column": 14, - "stop_line": 1196, - "stop_column": 69, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1205, - "column": 14, - "stop_line": 1205, - "stop_column": 70, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__enter__`\n Did you mean `__iter__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 1205, - "column": 14, - "stop_line": 1205, - "stop_column": 70, - "path": "src/paperless/tests/parsers/test_tesseract_parser.py", - "code": -2, - "name": "bad-context-manager", - "description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager\n Object of class `Generator` has no attribute `__exit__`\n Did you mean `__next__`?", - "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", - "severity": "error" - }, - { - "line": 115, - "column": 19, - "stop_line": 115, - "stop_column": 49, - "path": "src/paperless/tests/parsers/test_tika_parser.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`\n Protocol `PathLike` requires attribute `__fspath__`", - "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", - "severity": "error" - }, - { - "line": 25, - "column": 16, - "stop_line": 25, - "stop_column": 30, - "path": "src/paperless/tests/test_celery.py", - "code": -2, + "path": "src/documents/tests/search/test_schema.py", "name": "bad-index", - "description": "Cannot index into `object`\n Object of class `object` has no attribute `__getitem__`", - "concise_description": "Cannot index into `object`", - "severity": "error" - }, - { - "line": 26, - "column": 16, - "stop_line": 26, - "stop_column": 30, - "path": "src/paperless/tests/test_celery.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `object`\n Object of class `object` has no attribute `__getitem__`", - "concise_description": "Cannot index into `object`", - "severity": "error" - }, - { - "line": 296, - "column": 16, - "stop_line": 296, - "stop_column": 39, - "path": "src/paperless/tests/test_checks.py", - "code": -2, - "name": "not-iterable", - "description": "`in` is not supported between `str` and `None`", - "concise_description": "`in` is not supported between `str` and `None`", - "severity": "error" - }, - { - "line": 297, - "column": 16, - "stop_line": 297, - "stop_column": 45, - "path": "src/paperless/tests/test_checks.py", - "code": -2, - "name": "not-iterable", - "description": "`in` is not supported between `str` and `None`", - "concise_description": "`in` is not supported between `str` and `None`", - "severity": "error" - }, - { - "line": 315, - "column": 29, - "stop_line": 315, - "stop_column": 53, - "path": "src/paperless/tests/test_checks.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `str.join` called with arguments: (Generator[str | None])\n Possible overloads:\n (iterable: Iterable[LiteralString], /) -> LiteralString [closest match]\n (iterable: Iterable[str], /) -> str", - "concise_description": "No matching overload found for function `str.join` called with arguments: (Generator[str | None])", - "severity": "error" - }, - { - "line": 345, - "column": 16, - "stop_line": 345, - "stop_column": 56, - "path": "src/paperless/tests/test_checks.py", - "code": -2, - "name": "not-iterable", - "description": "`in` is not supported between `Literal['PAPERLESS_DB_TIMEOUT']` and `None`", - "concise_description": "`in` is not supported between `Literal['PAPERLESS_DB_TIMEOUT']` and `None`", - "severity": "error" - }, - { - "line": 348, - "column": 20, - "stop_line": 348, - "stop_column": 50, - "path": "src/paperless/tests/test_checks.py", - "code": -2, - "name": "not-iterable", - "description": "`not in` is not supported between `str` and `None`", - "concise_description": "`not in` is not supported between `str` and `None`", - "severity": "error" - }, - { - "line": 376, - "column": 16, - "stop_line": 376, - "stop_column": 56, - "path": "src/paperless/tests/test_checks.py", - "code": -2, - "name": "not-iterable", - "description": "`in` is not supported between `Literal['PAPERLESS_DB_OPTIONS']` and `None`", - "concise_description": "`in` is not supported between `Literal['PAPERLESS_DB_OPTIONS']` and `None`", - "severity": "error" - }, - { - "line": 599, - "column": 16, - "stop_line": 599, - "stop_column": 44, - "path": "src/paperless/tests/test_checks.py", - "code": -2, - "name": "not-iterable", - "description": "`in` is not supported between `Literal['v2.20.10']` and `None`", - "concise_description": "`in` is not supported between `Literal['v2.20.10']` and `None`", - "severity": "error" - }, - { - "line": 328, - "column": 35, - "stop_line": 328, - "stop_column": 49, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.LowScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.LowScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", - "severity": "error" - }, - { - "line": 329, - "column": 35, - "stop_line": 329, - "stop_column": 50, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.HighScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.HighScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", - "severity": "error" - }, - { - "line": 355, - "column": 35, - "stop_line": 355, - "stop_column": 50, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestParserRegistryGetParserForFile.test_parser_returning_none_score_is_skipped.DecliningParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_parser_returning_none_score_is_skipped.DecliningParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", - "severity": "error" - }, - { - "line": 381, - "column": 35, - "stop_line": 381, - "stop_column": 49, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", - "severity": "error" - }, - { - "line": 382, - "column": 35, - "stop_line": 382, - "stop_column": 49, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", - "severity": "error" - }, - { - "line": 423, - "column": 35, - "stop_line": 423, - "stop_column": 48, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.BuiltinParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.BuiltinParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", - "severity": "error" - }, - { - "line": 424, - "column": 35, - "stop_line": 424, - "stop_column": 49, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.ExternalParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.ExternalParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", - "severity": "error" - }, - { - "line": 465, - "column": 35, - "stop_line": 465, - "stop_column": 51, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.AcceptingBuiltin]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.AcceptingBuiltin]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", - "severity": "error" - }, - { - "line": 466, - "column": 35, - "stop_line": 466, - "stop_column": 52, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.DecliningExternal]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.DecliningExternal]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", - "severity": "error" - }, - { - "line": 694, - "column": 35, - "stop_line": 694, - "stop_column": 44, - "path": "src/paperless/tests/test_registry.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestLogSummary.test_log_summary_with_external_parsers.ExtParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`\n Protocol `ParserProtocol` requires attribute `can_produce_archive`", - "concise_description": "Argument `type[TestLogSummary.test_log_summary_with_external_parsers.ExtParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", - "severity": "error" - }, - { - "line": 294, - "column": 23, - "stop_line": 294, - "stop_column": 47, - "path": "src/paperless/tests/test_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get`", - "concise_description": "Object of class `NoneType` has no attribute `get`", - "severity": "error" - }, - { - "line": 301, - "column": 23, - "stop_line": 301, - "stop_column": 47, - "path": "src/paperless/tests/test_signals.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `get`", - "concise_description": "Object of class `NoneType` has no attribute `get`", - "severity": "error" - }, - { - "line": 21, - "column": 21, - "stop_line": 21, - "stop_column": 47, - "path": "src/paperless/tests/test_views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `streaming_content`", - "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `streaming_content`", - "severity": "error" - }, - { - "line": 407, - "column": 9, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless/urls.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `django.urls.conf.path` called with arguments: (Literal['ws/status/'], _ASGIApplicationProtocol)\n Possible overloads:\n (route: _StrOrPromise, view: (...) -> HttpResponseBase, kwargs: dict[str, Any] | None = None, name: str | None = None) -> URLPattern [closest match]\n (route: _StrOrPromise, view: (...) -> Coroutine[Any, Any, HttpResponseBase], kwargs: dict[str, Any] | None = None, name: str | None = None) -> URLPattern\n (route: _StrOrPromise, view: tuple[Sequence[URLPattern | URLResolver], str | None, str | None], kwargs: dict[str, Any] | None = None, name: str | None = None) -> URLResolver\n (route: _StrOrPromise, view: Sequence[URLResolver | str], kwargs: dict[str, Any] | None = None, name: str | None = None) -> URLResolver", - "concise_description": "No matching overload found for function `django.urls.conf.path` called with arguments: (Literal['ws/status/'], _ASGIApplicationProtocol)", - "severity": "error" - }, - { - "line": 199, - "column": 20, - "stop_line": 199, - "stop_column": 60, - "path": "src/paperless/validators.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `EllipsisType` has no attribute `lower`", - "concise_description": "Object of class `EllipsisType` has no attribute `lower`", - "severity": "error" - }, - { - "line": 199, - "column": 32, - "stop_line": 199, - "stop_column": 43, - "path": "src/paperless/validators.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Ellipsis | Unknown` is not assignable to parameter `text_or_uri_element` with type `_Element | bytes | str | None` in function `lxml.etree.QName.__init__`", - "concise_description": "Argument `Ellipsis | Unknown` is not assignable to parameter `text_or_uri_element` with type `_Element | bytes | str | None` in function `lxml.etree.QName.__init__`", - "severity": "error" - }, - { - "line": 205, - "column": 38, - "stop_line": 205, - "stop_column": 58, - "path": "src/paperless/validators.py", - "code": -2, - "name": "no-matching-overload", - "description": "No matching overload found for function `str.join` called with arguments: (Iterator[_AnyStr] | Unknown)\n Possible overloads:\n (iterable: Iterable[LiteralString], /) -> LiteralString [closest match]\n (iterable: Iterable[str], /) -> str", - "concise_description": "No matching overload found for function `str.join` called with arguments: (Iterator[_AnyStr] | Unknown)", - "severity": "error" - }, - { - "line": 214, - "column": 38, - "stop_line": 214, - "stop_column": 58, - "path": "src/paperless/validators.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `EllipsisType` has no attribute `items`", - "concise_description": "Object of class `EllipsisType` has no attribute `items`", - "severity": "error" - }, - { - "line": 77, - "column": 23, - "stop_line": 77, - "stop_column": 42, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `paginator`", - "concise_description": "Object of class `NoneType` has no attribute `paginator`", - "severity": "error" - }, - { - "line": 92, - "column": 17, - "stop_line": 92, - "stop_column": 36, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `paginator`", - "concise_description": "Object of class `NoneType` has no attribute `paginator`", - "severity": "error" - }, - { - "line": 95, - "column": 16, - "stop_line": 95, - "stop_column": 35, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `paginator`", - "concise_description": "Object of class `NoneType` has no attribute `paginator`", - "severity": "error" - }, - { - "line": 144, - "column": 9, - "stop_line": 144, - "stop_column": 15, - "path": "src/paperless/views.py", - "code": -2, - "name": "bad-override", - "description": "Class member `UserViewSet.create` overrides parent class `ModelViewSet` in an inconsistent manner\n `UserViewSet.create` has type `(self: UserViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseForbidden | Response`, which is not assignable to `(self: UserViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `ModelViewSet.create`\n Signature mismatch:\n expected: def create(self: UserViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n found: def create(self: UserViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseForbidden | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", - "concise_description": "Class member `UserViewSet.create` overrides parent class `ModelViewSet` in an inconsistent manner", - "severity": "error" - }, - { - "line": 163, - "column": 9, - "stop_line": 163, - "stop_column": 15, - "path": "src/paperless/views.py", - "code": -2, - "name": "bad-override", - "description": "Class member `UserViewSet.update` overrides parent class `ModelViewSet` in an inconsistent manner\n `UserViewSet.update` has type `(self: UserViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseForbidden | Response`, which is not assignable to `(self: UserViewSet, request: Request, *args: Any, **kwargs: Any) -> Response`, the type of `ModelViewSet.update`\n Signature mismatch:\n expected: def update(self: UserViewSet, request: Request, *args: Any, **kwargs: Any) -> Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^ return type\n |\n parameters\n found: def update(self: UserViewSet, request: Unknown, *args: Unknown, **kwargs: Unknown) -> HttpResponseForbidden | Response: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^ return type\n |\n parameters", - "concise_description": "Class member `UserViewSet.update` overrides parent class `ModelViewSet` in an inconsistent manner", - "severity": "error" - }, - { - "line": 255, - "column": 13, - "stop_line": 255, - "stop_column": 30, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `set_password`", - "concise_description": "Object of class `NoneType` has no attribute `set_password`", - "severity": "error" - }, - { - "line": 256, - "column": 13, - "stop_line": 256, - "stop_column": 22, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `save`", - "concise_description": "Object of class `NoneType` has no attribute `save`", - "severity": "error" - }, - { - "line": 260, - "column": 9, - "stop_line": 260, - "stop_column": 18, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `save`", - "concise_description": "Object of class `NoneType` has no attribute `save`", - "severity": "error" - }, - { - "line": 337, - "column": 38, - "stop_line": 337, - "stop_column": 75, - "path": "src/paperless/views.py", - "code": -2, - "name": "bad-assignment", - "description": "`Authenticator | None` is not assignable to `Authenticator`", - "concise_description": "`Authenticator | None` is not assignable to `Authenticator`", - "severity": "error" - }, - { - "line": 339, - "column": 34, - "stop_line": 339, - "stop_column": 65, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `TOTP` has no attribute `get_unused_codes`\nObject of class `WebAuthn` has no attribute `get_unused_codes`", - "concise_description": "Object of class `TOTP` has no attribute `get_unused_codes`\nObject of class `WebAuthn` has no attribute `get_unused_codes`", - "severity": "error" - }, - { - "line": 417, - "column": 13, - "stop_line": 417, - "stop_column": 36, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `ai_enabled`", - "concise_description": "Object of class `NoneType` has no attribute `ai_enabled`", - "severity": "error" - }, - { - "line": 417, - "column": 41, - "stop_line": 417, - "stop_column": 75, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `NoneType` has no attribute `llm_embedding_backend`", - "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_backend`", - "severity": "error" - }, - { - "line": 465, - "column": 23, - "stop_line": 465, - "stop_column": 45, - "path": "src/paperless/views.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `AbstractBaseUser` has no attribute `socialaccount_set`\nObject of class `AnonymousUser` has no attribute `socialaccount_set`", - "concise_description": "Object of class `AbstractBaseUser` has no attribute `socialaccount_set`\nObject of class `AnonymousUser` has no attribute `socialaccount_set`", - "severity": "error" - }, - { - "line": 102, - "column": 30, - "stop_line": 102, - "stop_column": 36, - "path": "src/paperless_ai/ai_classifier.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", - "concise_description": "Argument `str` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", - "severity": "error" - }, - { - "line": 102, - "column": 18, - "stop_line": 102, - "stop_column": 46, - "path": "src/paperless_ai/chat.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Response` has no attribute `response_gen`", - "concise_description": "Object of class `Response` has no attribute `response_gen`", - "severity": "error" - }, - { - "line": 79, - "column": 16, - "stop_line": 79, - "stop_column": 35, - "path": "src/paperless_ai/client.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `dict[str, Any]` is not assignable to declared return type `str`", - "concise_description": "Returned type `dict[str, Any]` is not assignable to declared return type `str`", - "severity": "error" - }, - { - "line": 97, - "column": 21, - "stop_line": 97, - "stop_column": 38, - "path": "src/paperless_ai/embedding.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Document` has no attribute `custom_fields`", - "concise_description": "Object of class `Document` has no attribute `custom_fields`", - "severity": "error" - }, - { - "line": 261, - "column": 46, - "stop_line": 261, - "stop_column": 51, - "path": "src/paperless_ai/indexing.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `remove_document_docstore_nodes`", - "concise_description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `remove_document_docstore_nodes`", - "severity": "error" - }, - { - "line": 274, - "column": 46, - "stop_line": 274, - "stop_column": 51, - "path": "src/paperless_ai/indexing.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `remove_document_docstore_nodes`", - "concise_description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `remove_document_docstore_nodes`", - "severity": "error" - }, - { - "line": 331, - "column": 15, - "stop_line": 331, - "stop_column": 20, - "path": "src/paperless_ai/indexing.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `llama_index.core.indices.vector_store.retrievers.retriever.VectorIndexRetriever.__init__`", - "concise_description": "Argument `BaseIndex[Unknown] | VectorStoreIndex` is not assignable to parameter `index` with type `VectorStoreIndex` in function `llama_index.core.indices.vector_store.retrievers.retriever.VectorIndexRetriever.__init__`", - "severity": "error" - }, - { - "line": 41, - "column": 9, - "stop_line": 41, - "stop_column": 30, - "path": "src/paperless_ai/tests/test_ai_indexing.py", - "code": -2, - "name": "bad-override", - "description": "Class member `FakeEmbedding._aget_query_embedding` overrides parent class `BaseEmbedding` in an inconsistent manner\n `FakeEmbedding._aget_query_embedding` has type `(self: FakeEmbedding, query: str) -> list[float]`, which is not assignable to `(self: FakeEmbedding, query: str) -> Coroutine[Unknown, Unknown, list[float]]`, the type of `BaseEmbedding._aget_query_embedding`\n Signature mismatch:\n expected: def _aget_query_embedding(self: FakeEmbedding, query: str) -> Coroutine[Unknown, Unknown, list[float]]: ...\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ return type\n found: def _aget_query_embedding(self: FakeEmbedding, query: str) -> list[float]: ...\n ^^^^^^^^^^ return type", - "concise_description": "Class member `FakeEmbedding._aget_query_embedding` overrides parent class `BaseEmbedding` in an inconsistent manner", - "severity": "error" - }, - { - "line": 107, - "column": 12, - "stop_line": 107, - "stop_column": 27, - "path": "src/paperless_ai/tests/test_client.py", - "code": -2, - "name": "bad-index", - "description": "Cannot index into `str`\n No matching overload found for function `str.__getitem__` called with arguments: (Literal['title'])\n Possible overloads:\n (key: SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | Unknown | None], /) -> LiteralString\n (key: SupportsIndex | slice[SupportsIndex | None, SupportsIndex | None, SupportsIndex | Unknown | None], /) -> str [closest match]", "concise_description": "Cannot index into `str`", "severity": "error" }, { - "line": 38, - "column": 49, - "stop_line": 38, - "stop_column": 53, - "path": "src/paperless_ai/tests/test_matching.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", - "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", + "column": 40, + "path": "src/documents/tests/search/test_schema_fingerprint.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `SettingsWrapper` from `pytest_django.fixtures`", "severity": "error" }, { - "line": 46, - "column": 59, - "stop_line": 46, - "stop_column": 63, - "path": "src/paperless_ai/tests/test_matching.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_correspondents_by_name`", - "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_correspondents_by_name`", - "severity": "error" - }, - { - "line": 54, - "column": 59, - "stop_line": 54, - "stop_column": 63, - "path": "src/paperless_ai/tests/test_matching.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_document_types_by_name`", - "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_document_types_by_name`", - "severity": "error" - }, - { - "line": 62, - "column": 58, - "stop_line": 62, - "stop_column": 62, - "path": "src/paperless_ai/tests/test_matching.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_storage_paths_by_name`", - "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_storage_paths_by_name`", - "severity": "error" - }, - { - "line": 76, - "column": 37, - "stop_line": 76, - "stop_column": 42, - "path": "src/paperless_ai/tests/test_matching.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `list[str | None]` is not assignable to parameter `names` with type `list[str]` in function `paperless_ai.matching.match_tags_by_name`", - "concise_description": "Argument `list[str | None]` is not assignable to parameter `names` with type `list[str]` in function `paperless_ai.matching.match_tags_by_name`", - "severity": "error" - }, - { - "line": 76, - "column": 49, - "stop_line": 76, - "stop_column": 53, - "path": "src/paperless_ai/tests/test_matching.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", - "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", - "severity": "error" - }, - { - "line": 83, - "column": 49, - "stop_line": 83, - "stop_column": 53, - "path": "src/paperless_ai/tests/test_matching.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", - "concise_description": "Argument `None` is not assignable to parameter `user` with type `User` in function `paperless_ai.matching.match_tags_by_name`", - "severity": "error" - }, - { - "line": 168, - "column": 26, - "stop_line": 168, - "stop_column": 30, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-assignment", - "description": "`None` is not assignable to attribute `color` with type `str`", - "concise_description": "`None` is not assignable to attribute `color` with type `str`", - "severity": "error" - }, - { - "line": 185, - "column": 64, - "stop_line": 185, - "stop_column": 76, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Unknown | None` is not assignable to parameter `*args` with type `str` in function `imaplib.IMAP4.uid`", - "concise_description": "Argument `Unknown | None` is not assignable to parameter `*args` with type `str` in function `imaplib.IMAP4.uid`", - "severity": "error" - }, - { - "line": 197, - "column": 33, - "stop_line": 197, - "stop_column": 70, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `list[str] | list[Unknown] | None` is not assignable to parameter `flag_set` with type `Iterable[str] | str` in function `imap_tools.mailbox.BaseMailBox.flag`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Argument `list[str] | list[Unknown] | None` is not assignable to parameter `flag_set` with type `Iterable[str] | str` in function `imap_tools.mailbox.BaseMailBox.flag`", - "severity": "error" - }, - { - "line": 275, - "column": 53, - "stop_line": 275, - "stop_column": 74, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `BaseMailAction.post_consume`", - "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `BaseMailAction.post_consume`", - "severity": "error" - }, - { - "line": 376, - "column": 13, - "stop_line": 376, - "stop_column": 34, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `TagMailAction.__init__`", - "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `TagMailAction.__init__`", - "severity": "error" - }, - { - "line": 393, - "column": 30, - "stop_line": 393, - "stop_column": 46, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "unsupported-operation", - "description": "Cannot set item in `dict[str, date]`\n Argument `str` is not assignable to parameter `value` with type `date` in function `dict.__setitem__`", - "concise_description": "Cannot set item in `dict[str, date]`", - "severity": "error" - }, - { - "line": 395, - "column": 27, - "stop_line": 395, - "stop_column": 41, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "unsupported-operation", - "description": "Cannot set item in `dict[str, date]`\n Argument `str` is not assignable to parameter `value` with type `date` in function `dict.__setitem__`", - "concise_description": "Cannot set item in `dict[str, date]`", - "severity": "error" - }, - { - "line": 397, - "column": 32, - "stop_line": 397, - "stop_column": 51, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "unsupported-operation", - "description": "Cannot set item in `dict[str, date]`\n Argument `str` is not assignable to parameter `value` with type `date` in function `dict.__setitem__`", - "concise_description": "Cannot set item in `dict[str, date]`", - "severity": "error" - }, - { - "line": 399, - "column": 29, - "stop_line": 399, - "stop_column": 45, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "unsupported-operation", - "description": "Cannot set item in `dict[str, date]`\n Argument `str` is not assignable to parameter `value` with type `date` in function `dict.__setitem__`", - "concise_description": "Cannot set item in `dict[str, date]`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 407, - "column": 38, - "stop_line": 407, - "stop_column": 49, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`\n Protocol `Iterable` requires attribute `__iter__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 411, - "column": 32, - "stop_line": 411, - "stop_column": 43, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", - "severity": "error" - }, - { - "line": 437, "column": 12, - "stop_line": 437, - "stop_column": 19, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "bad-return", - "description": "Returned type `MailBox | MailBoxStartTls | MailBoxUnencrypted` is not assignable to declared return type `MailBox`", - "concise_description": "Returned type `MailBox | MailBoxStartTls | MailBoxUnencrypted` is not assignable to declared return type `MailBox`", + "path": "src/documents/tests/search/test_schema_fingerprint.py", + "name": "bad-index", + "concise_description": "Cannot index into `str`", "severity": "error" }, { - "line": 577, - "column": 54, - "stop_line": 577, - "stop_column": 67, - "path": "src/paperless_mail/mail.py", - "code": -2, + "column": 16, + "path": "src/documents/tests/search/test_schema_fingerprint.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `typing.MutableMapping.update` called with arguments: (dict[str, object])", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/search/test_tokenizer.py", "name": "missing-attribute", - "description": "Object of class `MailAccount` has no attribute `rules`", - "concise_description": "Object of class `MailAccount` has no attribute `rules`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 580, - "column": 29, - "stop_line": 580, - "stop_column": 42, - "path": "src/paperless_mail/mail.py", - "code": -2, + "column": 16, + "path": "src/documents/tests/search/test_tokenizer.py", "name": "missing-attribute", - "description": "Object of class `MailAccount` has no attribute `rules`", - "concise_description": "Object of class `MailAccount` has no attribute `rules`", + "concise_description": "Object of class `SearchResult` has no attribute `count`", "severity": "error" }, { - "line": 626, - "column": 31, - "stop_line": 626, - "stop_column": 52, - "path": "src/paperless_mail/mail.py", - "code": -2, + "column": 16, + "path": "src/documents/tests/search/test_tokenizer.py", + "name": "missing-attribute", + "concise_description": "Object of class `SearchResult` has no attribute `count`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/search/test_tokenizer.py", + "name": "missing-attribute", + "concise_description": "Object of class `SearchResult` has no attribute `count`", + "severity": "error" + }, + { + "column": 38, + "path": "src/documents/tests/search/test_widen_leaf.py", "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.insert`", - "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.insert`", + "concise_description": "Argument `Node | None` is not assignable to parameter `child` with type `Node` in function `whoosh_compat.ast.Boosted.__init__`", "severity": "error" }, { - "line": 633, - "column": 44, - "stop_line": 633, - "stop_column": 50, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "unbound-name", - "description": "`folder` is uninitialized", - "concise_description": "`folder` is uninitialized", - "severity": "error" - }, - { - "line": 966, - "column": 40, - "stop_line": 966, - "stop_column": 60, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Message` has no attribute `_headers`", - "concise_description": "Object of class `Message` has no attribute `_headers`", - "severity": "error" - }, - { - "line": 970, - "column": 32, - "stop_line": 970, - "stop_column": 52, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Message` has no attribute `_headers`", - "concise_description": "Object of class `Message` has no attribute `_headers`", - "severity": "error" - }, - { - "line": 971, - "column": 32, - "stop_line": 971, - "stop_column": 52, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Message` has no attribute `_headers`", - "concise_description": "Object of class `Message` has no attribute `_headers`", - "severity": "error" - }, - { - "line": 972, - "column": 17, - "stop_line": 972, - "stop_column": 37, - "path": "src/paperless_mail/mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Message` has no attribute `_headers`", - "concise_description": "Object of class `Message` has no attribute `_headers`", - "severity": "error" - }, - { - "line": 986, - "column": 27, - "stop_line": 986, - "stop_column": 40, - "path": "src/paperless_mail/mail.py", - "code": -2, + "column": 22, + "path": "src/documents/tests/search/test_widen_leaf.py", "name": "bad-argument-type", - "description": "Argument `str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", - "concise_description": "Argument `str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", + "concise_description": "Argument `tuple[Term, Node | None]` is not assignable to parameter `children` with type `tuple[Node, ...]` in function `whoosh_compat.ast.Or.__init__`", "severity": "error" }, { - "line": 97, - "column": 39, - "stop_line": 97, - "stop_column": 60, - "path": "src/paperless_mail/oauth.py", - "code": -2, + "column": 51, + "path": "src/documents/tests/search/test_widen_leaf.py", "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", - "concise_description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", + "concise_description": "Argument `tuple[Term, Node | None]` is not assignable to parameter `children` with type `tuple[Node, ...]` in function `whoosh_compat.ast.Or.__init__`", "severity": "error" }, { - "line": 103, - "column": 39, - "stop_line": 103, - "stop_column": 60, - "path": "src/paperless_mail/oauth.py", - "code": -2, + "column": 22, + "path": "src/documents/tests/search/test_widen_leaf.py", "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", - "concise_description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", + "concise_description": "Argument `tuple[Term, Node | None]` is not assignable to parameter `children` with type `tuple[Node, ...]` in function `whoosh_compat.ast.Or.__init__`", "severity": "error" }, { - "line": 106, - "column": 35, - "stop_line": 106, - "stop_column": 41, - "path": "src/paperless_mail/oauth.py", - "code": -2, - "name": "unbound-name", - "description": "`result` may be uninitialized", - "concise_description": "`result` may be uninitialized", + "column": 26, + "path": "src/documents/tests/test_admin.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", "severity": "error" }, { - "line": 73, - "column": 71, - "stop_line": 73, - "stop_column": 99, - "path": "src/paperless_mail/preprocessor.py", - "code": -2, + "column": 16, + "path": "src/documents/tests/test_admin.py", "name": "missing-attribute", - "description": "Object of class `Crypt` has no attribute `stderr`", - "concise_description": "Object of class `Crypt` has no attribute `stderr`", + "concise_description": "Object of class `ModelForm` has no attribute `request`", "severity": "error" }, { - "line": 31, - "column": 17, - "stop_line": 31, - "stop_column": 28, - "path": "src/paperless_mail/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[MailAccount]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[MailAccount]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 78, - "column": 17, - "stop_line": 78, - "stop_column": 25, - "path": "src/paperless_mail/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[MailRule]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[MailRule]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 154, - "column": 17, - "stop_line": 154, - "stop_column": 30, - "path": "src/paperless_mail/serialisers.py", - "code": -2, - "name": "bad-assignment", - "description": "`type[ProcessedMail]` is not assignable to attribute `model` with type `type[_MT]`", - "concise_description": "`type[ProcessedMail]` is not assignable to attribute `model` with type `type[_MT]`", - "severity": "error" - }, - { - "line": 23, - "column": 11, - "stop_line": 23, - "stop_column": 18, - "path": "src/paperless_mail/tests/conftest.py", - "code": -2, - "name": "invalid-yield", - "description": "Yielded type `MailAccountFactory` is not assignable to declared yield type `MailAccount`", - "concise_description": "Yielded type `MailAccountFactory` is not assignable to declared yield type `MailAccount`", - "severity": "error" - }, - { - "line": 24, - "column": 5, - "stop_line": 24, - "stop_column": 19, - "path": "src/paperless_mail/tests/conftest.py", - "code": -2, + "column": 9, + "path": "src/documents/tests/test_admin.py", "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `delete`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `delete`", + "concise_description": "Object of class `ModelForm` has no attribute `request`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_admin.py", + "name": "missing-attribute", + "concise_description": "Object of class `ModelForm` has no attribute `request`", + "severity": "error" + }, + { + "column": 30, + "path": "src/documents/tests/test_api_app_config.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `path`", "severity": "error" }, { - "line": 124, "column": 31, - "stop_line": 124, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, + "path": "src/documents/tests/test_api_app_config.py", "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", + "concise_description": "Object of class `NoneType` has no attribute `path`", "severity": "error" }, { - "line": 144, - "column": 31, - "stop_line": 144, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 153, - "column": 56, - "stop_line": 153, - "stop_column": 67, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 158, - "column": 31, - "stop_line": 158, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 167, - "column": 56, - "stop_line": 167, - "stop_column": 67, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 243, - "column": 27, - "stop_line": 243, - "stop_column": 37, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 290, - "column": 52, - "stop_line": 290, - "stop_column": 60, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 340, - "column": 53, - "stop_line": 340, - "stop_column": 64, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 342, - "column": 57, - "stop_line": 342, - "stop_column": 74, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_from`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_from`", - "severity": "error" - }, - { - "line": 343, - "column": 55, - "stop_line": 343, - "stop_column": 70, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_to`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_to`", - "severity": "error" - }, - { - "line": 344, - "column": 60, - "stop_line": 344, - "stop_column": 80, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_subject`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_subject`", - "severity": "error" - }, - { - "line": 345, - "column": 57, - "stop_line": 345, - "stop_column": 74, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_body`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_body`", - "severity": "error" - }, - { - "line": 348, - "column": 13, - "stop_line": 348, - "stop_column": 53, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `filter_attachment_filename_include`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `filter_attachment_filename_include`", - "severity": "error" - }, - { - "line": 377, - "column": 24, - "stop_line": 377, - "stop_column": 35, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 391, - "column": 29, - "stop_line": 391, - "stop_column": 35, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `TagFactory` has no attribute `pk`", - "concise_description": "Object of class `TagFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 392, - "column": 37, - "stop_line": 392, - "stop_column": 53, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CorrespondentFactory` has no attribute `pk`", - "concise_description": "Object of class `CorrespondentFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 393, - "column": 37, - "stop_line": 393, - "stop_column": 53, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `DocumentTypeFactory` has no attribute `pk`", - "concise_description": "Object of class `DocumentTypeFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 411, - "column": 53, - "stop_line": 411, - "stop_column": 64, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 462, - "column": 31, - "stop_line": 462, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 483, - "column": 31, - "stop_line": 483, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 492, "column": 50, - "stop_line": 492, - "stop_column": 58, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 504, - "column": 28, - "stop_line": 504, - "stop_column": 46, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 524, - "column": 54, - "stop_line": 524, - "stop_column": 69, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, + "path": "src/documents/tests/test_api_app_config.py", "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 530, - "column": 28, - "stop_line": 530, - "stop_column": 46, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 552, - "column": 31, - "stop_line": 552, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 553, - "column": 30, - "stop_line": 553, - "stop_column": 48, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 557, - "column": 9, - "stop_line": 557, - "stop_column": 30, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `refresh_from_db`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `refresh_from_db`", - "severity": "error" - }, - { - "line": 576, - "column": 49, - "stop_line": 576, - "stop_column": 54, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailRuleFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `MailRuleFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 599, - "column": 24, - "stop_line": 599, - "stop_column": 34, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 651, - "column": 54, - "stop_line": 651, - "stop_column": 57, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `ProcessedMailFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `ProcessedMailFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 658, - "column": 44, - "stop_line": 658, - "stop_column": 50, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 658, - "column": 52, - "stop_line": 658, - "stop_column": 58, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 658, - "column": 60, - "stop_line": 658, - "stop_column": 66, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 676, - "column": 60, - "stop_line": 676, - "stop_column": 68, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", - "severity": "error" - }, - { - "line": 680, - "column": 44, - "stop_line": 680, - "stop_column": 50, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 680, - "column": 52, - "stop_line": 680, - "stop_column": 58, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 702, - "column": 56, - "stop_line": 702, - "stop_column": 66, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `ProcessedMailFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "concise_description": "Argument `ProcessedMailFactory` is not assignable to parameter `obj` with type `Model | None` in function `guardian.shortcuts.assign_perm`", - "severity": "error" - }, - { - "line": 709, - "column": 30, - "stop_line": 709, - "stop_column": 43, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 709, - "column": 45, - "stop_line": 709, - "stop_column": 56, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 709, - "column": 58, - "stop_line": 709, - "stop_column": 71, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 717, - "column": 14, - "stop_line": 717, - "stop_column": 27, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 717, - "column": 29, - "stop_line": 717, - "stop_column": 40, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 717, - "column": 42, - "stop_line": 717, - "stop_column": 55, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 719, - "column": 58, - "stop_line": 719, - "stop_column": 71, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 720, - "column": 58, - "stop_line": 720, - "stop_column": 69, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 721, - "column": 58, - "stop_line": 721, - "stop_column": 71, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 722, - "column": 57, - "stop_line": 722, - "stop_column": 72, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 728, - "column": 30, - "stop_line": 728, - "stop_column": 45, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 733, - "column": 57, - "stop_line": 733, - "stop_column": 72, - "path": "src/paperless_mail/tests/test_api.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `ProcessedMailFactory` has no attribute `id`\n Did you mean `uid`?", - "concise_description": "Object of class `ProcessedMailFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 60, - "column": 44, - "stop_line": 60, - "stop_column": 48, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `None` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "concise_description": "Argument `None` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "severity": "error" - }, - { - "line": 79, - "column": 37, - "stop_line": 79, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "severity": "error" - }, - { - "line": 122, - "column": 37, - "stop_line": 122, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "severity": "error" - }, - { - "line": 127, - "column": 37, - "stop_line": 127, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "severity": "error" - }, - { - "line": 131, - "column": 37, - "stop_line": 131, - "stop_column": 42, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", - "severity": "error" - }, - { - "line": 177, "column": 25, - "stop_line": 177, - "stop_column": 40, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_app_config.py", "name": "missing-attribute", - "description": "Object of class `MailMessage` has no attribute `flagged`", - "concise_description": "Object of class `MailMessage` has no attribute `flagged`", + "concise_description": "Object of class `NoneType` has no attribute `path`", "severity": "error" }, { - "line": 179, "column": 25, - "stop_line": 179, - "stop_column": 37, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_app_config.py", "name": "missing-attribute", - "description": "Object of class `MailMessage` has no attribute `seen`", - "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "concise_description": "Object of class `NoneType` has no attribute `path`", "severity": "error" }, { - "line": 265, - "column": 9, - "stop_line": 265, - "stop_column": 22, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 27, + "path": "src/documents/tests/test_api_app_config.py", "name": "missing-attribute", - "description": "Object of class `MailMessage` has no attribute `seen`", - "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "concise_description": "Object of class `ImageFile` has no attribute `text`", "severity": "error" }, { - "line": 266, - "column": 9, - "stop_line": 266, - "stop_column": 25, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailMessage` has no attribute `flagged`", - "concise_description": "Object of class `MailMessage` has no attribute `flagged`", - "severity": "error" - }, - { - "line": 439, - "column": 50, - "stop_line": 439, - "stop_column": 64, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Class `message2` has no class attribute `from_`", - "concise_description": "Class `message2` has no class attribute `from_`", - "severity": "error" - }, - { - "line": 448, - "column": 54, - "stop_line": 448, - "stop_column": 61, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", - "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 454, - "column": 40, - "stop_line": 454, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", - "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 459, - "column": 40, - "stop_line": 459, - "stop_column": 48, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", - "concise_description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 462, - "column": 32, - "stop_line": 462, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CorrespondentFactory` has no attribute `id`", - "concise_description": "Object of class `CorrespondentFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 468, - "column": 40, - "stop_line": 468, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", - "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 471, - "column": 40, - "stop_line": 471, - "stop_column": 48, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", - "concise_description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 473, - "column": 32, - "stop_line": 473, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `CorrespondentFactory` has no attribute `id`", - "concise_description": "Object of class `CorrespondentFactory` has no attribute `id`", - "severity": "error" - }, - { - "line": 480, - "column": 40, - "stop_line": 480, - "stop_column": 47, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", - "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 495, - "column": 45, - "stop_line": 495, - "stop_column": 52, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "concise_description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 495, - "column": 54, - "stop_line": 495, - "stop_column": 57, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 65, + "path": "src/documents/tests/test_api_bulk_download.py", "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "concise_description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", "severity": "error" }, { - "line": 500, - "column": 45, - "stop_line": 500, - "stop_column": 52, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "concise_description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "severity": "error" - }, - { - "line": 500, - "column": 54, - "stop_line": 500, - "stop_column": 57, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "concise_description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "severity": "error" - }, - { - "line": 505, - "column": 45, - "stop_line": 505, - "stop_column": 52, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "concise_description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "severity": "error" - }, - { - "line": 505, - "column": 54, - "stop_line": 505, - "stop_column": 57, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "concise_description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", - "severity": "error" - }, - { - "line": 1250, - "column": 9, - "stop_line": 1250, - "stop_column": 50, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BogusFolderManager` has no attribute `list`", - "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", - "severity": "error" - }, - { - "line": 1256, - "column": 9, - "stop_line": 1256, - "stop_column": 50, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BogusFolderManager` has no attribute `list`", - "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", - "severity": "error" - }, - { - "line": 1283, - "column": 9, - "stop_line": 1283, - "stop_column": 50, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BogusFolderManager` has no attribute `list`", - "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", - "severity": "error" - }, - { - "line": 1289, - "column": 9, - "stop_line": 1289, - "stop_column": 50, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `BogusFolderManager` has no attribute `list`", - "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", - "severity": "error" - }, - { - "line": 1351, - "column": 13, - "stop_line": 1355, - "stop_column": 14, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `list[list[dict[str, int]]]` is not assignable to parameter `expected_call_args` with type `list[list[dict[str, str]]]` in function `MailMocker.assert_queue_consumption_tasks_call_args`", - "concise_description": "Argument `list[list[dict[str, int]]]` is not assignable to parameter `expected_call_args` with type `list[list[dict[str, str]]]` in function `MailMocker.assert_queue_consumption_tasks_call_args`", - "severity": "error" - }, - { - "line": 1370, - "column": 13, - "stop_line": 1374, - "stop_column": 14, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `list[list[dict[str, None]]]` is not assignable to parameter `expected_call_args` with type `list[list[dict[str, str]]]` in function `MailMocker.assert_queue_consumption_tasks_call_args`", - "concise_description": "Argument `list[list[dict[str, None]]]` is not assignable to parameter `expected_call_args` with type `list[list[dict[str, str]]]` in function `MailMocker.assert_queue_consumption_tasks_call_args`", - "severity": "error" - }, - { - "line": 1603, "column": 21, - "stop_line": 1603, - "stop_column": 33, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_chat.py", "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", + "concise_description": "Object of class `_MonkeyPatchedResponse` has no attribute `streaming_content`", "severity": "error" }, { - "line": 1614, + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_document_versions.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `bytes` is not assignable to parameter `data` with type `str` in function `rest_framework.test.APIClient.generic`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[int] | None` is not assignable to parameter `first` with type `Iterable[Any]` in function `unittest.case.TestCase.assertCountEqual`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_api_documents.py", + "name": "not-iterable", + "concise_description": "Type `None` is not iterable", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/tests/test_api_documents.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `ui_settings`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/tests/test_api_documents.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `ui_settings`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_documents.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `value`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_api_documents.py", + "name": "bad-unpacking", + "concise_description": "Expected argument after ** to have `str` keys, got: dict[str, list[dict[str, str]]] | list[bool] | list[date] | list[float] | list[int] | list[str] | list[Unknown] | str in function `django.db.models.manager.Manager.create`", + "severity": "error" + }, + { + "column": 29, + "path": "src/documents/tests/test_api_filter_by_custom_fields.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `urllib.parse.quote` called with arguments: (str | None, safe=Literal[''])", + "severity": "error" + }, + { + "column": 65, + "path": "src/documents/tests/test_api_objects.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 34, + "path": "src/documents/tests/test_api_objects.py", + "name": "missing-attribute", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_permissions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `owner`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_permissions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `owner`", + "severity": "error" + }, + { + "column": 55, + "path": "src/documents/tests/test_api_permissions.py", + "name": "bad-argument-type", + "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.core.ObjectPermissionChecker.has_perm`", + "severity": "error" + }, + { + "column": 53, + "path": "src/documents/tests/test_api_permissions.py", + "name": "bad-argument-type", + "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_permissions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `owner`", + "severity": "error" + }, + { + "column": 53, + "path": "src/documents/tests/test_api_permissions.py", + "name": "bad-argument-type", + "concise_description": "Argument `Tag | None` is not assignable to parameter `obj` with type `Model` in function `guardian.shortcuts.get_perms`", + "severity": "error" + }, + { + "column": 49, + "path": "src/documents/tests/test_api_post_document_nfc.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.is_normalized`", + "severity": "error" + }, + { + "column": 49, + "path": "src/documents/tests/test_api_post_document_nfc.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `unistr` with type `str` in function `unicodedata.is_normalized`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `name`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `provider_id`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `socialaccount_set`", + "severity": "error" + }, + { + "column": 41, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `key`", + "severity": "error" + }, + { + "column": 29, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `socialaccount_set`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_api_profile.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `socialaccount_set`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 34, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 20, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 51, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_api_schema.py", + "name": "bad-index", + "concise_description": "Cannot index into `SchemaGenerator`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_api_uisettings.py", + "name": "missing-attribute", + "concise_description": "Object of class `User` has no attribute `ui_settings`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_api_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `pk`", + "severity": "error" + }, + { "column": 13, - "stop_line": 1614, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `ai_suggestion_fields`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/tests/test_api_workflows.py", "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `action_parameter`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `action_parameter`", + "concise_description": "Object of class `NoneType` has no attribute `ai_create_missing`", "severity": "error" }, { - "line": 1641, "column": 25, - "stop_line": 1641, - "stop_column": 37, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "path": "src/documents/tests/test_api_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `ai_overwrite_existing`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_barcodes.py", "name": "missing-attribute", - "description": "Object of class `MailRuleFactory` has no attribute `pk`", - "concise_description": "Object of class `MailRuleFactory` has no attribute `pk`", + "concise_description": "Object of class `GetReaderPluginMixin` has no attribute `dirs`", + "severity": "error" + }, + { + "column": 5, + "path": "src/documents/tests/test_barcodes.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestAsnBarcode, filepath: Path) -> BarcodePlugin)", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_barcodes.py", + "name": "bad-return", + "concise_description": "Generator function should return `Generator`", + "severity": "error" + }, + { + "column": 5, + "path": "src/documents/tests/test_barcodes.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `contextlib.contextmanager` called with arguments: ((self: Self@TestTagBarcode, filepath: Path) -> BarcodePlugin)", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_barcodes.py", + "name": "bad-return", + "concise_description": "Generator function should return `Generator`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", + "severity": "error" + }, + { + "column": 81, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `correspondent` with type `Correspondent` in function `documents.bulk_edit.set_correspondent`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", + "severity": "error" + }, + { + "column": 81, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `document_type` with type `DocumentType` in function `documents.bulk_edit.set_document_type`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", "severity": "error" }, { - "line": 1652, - "column": 41, - "stop_line": 1652, - "stop_column": 61, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, + "column": 13, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `storage_path` with type `StoragePath` in function `documents.bulk_edit.set_storage_path`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "missing-attribute", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "missing-attribute", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", + "severity": "error" + }, + { + "column": 65, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 34, + "path": "src/documents/tests/test_bulk_edit.py", + "name": "missing-attribute", + "concise_description": "Object of type `Group | dict[Unknown, Unknown]` has no attribute `count`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `classes_`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `classes_`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `transform`", + "severity": "error" + }, + { + "column": 40, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-module-attribute", + "concise_description": "Could not import `InconsistentVersionWarning` from `sklearn.exceptions`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `append`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_classifier.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `classes_`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-return", + "concise_description": "Returned type `Path | None` is not assignable to declared return type `Path`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `current_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `current_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `max_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `max_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `status`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `status`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `current_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `current_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `max_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `max_progress`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentUpdatedData` does not have key `status`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_consumer.py", + "name": "bad-typed-dict-key", + "concise_description": "TypedDict `DocumentsDeletedData` does not have key `status`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `filename`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_consumer.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `archive_filename`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_document_list_effective_content_annotation.py", + "name": "bad-assignment", + "concise_description": "`SimpleNamespace` is not assignable to attribute `request` with type `Request`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_document_list_effective_content_annotation.py", + "name": "bad-assignment", + "concise_description": "`SimpleNamespace` is not assignable to attribute `request` with type `Request`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_document_list_effective_content_annotation.py", + "name": "missing-attribute", + "concise_description": "Object of class `Document` has no attribute `effective_content`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_document_list_effective_content_annotation.py", + "name": "missing-attribute", + "concise_description": "Object of class `Document` has no attribute `_prefetched_objects_cache`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/tests/test_file_handling.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `path` with type `PathLike[str] | str` in function `paperless_testing.assertions.FileSystemAssertsMixin.assertIsFile`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/tests/test_filters.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal[1698330605] | dict[Any, Any] | list[object] | None` is not assignable to parameter `value` with type `date | datetime | str` in function `documents.templating.filters.localize_date`", + "severity": "error" + }, + { + "column": 22, + "path": "src/documents/tests/test_management_exporter.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", + "severity": "error" + }, + { + "column": 22, + "path": "src/documents/tests/test_management_exporter.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_management_exporter.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", + "severity": "error" + }, + { + "column": 22, + "path": "src/documents/tests/test_management_exporter.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `command_name` with type `BaseCommand | str` in function `django.core.management.call_command`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_management_exporter.py", + "name": "missing-attribute", + "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_management_importer.py", + "name": "missing-attribute", + "concise_description": "Object of class `Model` has no attribute `name`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_management_importer.py", + "name": "missing-attribute", + "concise_description": "Object of class `Model` has no attribute `correspondent_id`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_management_importer.py", + "name": "missing-attribute", + "concise_description": "Object of class `Model` has no attribute `correspondent_id`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_migration_sha256_checksums.py", + "name": "missing-attribute", + "concise_description": "Object of class `TestMigrations` has no attribute `_fixture_teardown`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_models.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `correspondent`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_models.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `correspondent`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_parsers.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_parsers.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_parsers.py", + "name": "not-callable", + "concise_description": "Expected a callable, got `None`", + "severity": "error" + }, + { + "column": 36, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_document_ids`", + "severity": "error" + }, + { + "column": 46, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", + "severity": "error" + }, + { + "column": 56, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", + "severity": "error" + }, + { + "column": 56, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", + "severity": "error" + }, + { + "column": 55, + "path": "src/documents/tests/test_permission_filtering_security.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_sanity_check.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_sanity_check.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/tests/test_sanity_check.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/tests/test_share_link_bundles.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedResponse` has no attribute `streaming_content`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_tag_hierarchy.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_tag_hierarchy.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_task_signals.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_task_signals.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_task_signals.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['traceback']` and `None`", + "severity": "error" + }, + { + "column": 20, + "path": "src/documents/tests/test_task_signals.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_views.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_views.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_views.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/tests/test_views.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `app_logo`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `save`", + "severity": "error" + }, + { + "column": 26, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `app_logo`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_views.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedWSGIResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `render`", + "severity": "error" + }, + { + "column": 50, + "path": "src/documents/tests/test_views.py", + "name": "bad-argument-type", + "concise_description": "Argument `_MonkeyPatchedWSGIResponse` is not assignable to parameter `response` with type `StreamingHttpResponse` in function `paperless_testing.http.read_streaming_response`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `suggestions`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `suggestions`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `suggestions`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `str` has no attribute `name`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 40, + "path": "src/documents/tests/test_workflows.py", "name": "bad-argument-type", - "description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`\n Protocol `Container` requires attribute `__contains__`", "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", "severity": "error" }, { - "line": 2045, + "column": 35, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", + "severity": "error" + }, + { + "column": 39, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", + "severity": "error" + }, + { + "column": 43, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`list[str] | Any` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 38, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 38, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 38, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { + "column": 21, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Group | dict[Unknown, Unknown]` is not assignable to parameter `iterable` with type `Iterable[@_]` in function `list.__init__`", + "severity": "error" + }, + { "column": 24, - "stop_line": 2045, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", "severity": "error" }, { - "line": 2068, "column": 24, - "stop_line": 2068, - "stop_column": 39, - "path": "src/paperless_mail/tests/test_mail.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `MailAccountFactory` has no attribute `pk`", - "concise_description": "Object of class `MailAccountFactory` has no attribute `pk`", + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-count", + "concise_description": "Missing positional argument `value` in function `list.count`", "severity": "error" }, { - "line": 135, "column": 42, - "stop_line": 135, - "stop_column": 54, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", - "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "path": "src/documents/tests/test_workflows.py", + "name": "bad-assignment", + "concise_description": "`Group | dict[Unknown, Unknown]` is not assignable to `QuerySet[Any, Any]`", "severity": "error" }, { - "line": 146, - "column": 42, - "stop_line": 146, - "stop_column": 54, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", - "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", - "severity": "error" - }, - { - "line": 178, - "column": 46, - "stop_line": 178, - "stop_column": 58, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", - "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", - "severity": "error" - }, - { - "line": 188, - "column": 46, - "stop_line": 188, - "stop_column": 58, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", - "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", - "severity": "error" - }, - { - "line": 308, - "column": 55, - "stop_line": 308, - "stop_column": 67, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "severity": "error" - }, - { - "line": 326, - "column": 55, - "stop_line": 326, - "stop_column": 75, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "severity": "error" - }, - { - "line": 366, - "column": 63, - "stop_line": 366, - "stop_column": 75, - "path": "src/paperless_mail/tests/test_mail_oauth.py", - "code": -2, - "name": "bad-argument-type", - "description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "concise_description": "Argument `MailAccountFactory` is not assignable to parameter `account` with type `MailAccount` in function `paperless_mail.mail.MailAccountHandler.handle_mail_account`", - "severity": "error" - }, - { - "line": 70, - "column": 9, - "stop_line": 70, - "stop_column": 30, - "path": "src/paperless_mail/tests/test_preprocessor.py", - "code": -2, - "name": "missing-attribute", - "description": "Object of class `Message` has no attribute `_headers`", - "concise_description": "Object of class `Message` has no attribute `_headers`", - "severity": "error" - }, - { - "line": 72, "column": 27, - "stop_line": 72, - "stop_column": 48, - "path": "src/paperless_mail/tests/test_preprocessor.py", - "code": -2, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `int` is not assignable to parameter `trigger_type` with type `WorkflowTrigger.WorkflowTriggerType` in function `documents.signals.handlers.run_workflows`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 23, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `files` with type `dict[Unknown, Unknown]` in function `celery.app.task.Task.__call__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 35, + "path": "src/documents/tests/test_workflows.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", + "severity": "error" + }, + { + "column": 35, + "path": "src/documents/tests/test_workflows.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `setUp`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `tearDown`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/tests/utils.py", + "name": "missing-attribute", + "concise_description": "Object of class `GetConsumerMixin` has no attribute `dirs`", + "severity": "error" + }, + { + "column": 34, + "path": "src/documents/utils.py", + "name": "bad-assignment", + "concise_description": "`float | int | None` is not assignable to attribute `MAX_IMAGE_PIXELS` with type `int | None`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `username`", + "severity": "error" + }, + { + "column": 32, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `AbstractBaseUser | AnonymousUser` has no attribute `get_full_name`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `get_serializer_context`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BulkPermissionMixin` has no attribute `filter_queryset`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BulkPermissionMixin` has no attribute `get_queryset`", + "severity": "error" + }, + { + "column": 22, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BulkPermissionMixin` has no attribute `queryset`", + "severity": "error" + }, + { + "column": 29, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `Self@CorrespondentViewSet` is not assignable to parameter `instance` with type `Options[Any] | None` in function `django.db.models.manager.BaseManager.__get__`", + "severity": "error" + }, + { + "column": 29, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `annotate`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `Self@CorrespondentViewSet` is not assignable to parameter `instance` with type `Options[Any] | None` in function `django.db.models.manager.BaseManager.__get__`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `annotate`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Correspondent` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `DocumentType` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 48, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `StoragePath` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Class `DocumentFilterSet` has no class attribute `declared_filters`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `DocumentViewSet.destroy` overrides parent class `DestroyModelMixin` in an inconsistent manner", + "severity": "error" + }, + { + "column": 37, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[MetadataEntry] | list[Unknown] | None` is not assignable to parameter `original_metadata` with type `list[Unknown]` in function `documents.caching.set_metadata_cache`", + "severity": "error" + }, + { + "column": 57, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_correspondents`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_tags`", + "severity": "error" + }, + { + "column": 59, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_document_types`", + "severity": "error" + }, + { + "column": 58, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentClassifier | None` is not assignable to parameter `classifier` with type `DocumentClassifier` in function `documents.matching.match_storage_paths`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `ClassificationSuggestions` is not assignable to parameter `suggestions` with type `dict[Unknown, Unknown]` in function `documents.caching.set_llm_suggestions_cache`", + "severity": "error" + }, + { + "column": 5, + "path": "src/documents/views.py", + "name": "bad-specialization", + "concise_description": "`(self: Self@DocumentViewSet, request: Unknown, pk: Unknown | None = None) -> HttpResponseForbidden | Response | None` is not assignable to upper bound `(...) -> HttpResponseBase` of type variable `_View`", + "severity": "error" + }, + { + "column": 36, + "path": "src/documents/views.py", + "name": "missing-argument", + "concise_description": "Missing argument `request` in function `DocumentViewSet.email_documents`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `UnifiedSearchViewSet.list` overrides parent class `DocumentViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `BasePagination | None` has no attribute `get_page_size`", + "severity": "error" + }, + { + "column": 58, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `BasePagination | None` has no attribute `page_size`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/views.py", + "name": "not-iterable", + "concise_description": "Type `None` is not iterable", + "severity": "error" + }, + { + "column": 43, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `TantivyRelevanceList` is not assignable to parameter `queryset` with type `QuerySet[Any, @_] | Sequence[@_]` in function `rest_framework.generics.GenericAPIView.paginate_queryset`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/views.py", + "name": "unsupported-operation", + "concise_description": "`+` is not supported between `None` and `Literal[1]`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "not-iterable", + "concise_description": "Type `None` is not iterable", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentSelectionMixin._resolve_document_ids`", + "severity": "error" + }, + { + "column": 18, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User` in function `DocumentOperationPermissionMixin._has_document_permissions`", + "severity": "error" + }, + { + "column": 33, + "path": "src/documents/views.py", + "name": "unbound-name", + "concise_description": "`old_values` may be uninitialized", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Correspondent` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Tag` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `DocumentType` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `StoragePath` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 52, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `CustomField` has no attribute `document_count`", + "severity": "error" + }, + { + "column": 65, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser | None` is not assignable to parameter `user` with type `AbstractUser | None` in function `documents.search._backend.TantivyBackend.autocomplete`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `TasksViewSet.get_serializer_class` overrides parent class `ReadOnlyModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_staff`", + "severity": "error" + }, + { + "column": 44, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `QuerySet[PaperlessTask, dict[str, Any]]` is not assignable to parameter `instance` with type `dict[str, Any] | None` in function `rest_framework.serializers.BaseSerializer.__init__`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Sequence` has no attribute `append`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `BaseSerializer` has no attribute `get_object_class`", + "severity": "error" + }, + { + "column": 45, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_object_ids`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `has_perm`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `WorkflowTriggerViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/views.py", + "name": "bad-override", + "concise_description": "Class member `WorkflowActionViewSet.partial_update` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 40, + "path": "src/documents/views.py", + "name": "unbound-name", + "concise_description": "`all_migrations` may be uninitialized", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `User | None` in function `documents.permissions.permitted_document_ids`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `app_logo`", + "severity": "error" + }, + { + "column": 22, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `title`", + "severity": "error" + }, + { + "column": 80, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", + "severity": "error" + }, + { + "column": 30, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `name`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `correspondent`", + "severity": "error" + }, + { + "column": 30, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `name`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `document_type`", + "severity": "error" + }, + { + "column": 31, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `username`", + "severity": "error" + }, + { + "column": 58, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `owner`", + "severity": "error" + }, + { + "column": 25, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `original_filename`", + "severity": "error" + }, + { + "column": 33, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `filename`", + "severity": "error" + }, + { + "column": 41, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `added`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `created`", + "severity": "error" + }, + { + "column": 19, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `ConsumableDocument` has no attribute `pk`", + "severity": "error" + }, + { + "column": 42, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `Document` has no attribute `original_file`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/workflows/actions.py", + "name": "bad-argument-type", + "concise_description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `subject`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/workflows/actions.py", + "name": "bad-argument-type", + "concise_description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `body`", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `include_document`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `to`", + "severity": "error" + }, + { + "column": 59, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `to`", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `use_params`", + "severity": "error" + }, + { + "column": 16, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `params`", + "severity": "error" + }, + { + "column": 39, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `items`", + "severity": "error" + }, + { + "column": 14, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `body`", + "severity": "error" + }, + { + "column": 17, + "path": "src/documents/workflows/actions.py", + "name": "bad-argument-type", + "concise_description": "Argument `object | str` is not assignable to parameter `text` with type `str` in function `documents.templating.workflows.parse_w_workflow_placeholders`", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `headers`", + "severity": "error" + }, + { + "column": 55, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `object` has no attribute `items`", + "severity": "error" + }, + { + "column": 12, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `include_document`", + "severity": "error" + }, + { + "column": 24, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 28, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `as_json`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/workflows/actions.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 43, + "path": "src/documents/workflows/actions.py", + "name": "bad-assignment", + "concise_description": "`Unknown | None` is not assignable to `Document`", + "severity": "error" + }, + { + "column": 8, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", + "severity": "error" + }, + { + "column": 8, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/workflows/mutations.py", + "name": "bad-argument-type", + "concise_description": "Argument `str` is not assignable to parameter `data_type` with type `CustomField.FieldDataType` in function `documents.models.CustomFieldInstance.get_value_field_name`", + "severity": "error" + }, + { + "column": 35, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 8, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_tags`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_view_groups`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_change_groups`", + "severity": "error" + }, + { + "column": 8, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_assign_custom_fields`", + "severity": "error" + }, + { + "column": 27, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", + "severity": "error" + }, + { + "column": 10, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", + "severity": "error" + }, + { + "column": 9, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `QuerySet` has no attribute `hard_delete`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_view_groups`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_users`", + "severity": "error" + }, + { + "column": 13, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_change_groups`", + "severity": "error" + }, + { + "column": 10, + "path": "src/documents/workflows/mutations.py", + "name": "missing-attribute", + "concise_description": "Object of class `WorkflowAction` has no attribute `has_remove_custom_fields`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless/adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get_host`", + "severity": "error" + }, + { + "column": 31, + "path": "src/paperless/adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get_host`", + "severity": "error" + }, + { + "column": 22, + "path": "src/paperless/adapter.py", + "name": "bad-assignment", + "concise_description": "`AbstractBaseUser` is not assignable to `User`", + "severity": "error" + }, + { + "column": 22, + "path": "src/paperless/adapter.py", + "name": "bad-assignment", + "concise_description": "`AbstractBaseUser` is not assignable to `User`", + "severity": "error" + }, + { + "column": 24, + "path": "src/paperless/admin.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 17, + "path": "src/paperless/admin.py", + "name": "missing-attribute", + "concise_description": "Object of class `PaperlessUserForm` has no attribute `request`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/auth.py", + "name": "bad-return", + "concise_description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/auth.py", + "name": "bad-return", + "concise_description": "Returned type `Awaitable[HttpResponseBase] | HttpResponseBase` is not assignable to declared return type `None`", + "severity": "error" + }, + { + "column": 5, + "path": "src/paperless/celery.py", + "name": "bad-argument-type", + "concise_description": "Argument `(obj: object) -> bytes` is not assignable to parameter `encoder` with type `((Any) -> str) | None` in function `kombu.serialization.register`", + "severity": "error" + }, + { + "column": 5, + "path": "src/paperless/celery.py", + "name": "bad-argument-type", + "concise_description": "Argument `(payload: bytes) -> Any` is not assignable to parameter `decoder` with type `((str) -> Any) | None` in function `kombu.serialization.register`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Error]` is not assignable to declared return type `list[Error | Warning]`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless/checks.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], capture_output=Literal[True])", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", + "severity": "error" + }, + { + "column": 21, + "path": "src/paperless/checks.py", + "name": "bad-argument-type", + "concise_description": "Argument `Error` is not assignable to parameter `object` with type `Warning` in function `list.append`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/checks.py", + "name": "bad-return", + "concise_description": "Returned type `list[Warning]` is not assignable to declared return type `list[Error]`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/config.py", + "name": "bad-return", + "concise_description": "Returned type `ApplicationConfiguration | None` is not assignable to declared return type `ApplicationConfiguration`", + "severity": "error" + }, + { + "column": 28, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`OutputTypeChoices | str` is not assignable to attribute `output_type` with type `OutputTypeChoices`", + "severity": "error" + }, + { + "column": 21, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`ModeChoices | str` is not assignable to attribute `mode` with type `ModeChoices`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`ArchiveFileGenerationChoices | str` is not assignable to attribute `archive_file_generation` with type `ArchiveFileGenerationChoices`", + "severity": "error" + }, + { + "column": 22, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`CleanChoices | str` is not assignable to attribute `clean` with type `CleanChoices`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`ColorConvertChoices | str` is not assignable to attribute `color_conversion_strategy` with type `ColorConvertChoices`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`str | None` is not assignable to attribute `app_title` with type `str`", + "severity": "error" + }, + { + "column": 25, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`Unknown | None` is not assignable to attribute `app_logo` with type `str`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless/config.py", + "name": "bad-assignment", + "concise_description": "`RemoteOCRMode | str` is not assignable to attribute `remote_ocr_mode` with type `RemoteOCRMode`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/consumers.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "severity": "error" + }, + { + "column": 22, + "path": "src/paperless/consumers.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/consumers.py", + "name": "bad-argument-type", + "concise_description": "Argument `ProgressUpdateData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/consumers.py", + "name": "bad-argument-type", + "concise_description": "Argument `DocumentUpdatedData` is not assignable to parameter `data` with type `PermissionsData` in function `StatusConsumer._can_view`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/network.py", + "name": "bad-return", + "concise_description": "Returned type `list[int | str]` is not assignable to declared return type `list[str]`", + "severity": "error" + }, + { + "column": 17, + "path": "src/paperless/parsers/tesseract.py", + "name": "bad-argument-type", + "concise_description": "Argument `bytes | None` is not assignable to parameter `data` with type `Buffer` in function `pathlib.Path.write_bytes`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/serialisers.py", + "name": "missing-attribute", + "concise_description": "Object of class `PasswordValidationMixin` has no attribute `instance`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/serialisers.py", + "name": "bad-override", + "concise_description": "Class member `ApplicationConfigurationSerializer.run_validation` overrides parent class `ModelSerializer` in an inconsistent manner", + "severity": "error" + }, + { + "column": 28, + "path": "src/paperless/serialisers.py", + "name": "missing-attribute", + "concise_description": "Object of class `UploadedFile` has no attribute `field_name`", + "severity": "error" + }, + { + "column": 43, + "path": "src/paperless/settings/__init__.py", + "name": "bad-assignment", + "concise_description": "`dict[str, int | list[str] | str]` is not assignable to dict key `CONFIG` with type `str`", + "severity": "error" + }, + { + "column": 30, + "path": "src/paperless/settings/__init__.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.append`", + "severity": "error" + }, + { + "column": 39, + "path": "src/paperless/settings/__init__.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `env_ignore` with type `str` in function `paperless.settings.custom.parse_ignore_dates`", + "severity": "error" + }, + { + "column": 27, + "path": "src/paperless/settings/custom.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | dict[str, float]` is not assignable to parameter `key` with type `str` in function `os.getenv`", + "severity": "error" + }, + { + "column": 52, + "path": "src/paperless/settings/custom.py", + "name": "missing-attribute", + "concise_description": "Object of class `dict` has no attribute `split`", + "severity": "error" + }, + { + "column": 19, + "path": "src/paperless/settings/custom.py", + "name": "invalid-argument", + "concise_description": "Expected a mapping, got str | dict[str, float]", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless/tests/parsers/conftest.py", + "name": "bad-return", + "concise_description": "Returned type `(**django_settings_overrides: Unknown) -> _GeneratorContextManager[RasterisedDocumentParser]` is not assignable to declared return type `(...) -> Generator[RasterisedDocumentParser]`", + "severity": "error" + }, + { + "column": 45, + "path": "src/paperless/tests/parsers/test_mail_parser.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['na']` is not assignable to parameter `document_path` with type `Path` in function `paperless.parsers.mail.MailDocumentParser.extract_metadata`", + "severity": "error" + }, + { + "column": 47, + "path": "src/paperless/tests/parsers/test_mail_parser.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/parsers/test_mail_parser.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `url`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/tests/parsers/test_mail_parser_live.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `subprocess.run` called with arguments: (list[str | None], check=Literal[True])", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless/tests/parsers/test_mail_parser_live.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `pdf_path` with type `Path` in function `extract_text`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless/tests/parsers/test_parse_modes.py", + "name": "bad-assignment", + "concise_description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", + "severity": "error" + }, + { + "column": 34, + "path": "src/paperless/tests/parsers/test_remote_parser.py", + "name": "bad-argument-count", + "concise_description": "Expected 1 more positional argument", + "severity": "error" + }, + { + "column": 24, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", + "severity": "error" + }, + { + "column": 25, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", + "severity": "error" + }, + { + "column": 28, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['input.pdf']` is not assignable to parameter `input_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", + "severity": "error" + }, + { + "column": 29, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['output.pdf']` is not assignable to parameter `output_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", + "severity": "error" + }, + { + "column": 30, + "path": "src/paperless/tests/parsers/test_tesseract_custom_settings.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['sidecar.txt']` is not assignable to parameter `sidecar_file` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.construct_ocrmypdf_parameters`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-argument-type", + "concise_description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.get_dpi`", + "severity": "error" + }, + { + "column": 17, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-argument-type", + "concise_description": "Argument `str` is not assignable to parameter `image` with type `Path` in function `paperless.parsers.tesseract.RasterisedDocumentParser.calculate_a4_dpi`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-assignment", + "concise_description": "`str` is not assignable to attribute `mode` with type `ModeChoices`", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 14, + "path": "src/paperless/tests/parsers/test_tesseract_parser.py", + "name": "bad-context-manager", + "concise_description": "Cannot use `Generator[RasterisedDocumentParser]` as a context manager", + "severity": "error" + }, + { + "column": 19, + "path": "src/paperless/tests/parsers/test_tika_parser.py", + "name": "bad-argument-type", + "concise_description": "Argument `Path | None` is not assignable to parameter `*args` with type `PathLike[str] | str` in function `pathlib.Path.__new__`", + "severity": "error" + }, + { + "column": 43, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.account.adapter.DefaultAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 43, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.account.adapter.DefaultAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 47, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.account.adapter.DefaultAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `is_superuser`", + "severity": "error" + }, + { + "column": 43, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 49, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `sociallogin` with type `SocialLogin` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 47, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 53, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `sociallogin` with type `SocialLogin` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.is_open_for_signup`", + "severity": "error" + }, + { + "column": 49, + "path": "src/paperless/tests/test_adapter.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `request` with type `HttpRequest` in function `allauth.socialaccount.adapter.DefaultSocialAccountAdapter.get_connect_redirect_url`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/test_adapter.py", + "name": "missing-attribute", + "concise_description": "Object of class `AbstractBaseUser` has no attribute `groups`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/tests/test_api_auth.py", + "name": "missing-attribute", + "concise_description": "Object of class `FunctionType` has no attribute `view_class`", + "severity": "error" + }, + { + "column": 50, + "path": "src/paperless/tests/test_api_auth.py", + "name": "missing-attribute", + "concise_description": "Object of class `FunctionType` has no attribute `view_class`", + "severity": "error" + }, + { + "column": 47, + "path": "src/paperless/tests/test_auth_middleware.py", + "name": "bad-argument-type", + "concise_description": "Argument `(request: HttpRequest) -> None` is not assignable to parameter `get_response` with type `_AnyGetResponseCallable` in function `django.utils.deprecation.MiddlewareMixin.__init__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `str` and `None`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `str` and `None`", + "severity": "error" + }, + { + "column": 29, + "path": "src/paperless/tests/test_checks.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `str.join` called with arguments: (Generator[str | None])", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['PAPERLESS_DB_TIMEOUT']` and `None`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`not in` is not supported between `str` and `None`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['PAPERLESS_DB_OPTIONS']` and `None`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/tests/test_checks.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['v2.20.15']` and `None`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.LowScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_highest_score_wins.HighScoreParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_parser_returning_none_score_is_skipped.DecliningParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_all_parsers_decline_returns_none.AlwaysDeclines]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.BuiltinParser]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_external_parser_beats_builtin_same_score.ExternalParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.AcceptingBuiltin]` is not assignable to parameter `parser_class` with type `type[ParserProtocol]` in function `paperless.parsers.registry.ParserRegistry.register_builtin`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestParserRegistryGetParserForFile.test_builtin_wins_when_external_declines.DecliningExternal]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless/tests/test_registry.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestLogSummary.test_log_summary_with_external_parsers.ExtParser]` is not assignable to parameter `object` with type `type[ParserProtocol]` in function `list.append`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/tests/test_signals.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/tests/test_signals.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `get`", + "severity": "error" + }, + { + "column": 21, + "path": "src/paperless/tests/test_views.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `streaming_content`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/urls.py", + "name": "bad-assignment", + "concise_description": "`((request: HttpRequest, *args: Unknown, **kwargs: Unknown) -> HttpResponseRedirect | Unknown) | ((view_func: Unknown) -> (request: HttpRequest, *args: Unknown, **kwargs: Unknown) -> HttpResponseRedirect | Unknown)` is not assignable to attribute `login` with type `(request: HttpRequest, extra_context: dict[str, Any] | None = ...) -> HttpResponse`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/urls.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `django.urls.conf.path` called with arguments: (Literal['ws/status/'], _ASGIApplicationProtocol)", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless/validators.py", + "name": "missing-attribute", + "concise_description": "Object of class `EllipsisType` has no attribute `lower`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless/validators.py", + "name": "bad-argument-type", + "concise_description": "Argument `EllipsisType | Unknown` is not assignable to parameter `text_or_uri_element` with type `_Element | bytes | str | None` in function `lxml.etree.QName.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless/validators.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `str.join` called with arguments: (Iterator[_AnyStr] | Unknown)", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless/validators.py", + "name": "missing-attribute", + "concise_description": "Object of class `EllipsisType` has no attribute `items`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `paginator`", + "severity": "error" + }, + { + "column": 17, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `paginator`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `paginator`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/views.py", + "name": "bad-override", + "concise_description": "Class member `UserViewSet.create` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/views.py", + "name": "bad-override", + "concise_description": "Class member `UserViewSet.update` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/views.py", + "name": "bad-override", + "concise_description": "Class member `UserViewSet.destroy` overrides parent class `ModelViewSet` in an inconsistent manner", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `set_password`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `save`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `save`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless/views.py", + "name": "bad-argument-type", + "concise_description": "Argument `AbstractBaseUser | AnonymousUser` is not assignable to parameter `user` with type `AbstractBaseUser` in function `allauth.mfa.adapter.DefaultMFAAdapter.build_totp_url`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless/views.py", + "name": "bad-assignment", + "concise_description": "`Authenticator | None` is not assignable to `Authenticator`", + "severity": "error" + }, + { + "column": 34, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `RecoveryCodes | TOTP | WebAuthn` has no attribute `get_unused_codes`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_backend`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_chunk_size`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_endpoint`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_embedding_model`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `llm_context_size`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of type `AbstractBaseUser | AnonymousUser` has no attribute `socialaccount_set`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless/views.py", + "name": "missing-attribute", + "concise_description": "Object of class `Provider` has no attribute `get_brands`", + "severity": "error" + }, + { + "column": 41, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-argument-type", + "concise_description": "Argument `ClassificationSuggestions` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", + "severity": "error" + }, + { + "column": 55, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-argument-type", + "concise_description": "Argument `ClassificationSuggestions` is not assignable to parameter `raw` with type `dict[Unknown, Unknown]` in function `parse_ai_response`", + "severity": "error" + }, + { + "column": 46, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-typed-dict-key", + "concise_description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "severity": "error" + }, + { + "column": 53, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-typed-dict-key", + "concise_description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "severity": "error" + }, + { + "column": 36, + "path": "src/paperless_ai/ai_classifier.py", + "name": "bad-typed-dict-key", + "concise_description": "Invalid key for TypedDict `ClassificationSuggestions`, got `str`", + "severity": "error" + }, + { + "column": 65, + "path": "src/paperless_ai/base_model.py", + "name": "bad-index", + "concise_description": "Cannot index into `dict[str, FieldInfo]`", + "severity": "error" + }, + { + "column": 18, + "path": "src/paperless_ai/chat.py", + "name": "bad-assignment", + "concise_description": "`str | Any | None` is not assignable to dict value type `int | str`", + "severity": "error" + }, + { + "column": 26, + "path": "src/paperless_ai/chat.py", + "name": "missing-attribute", + "concise_description": "Object of class `Response` has no attribute `response_gen`", + "severity": "error" + }, + { + "column": 60, + "path": "src/paperless_ai/client.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | Unknown | None` is not assignable to parameter `s` with type `bytearray | bytes | str` in function `json.loads`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_ai/embedding.py", + "name": "bad-argument-type", + "concise_description": "Argument `str` is not assignable to parameter `key` with type `LLMEmbeddingBackend` in function `dict.get`", + "severity": "error" + }, + { + "column": 59, + "path": "src/paperless_ai/taxonomy.py", + "name": "not-iterable", + "concise_description": "Type `object` is not iterable", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless_ai/tests/test_ai_classifier.py", + "name": "bad-argument-type", + "concise_description": "Argument `dict[str, list[dict[str, float | int | str]] | list[Unknown]]` is not assignable to parameter `candidates` with type `TaxonomyCandidates | None` in function `paperless_ai.ai_classifier.build_prompt_without_rag`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_ai/tests/test_matching.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str | None]` is not assignable to parameter `names` with type `list[str]` in function `paperless_ai.matching.match_tags_by_name`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[float] | None` is not assignable to parameter `embedding` with type `list[float]` in function `_query`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "unsupported-operation", + "concise_description": "`None` is not subscriptable", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "column": 20, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `obj` with type `Sized` in function `len`", + "severity": "error" + }, + { + "column": 45, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "no-matching-overload", + "concise_description": "No matching overload found for function `sorted` called with arguments: (list[float] | None, reverse=Literal[True])", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "column": 36, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['1']` is not assignable to parameter `document_id` with type `int` in function `make_node`", + "severity": "error" + }, + { + "column": 58, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['2']` is not assignable to parameter `document_id` with type `int` in function `make_node`", + "severity": "error" + }, + { + "column": 23, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `iterable` with type `Iterable[str]` in function `sorted`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "not-iterable", + "concise_description": "`in` is not supported between `Literal['c1']` and `None`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-assignment", + "concise_description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-assignment", + "concise_description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_ai/tests/test_vector_store.py", + "name": "bad-assignment", + "concise_description": "`int` is not assignable to attribute `SCHEMA_VERSION` with type `Literal[2]`", + "severity": "error" + }, + { + "column": 31, + "path": "src/paperless_ai/vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `float | int | list[float] | list[int] | list[str] | str | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | str` in function `int.__new__`", + "severity": "error" + }, + { + "column": 31, + "path": "src/paperless_ai/vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `float | int | list[float] | list[int] | list[str] | str | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | str` in function `int.__new__`", + "severity": "error" + }, + { + "column": 29, + "path": "src/paperless_ai/vector_store.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | Any | None` is not assignable to parameter `x` with type `Buffer | SupportsIndex | SupportsInt | str` in function `int.__new__`", + "severity": "error" + }, + { + "column": 64, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | Unknown | None` is not assignable to parameter `*args` with type `str` in function `imaplib.IMAP4.uid`", + "severity": "error" + }, + { + "column": 33, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str] | None` is not assignable to parameter `flag_set` with type `Iterable[str] | str` in function `imap_tools.mailbox.BaseMailBox.flag`", + "severity": "error" + }, + { + "column": 53, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `BaseMailAction.post_consume`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `parameter` with type `str` in function `TagMailAction.__init__`", + "severity": "error" + }, + { + "column": 30, + "path": "src/paperless_mail/mail.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, date]`", + "severity": "error" + }, + { + "column": 27, + "path": "src/paperless_mail/mail.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, date]`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, date]`", + "severity": "error" + }, + { + "column": 29, + "path": "src/paperless_mail/mail.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, date]`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 38, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `answered` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `seen` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `flagged` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `draft` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `deleted` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `no_keyword` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `from_` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `to` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `subject` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `body` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `text` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `bcc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `cc` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_gt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `size_lt` with type `int | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `new` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `old` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `recent` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `all` with type `bool | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `header` with type `Header | list[Header] | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 32, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Unpacked keyword argument `date` is not assignable to parameter `gmail_label` with type `list[str] | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_mail/mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `PinnedClientMixin` has no attribute `_host`", + "severity": "error" + }, + { + "column": 13, + "path": "src/paperless_mail/mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `PinnedClientMixin` has no attribute `_port`", + "severity": "error" + }, + { + "column": 21, + "path": "src/paperless_mail/mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `PinnedClientMixin` has no attribute `_timeout`", + "severity": "error" + }, + { + "column": 12, + "path": "src/paperless_mail/mail.py", + "name": "bad-return", + "concise_description": "Returned type `PinnedMailBox | PinnedMailBoxStartTls | PinnedMailBoxUnencrypted` is not assignable to declared return type `MailBox`", + "severity": "error" + }, + { + "column": 31, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `object` with type `str` in function `list.insert`", + "severity": "error" + }, + { + "column": 44, + "path": "src/paperless_mail/mail.py", + "name": "unbound-name", + "concise_description": "`folder` is uninitialized", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/mail.py", "name": "missing-attribute", - "description": "Object of class `Message` has no attribute `_headers`", "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { - "line": 85, - "column": 51, - "stop_line": 85, - "stop_column": 72, - "path": "src/paperless_mail/tests/test_preprocessor.py", - "code": -2, + "column": 32, + "path": "src/paperless_mail/mail.py", "name": "missing-attribute", - "description": "Object of class `Crypt` has no attribute `stderr`", - "concise_description": "Object of class `Crypt` has no attribute `stderr`", + "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { - "line": 100, - "column": 36, - "stop_line": 100, - "stop_column": 66, - "path": "src/paperless_mail/tests/test_preprocessor.py", - "code": -2, + "column": 32, + "path": "src/paperless_mail/mail.py", "name": "missing-attribute", - "description": "Object of class `str` has no attribute `decode`\n Did you mean `encode`?", - "concise_description": "Object of class `str` has no attribute `decode`", + "concise_description": "Object of class `Message` has no attribute `_headers`", "severity": "error" }, { - "line": 298, - "column": 28, - "stop_line": 298, - "stop_column": 34, - "path": "src/paperless_mail/views.py", - "code": -2, + "column": 17, + "path": "src/paperless_mail/mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `Message` has no attribute `_headers`", + "severity": "error" + }, + { + "column": 27, + "path": "src/paperless_mail/mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str` is not assignable to parameter `original_file` with type `Path` in function `documents.data_models.ConsumableDocument.__init__`", + "severity": "error" + }, + { + "column": 39, + "path": "src/paperless_mail/oauth.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", + "severity": "error" + }, + { + "column": 39, + "path": "src/paperless_mail/oauth.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `refresh_token` with type `str` in function `httpx_oauth.oauth2.BaseOAuth2.refresh_token`", + "severity": "error" + }, + { + "column": 35, + "path": "src/paperless_mail/oauth.py", "name": "unbound-name", - "description": "`result` may be uninitialized", "concise_description": "`result` may be uninitialized", "severity": "error" }, { - "line": 304, + "column": 71, + "path": "src/paperless_mail/preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `Crypt` has no attribute `stderr`", + "severity": "error" + }, + { + "column": 44, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "concise_description": "Argument `None` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", + "severity": "error" + }, + { + "column": 37, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-argument-type", + "concise_description": "Argument `Literal['BAD']` is not assignable to parameter `command_result` with type `tuple[Unknown, ...]` in function `imap_tools.errors.UnexpectedCommandStatusError.__init__`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless_mail/tests/helpers.py", + "name": "bad-return", + "concise_description": "Returned type `list[str | None]` is not assignable to declared return type `list[str]`", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `flagged`", + "severity": "error" + }, + { + "column": 25, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `flagged`", + "severity": "error" + }, + { + "column": 25, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/helpers.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `flagged`", + "severity": "error" + }, + { + "column": 41, + "path": "src/paperless_mail/tests/test_api.py", + "name": "unsupported-operation", + "concise_description": "Cannot set item in `dict[str, MailAccount.ImapSecurity | str]`", + "severity": "error" + }, + { + "column": 50, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Class `message2` has no class attribute `from_`", + "severity": "error" + }, + { + "column": 54, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_correspondent.message2]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "severity": "error" + }, + { + "column": 40, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_correspondent.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_correspondent`", + "severity": "error" + }, + { + "column": 45, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", + "severity": "error" + }, + { + "column": 54, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", + "severity": "error" + }, + { + "column": 45, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", + "severity": "error" + }, + { + "column": 54, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", + "severity": "error" + }, + { + "column": 45, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_title.message]` is not assignable to parameter `message` with type `MailMessage` in function `paperless_mail.mail.MailAccountHandler._get_title`", + "severity": "error" + }, + { + "column": 54, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `type[TestMail.test_get_title.att]` is not assignable to parameter `att` with type `MailAttachment` in function `paperless_mail.mail.MailAccountHandler._get_title`", + "severity": "error" + }, + { + "column": 49, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `MailMessage` has no attribute `seen`", + "severity": "error" + }, + { + "column": 41, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `list[str | None]` is not assignable to parameter `uid` with type `Iterable[str] | UidRange | str | None` in function `imap_tools.query.LogicOperator.__init__`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "missing-attribute", + "concise_description": "Object of class `BogusFolderManager` has no attribute `list`", + "severity": "error" + }, + { + "column": 51, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-assignment", + "concise_description": "`int` is not assignable to dict value type `str`", + "severity": "error" + }, + { + "column": 51, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-assignment", + "concise_description": "`None` is not assignable to dict value type `str`", + "severity": "error" + }, + { + "column": 41, + "path": "src/paperless_mail/tests/test_mail.py", + "name": "bad-argument-type", + "concise_description": "Argument `str | None` is not assignable to parameter `container` with type `Container | Iterable[Any]` in function `unittest.case.TestCase.assertIn`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless_mail/tests/test_mail_oauth.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 42, + "path": "src/paperless_mail/tests/test_mail_oauth.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 46, + "path": "src/paperless_mail/tests/test_mail_oauth.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 46, + "path": "src/paperless_mail/tests/test_mail_oauth.py", + "name": "missing-attribute", + "concise_description": "Object of class `_MonkeyPatchedWSGIResponse` has no attribute `url`", + "severity": "error" + }, + { + "column": 9, + "path": "src/paperless_mail/tests/test_preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `Message` has no attribute `_headers`", + "severity": "error" + }, + { + "column": 27, + "path": "src/paperless_mail/tests/test_preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `Message` has no attribute `_headers`", + "severity": "error" + }, + { + "column": 51, + "path": "src/paperless_mail/tests/test_preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `Crypt` has no attribute `stderr`", + "severity": "error" + }, + { + "column": 36, + "path": "src/paperless_mail/tests/test_preprocessor.py", + "name": "missing-attribute", + "concise_description": "Object of class `str` has no attribute `decode`", + "severity": "error" + }, + { + "column": 28, + "path": "src/paperless_mail/views.py", + "name": "unbound-name", + "concise_description": "`result` may be uninitialized", + "severity": "error" + }, + { "column": 29, - "stop_line": 304, - "stop_column": 40, "path": "src/paperless_mail/views.py", - "code": -2, "name": "unbound-name", - "description": "`imap_server` may be uninitialized", "concise_description": "`imap_server` may be uninitialized", "severity": "error" }, { - "line": 308, "column": 26, - "stop_line": 308, - "stop_column": 34, "path": "src/paperless_mail/views.py", - "code": -2, "name": "unbound-name", - "description": "`defaults` may be uninitialized", "concise_description": "`defaults` may be uninitialized", "severity": "error" + }, + { + "column": 24, + "path": "src/paperless_testing/http.py", + "name": "bad-argument-type", + "concise_description": "Argument `AsyncIterator[bytes] | Iterator[bytes]` is not assignable to parameter `iterable_of_bytes` with type `Iterable[Buffer]` in function `bytes.join`", + "severity": "error" + }, + { + "column": 16, + "path": "src/paperless_testing/migrations.py", + "name": "missing-attribute", + "concise_description": "Object of class `NoneType` has no attribute `name`", + "severity": "error" } ] } diff --git a/Dockerfile b/Dockerfile index 5be2e00dd..50a15aa81 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,7 +30,7 @@ RUN set -eux \ # Purpose: Installs s6-overlay and rootfs # Comments: # - Don't leave anything extra in here either -FROM ghcr.io/astral-sh/uv:0.12.16-python3.14-trixie-slim AS s6-overlay-base +FROM ghcr.io/astral-sh/uv:0.12.23-python3.14-trixie-slim AS s6-overlay-base WORKDIR /usr/src/s6 @@ -171,7 +171,9 @@ RUN set -eux \ && cp /etc/ImageMagick-6/paperless-policy.xml /etc/ImageMagick-6/policy.xml \ && echo "Cleaning up image layer" \ && rm --force --verbose *.deb \ - && rm --recursive --force --verbose /var/lib/apt/lists/* + && rm --recursive --force --verbose /var/lib/apt/lists/* \ + && echo "Configuring interactive shells to source the s6 container environment" \ + && echo '. /etc/profile.d/contenv.sh' >> /etc/bash.bashrc WORKDIR /usr/src/paperless/src/ diff --git a/docker/compose/docker-compose.ci-test.yml b/docker/compose/docker-compose.ci-test.yml index be318f73c..2d8f2d894 100644 --- a/docker/compose/docker-compose.ci-test.yml +++ b/docker/compose/docker-compose.ci-test.yml @@ -24,7 +24,7 @@ services: network_mode: host restart: unless-stopped greenmail: - image: docker.io/greenmail/standalone:2.1.13 + image: docker.io/greenmail/standalone:2.1.14 hostname: greenmail container_name: greenmail environment: diff --git a/docker/rootfs/etc/profile.d/contenv.sh b/docker/rootfs/etc/profile.d/contenv.sh new file mode 100755 index 000000000..be5f3ba1c --- /dev/null +++ b/docker/rootfs/etc/profile.d/contenv.sh @@ -0,0 +1,18 @@ +#!/bin/sh +# Source s6 container environment for interactive shells. +# Ensures variables resolved from *_FILE secret injection are visible +# when using 'docker exec bash'. Does not affect s6 services (those +# use with-contenv directly). Has no effect in non-container contexts +# because the directory will not exist. +# Note: sh/dash shells opened via 'docker exec sh' are not covered; +# only bash-based sessions benefit from this file. +_pngx_contenv="/run/s6/container_environment" +if [ -d "${_pngx_contenv}" ]; then + for _pngx_f in "${_pngx_contenv}"/*; do + [ -f "${_pngx_f}" ] || continue + _pngx_name=$(basename "${_pngx_f}") + _pngx_val=$(cat "${_pngx_f}") + export "${_pngx_name}=${_pngx_val}" + done +fi +unset _pngx_contenv _pngx_f _pngx_name _pngx_val diff --git a/docs/advanced_usage.md b/docs/advanced_usage.md index 661c2d704..59cfa5a0b 100644 --- a/docs/advanced_usage.md +++ b/docs/advanced_usage.md @@ -136,13 +136,15 @@ for suggested generation and embedding models. ### AI-assisted suggestions With AI enabled, Paperless-ngx can suggest a title, tags, correspondent, document type, -storage path and dates by sending the document to the LLM. This is **opt-in per request** -and surfaces through the "Suggest" control on the document detail page, alongside the -classic classifier-based suggestions — it does not disable them. Suggestions are requested -automatically when you open a document that carries an inbox tag unless "Automatically request -suggestions for inbox documents" under Settings > Documents is disabled. Suggestion output -language can be steered with -[`PAPERLESS_AI_LLM_OUTPUT_LANGUAGE`](configuration.md#PAPERLESS_AI_LLM_OUTPUT_LANGUAGE) +storage path and dates by sending the document to the LLM using "Suggest" button on the document +detail page. You can choose which type of suggestions are requested by default under Settings > +Documents, either ML (classifier-based) suggestions, AI suggestions, or both. When both are requested +the results are combined. + +Suggestions are requested automatically when you open a document that carries an inbox tag +unless "Automatically request suggestions for inbox documents" under Settings > Documents is disabled. + +Suggestion output language can be steered with [`PAPERLESS_AI_LLM_OUTPUT_LANGUAGE`](configuration.md#PAPERLESS_AI_LLM_OUTPUT_LANGUAGE) (otherwise it follows the user's UI language). ### The LLM index (RAG) and similar documents @@ -153,8 +155,11 @@ in similar existing documents, and the document chat can retrieve relevant conte Enable it by setting [`PAPERLESS_AI_LLM_EMBEDDING_BACKEND`](configuration.md#PAPERLESS_AI_LLM_EMBEDDING_BACKEND) -(`huggingface` for fully-local embeddings, or `ollama` / `openai-like`). The index is only -built when AI is enabled **and** an embedding backend is set. +(`huggingface` for fully-local embeddings, or `ollama` / `openai-like`). By default, the main +LLM API key and endpoint are used, but an optional embedding-specific[API key](configuration.md#PAPERLESS_AI_LLM_EMBEDDING_API_KEY) +and [endpoint](configuration.md#PAPERLESS_AI_LLM_EMBEDDING_ENDPOINT) can be configured. + +The index is only built when AI is enabled **and** an embedding backend is set. The index is updated automatically on a schedule controlled by [`PAPERLESS_LLM_INDEX_TASK_CRON`](configuration.md#PAPERLESS_LLM_INDEX_TASK_CRON) (daily by @@ -1005,6 +1010,19 @@ documents to both separate and categorize them in a single operation. **Example:** A 6-page scan with TAG:invoice on page 3 and TAG:receipt on page 5 will create three documents: pages 1-2 (no tags), pages 3-4 (tagged "invoice"), and pages 5-6 (tagged "receipt"). +### Barcode Contents {#barcode-contents} + +By default, Paperless only uses barcodes for splitting, ASNs and tags. With +[`PAPERLESS_CONSUMER_STORE_BARCODE_VALUES`](configuration.md#PAPERLESS_CONSUMER_STORE_BARCODE_VALUES) +enabled, it stores the content of every barcode with the document, e.g. payment codes or QR codes. + +- Barcodes are listed on the **Metadata** tab with page, type and content, and can be copied. +- The API returns them in the `barcodes` field of `/api/documents/{id}/metadata/`. +- They can be [searched](usage.md#searching-barcodes), e.g. `barcodes:DE89370400440532013000`. +- Only the first [`PAPERLESS_CONSUMER_BARCODE_MAX_PAGES`](configuration.md#PAPERLESS_CONSUMER_BARCODE_MAX_PAGES) + pages are scanned. Reprocessing reads the barcodes of existing documents. +- Each version keeps its own barcodes, and the newest version's are shown and searched. + ## Automatic collation of double-sided documents {#collate} !!! note diff --git a/docs/configuration.md b/docs/configuration.md index d5ea6e96c..3257a815c 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -1796,6 +1796,13 @@ assigns or creates tags if a properly formatted barcode is detected. Defaults to false. +#### [`PAPERLESS_CONSUMER_STORE_BARCODE_VALUES=`](#PAPERLESS_CONSUMER_STORE_BARCODE_VALUES) {#PAPERLESS_CONSUMER_STORE_BARCODE_VALUES} + +: Stores the content of every barcode found during consumption, see +[Barcode Contents](advanced_usage.md#barcode-contents). + + Defaults to false. + ## Audit Trail #### [`PAPERLESS_AUDIT_LOG_ENABLED=`](#PAPERLESS_AUDIT_LOG_ENABLED) {#PAPERLESS_AUDIT_LOG_ENABLED} @@ -2133,6 +2140,13 @@ for language and resource considerations. Defaults to None. +#### [`PAPERLESS_AI_LLM_EMBEDDING_API_KEY=`](#PAPERLESS_AI_LLM_EMBEDDING_API_KEY) {#PAPERLESS_AI_LLM_EMBEDDING_API_KEY} + +: The API key to use for the embedding backend. If not supplied, embeddings use +`PAPERLESS_AI_LLM_API_KEY`. + + Defaults to None. + #### [`PAPERLESS_AI_LLM_EMBEDDING_ENDPOINT=`](#PAPERLESS_AI_LLM_EMBEDDING_ENDPOINT) {#PAPERLESS_AI_LLM_EMBEDDING_ENDPOINT} : The endpoint / url to use for the embedding backend. If not supplied, embeddings use @@ -2217,6 +2231,19 @@ used with the OpenAI-compatible backend to target a custom provider or local gat Defaults to true, which allows internal endpoints. +#### [`PAPERLESS_AI_LLM_EXTRA_PARAMS=`](#PAPERLESS_AI_LLM_EXTRA_PARAMS) {#PAPERLESS_AI_LLM_EXTRA_PARAMS} + +: A JSON object of extra parameters sent with every LLM request, for providers that require a parameter Paperless does not +set itself. Values here override Paperless' own, and no validation is performed. Whatever you put here is passed to the +backend as-is, so an invalid parameter will simply be rejected by your provider. For example, current OpenAI reasoning +models refuse tool calls on the chat completions API unless reasoning is off: + + ``` + PAPERLESS_AI_LLM_EXTRA_PARAMS={"reasoning_effort": "none"} + ``` + + Defaults to empty, which adds nothing to requests. + #### [`PAPERLESS_LLM_INDEX_TASK_CRON=`](#PAPERLESS_LLM_INDEX_TASK_CRON) {#PAPERLESS_LLM_INDEX_TASK_CRON} : Configures the schedule to update the AI embeddings of text content and metadata for all documents. Only performed if diff --git a/docs/development.md b/docs/development.md index d4c44ce89..bfab008f6 100644 --- a/docs/development.md +++ b/docs/development.md @@ -150,6 +150,7 @@ pnpm ng build --configuration production is loaded as well. However, the tests rely on the default configuration. This is not ideal. But for now, make sure no settings except for DEBUG are overridden when testing. +- Tests run in a random order each session, so that one test cannot quietly depend on another having run first. The seed is printed at the top of the run; pass `--randomly-seed=` to replay that exact order, or `--randomly-seed=last` to repeat the previous run. !!! note diff --git a/docs/usage.md b/docs/usage.md index 0f7c245ae..20803f2a6 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -1060,6 +1060,20 @@ notes.user:alice notes.note:insurance The bare `notes:` prefix is shorthand for `notes.note:`. +#### Searching barcodes + +If [barcode contents are stored](advanced_usage.md#barcode-contents), they can be searched by +content or type, but only with a field name: + +``` +barcodes.value:DE89370400440532013000 +barcodes.format:qrcode +barcodes:wifi barcodes:guest +``` + +`barcodes:` is shorthand for `barcodes.value:`. Separators are stripped, so each part of e.g. +`WIFI:S:Guest;P:secret;;` can be searched on its own. + All of these can be combined. Syntax not described here may not work as expected, and an unknown field name is searched as ordinary text. !!! note diff --git a/pyproject.toml b/pyproject.toml index 1317146d3..a77dcd23d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,9 @@ [project] name = "paperless-ngx" version = "3.2.1" -description = "A community-supported supercharged document management system: scan, index and archive all your physical documents" +description = """\ + A community-supported supercharged document management system: scan, index and archive all your physical documents\ + """ readme = "README.md" requires-python = ">=3.11" classifiers = [ @@ -10,13 +12,13 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", ] # TODO: Move certain things to groups and then utilize that further # This will allow testing to not install a webserver, mysql, etc dependencies = [ "azure-ai-documentintelligence>=1.0.2", "babel>=2.17", - "bleach~=6.4.0", "celery[redis]~=5.6.2", "channels~=4.2", "channels-redis~=4.2", @@ -31,8 +33,8 @@ dependencies = [ "django-compression-middleware~=0.5.0", "django-cors-headers~=4.9.0", "django-extensions~=4.1", - "django-filter~=25.1", - "django-guardian>=3.3.3,<3.5", + "django-filter>=25.1,<27", + "django-guardian>=3.3.3,<3.6", "django-multiselectfield~=1.0.1", "django-rich~=2.2.0", "django-soft-delete~=1.0.18", @@ -42,7 +44,7 @@ dependencies = [ "drf-spectacular-sidecar>=2026.7.1,<2026.10", "drf-writable-nested~=0.7.1", "filelock~=3.32.0", - "flower>=2.0.1,<2.2", + "flower>=2.0.1,<2.3", "gotenberg-client[httpx]~=1.0", "httpx-oauth~=0.17", "ijson>=3.5.1", @@ -74,6 +76,7 @@ dependencies = [ "tantivy~=0.26.0", "tika-client[httpx]~=1.0", "torch>=2.13,<2.15", + "turbohtml~=1.10.0", "watchfiles>=1.2", "whitenoise~=6.11", "whoosh-compat[tantivy]==0.3", @@ -81,13 +84,13 @@ dependencies = [ ] [project.optional-dependencies] mariadb = [ - "mysqlclient~=2.2.7", + "mysqlclient>=2.2.7,<2.4", ] postgres = [ "psycopg[c,pool]==3.3.4", # Direct dependency for proper resolution of the pre-built wheels "psycopg-c==3.3.4", - "psycopg-pool==3.3.1", + "psycopg-pool==3.3.3", ] webserver = [ "granian[uvloop]>=2.7,<2.9", @@ -109,7 +112,7 @@ lint = [ testing = [ "daphne", "factory-boy~=3.3.1", - "faker>=40.36,<40.39", + "faker>=40.36,<40.40", "imagehash", "pytest~=9.1.1", "pytest-cov~=7.1.0", @@ -117,7 +120,7 @@ testing = [ "pytest-env~=1.7.0", "pytest-httpx", "pytest-mock~=3.15.1", - # "pytest-randomly~=4.0.1", + "pytest-randomly~=5.0.0", "pytest-rerunfailures~=16.4", "pytest-sugar", "pytest-xdist~=3.8.0", @@ -133,7 +136,6 @@ typing = [ "mypy", "mypy-baseline", "pyrefly", - "types-bleach", "types-channels", "types-colorama", "types-dateparser", @@ -148,6 +150,7 @@ typing = [ [tool.uv] required-version = ">=0.9.0" +prerelease = "disallow" environments = [ "sys_platform == 'darwin'", "sys_platform == 'linux'", @@ -244,6 +247,10 @@ per-file-ignores."docker/wait-for-redis.py" = [ per-file-ignores."src/documents/models.py" = [ "SIM115", ] +per-file-ignores."src/documents/tests/*.py" = [ + "TID251", +] +flake8-tidy-imports.banned-api."documents.tests".msg = "Shared test infrastructure lives in src/paperless_testing/." isort.force-single-line = true [tool.codespell] @@ -271,9 +278,9 @@ plugins = [ ] [tool.pyrefly] -baseline = ".pyrefly-baseline.json" python-platform = "linux" search-path = [ "src" ] +baseline = ".pyrefly-baseline.json" [tool.django-stubs] django_settings_module = "paperless.settings" @@ -326,6 +333,8 @@ PAPERLESS_CACHE_BACKEND = "django.core.cache.backends.locmem.LocMemCache" PAPERLESS_CHANNELS_BACKEND = "channels.layers.InMemoryChannelLayer" # I don't think anything hits this, but just in case, basically infinite PAPERLESS_TOKEN_THROTTLE_RATE = "1000/min" +# The 0.1s production default trips on a stalled CI runner, the date parsing tests then find no dates +PAPERLESS_MATCH_REGEX_TIMEOUT_SECONDS = "5" [tool.coverage.run] source = [ @@ -334,13 +343,15 @@ source = [ omit = [ "*/tests/*", "manage.py", - "paperless/wsgi.py", "paperless/auth.py", + "paperless/wsgi.py", + "src/conftest.py", + "src/paperless_testing/*", ] [tool.coverage.report] exclude_also = [ - "if settings.AUDIT_LOG_ENABLED:", "if AUDIT_LOG_ENABLED:", + "if settings.AUDIT_LOG_ENABLED:", "if TYPE_CHECKING:", ] diff --git a/src-ui/angular.json b/src-ui/angular.json index c3801947d..633be88c5 100644 --- a/src-ui/angular.json +++ b/src-ui/angular.json @@ -91,6 +91,11 @@ "glob": "**/*", "input": "node_modules/pdfjs-dist/iccs/", "output": "/assets/iccs/" + }, + { + "glob": "**/*", + "input": "node_modules/pdfjs-dist/cmaps/", + "output": "/assets/cmaps/" } ], "styles": [ diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf index 4781cd5e5..b865f4e6d 100644 --- a/src-ui/messages.xlf +++ b/src-ui/messages.xlf @@ -5,235 +5,235 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 @@ -296,7 +296,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -571,7 +571,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -650,7 +650,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -698,7 +698,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -870,7 +870,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1181,7 +1181,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1277,67 +1277,95 @@ 252 + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1345,21 +1373,21 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1370,7 +1398,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1381,7 +1409,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1400,14 +1428,14 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1423,7 +1451,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1462,28 +1490,28 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1494,18 +1522,18 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1536,11 +1564,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1571,14 +1599,14 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1597,7 +1625,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1612,74 +1640,74 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1687,7 +1715,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1714,7 +1742,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1722,7 +1750,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1749,7 +1777,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1757,7 +1785,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1780,7 +1808,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1796,7 +1824,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1831,7 +1859,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -1850,7 +1878,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -1873,7 +1901,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -1892,7 +1920,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -1915,7 +1943,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -1934,7 +1962,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -1953,28 +1981,28 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2450,7 +2478,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3364,11 +3392,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3553,7 +3581,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -3984,7 +4012,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4128,7 +4156,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 @@ -4139,7 +4167,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 @@ -4150,7 +4178,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 @@ -5402,7 +5430,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 @@ -6283,7 +6311,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6316,7 +6344,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7148,6 +7176,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Change @@ -7685,46 +7717,81 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html 120 - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 + + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 @@ -8270,6 +8337,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -8283,6 +8354,28 @@ 34 + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + of @@ -8407,46 +8500,39 @@ src/main.ts - 469 + 473 Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html 71 - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -8457,228 +8543,235 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 + + + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -8689,28 +8782,28 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -8733,74 +8826,74 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -8811,14 +8904,14 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -8829,102 +8922,102 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 @@ -9745,7 +9838,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -9760,7 +9853,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10016,56 +10109,56 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Next page src/app/components/document-list/document-list.component.ts - 385 + 388 View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 @@ -11990,109 +12083,130 @@ 328 + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + AI Enabled src/app/data/paperless-config.ts - 335 + 342 Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 + + + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Output Language src/app/data/paperless-config.ts - 408 + 423 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 @@ -13105,14 +13219,14 @@ Prev src/main.ts - 468 + 472 End src/main.ts - 470 + 474 diff --git a/src-ui/package.json b/src-ui/package.json index d82efa624..bce5055bc 100644 --- a/src-ui/package.json +++ b/src-ui/package.json @@ -15,16 +15,16 @@ }, "private": true, "dependencies": { - "@angular/cdk": "^22.1.6", - "@angular/common": "~22.1.6", - "@angular/compiler": "~22.1.6", - "@angular/core": "~22.1.6", - "@angular/forms": "~22.1.6", - "@angular/localize": "~22.1.6", - "@angular/platform-browser": "~22.1.6", - "@angular/router": "~22.1.6", + "@angular/cdk": "^22.2.0", + "@angular/common": "~22.2.0", + "@angular/compiler": "~22.2.0", + "@angular/core": "~22.2.0", + "@angular/forms": "~22.2.0", + "@angular/localize": "~22.2.0", + "@angular/platform-browser": "~22.2.0", + "@angular/router": "~22.2.0", "@ng-bootstrap/ng-bootstrap": "^21.0.0", - "@ng-select/ng-select": "~24.1.1", + "@ng-select/ng-select": "~24.1.2", "@ngneat/dirty-check-forms": "^3.0.3", "@popperjs/core": "^2.11.8", "bootstrap": "^5.3.8", @@ -45,29 +45,29 @@ }, "devDependencies": { "@angular-builders/jest": "^22.0.1", - "@angular-devkit/core": "^22.1.8", - "@angular-devkit/schematics": "^22.1.8", + "@angular-devkit/core": "^22.2.0", + "@angular-devkit/schematics": "^22.2.0", "@angular-eslint/builder": "22.5.0", "@angular-eslint/eslint-plugin": "22.5.0", "@angular-eslint/eslint-plugin-template": "22.5.0", "@angular-eslint/schematics": "22.5.0", "@angular-eslint/template-parser": "22.5.0", - "@angular/build": "22.1.8", - "@angular/cli": "22.1.8", - "@angular/compiler-cli": "~22.1.6", + "@angular/build": "22.2.0", + "@angular/cli": "22.2.0", + "@angular/compiler-cli": "~22.2.0", "@playwright/test": "^1.62.1", "@types/jest": "^30.0.0", - "@types/node": "^26.5.0", - "@typescript-eslint/eslint-plugin": "^8.70.0", - "@typescript-eslint/parser": "^8.70.0", - "@typescript-eslint/utils": "^8.70.0", - "eslint": "^10.10.0", - "jest": "30.5.1", - "jest-environment-jsdom": "^30.5.1", + "@types/node": "^26.6.2", + "@typescript-eslint/eslint-plugin": "^8.70.1", + "@typescript-eslint/parser": "^8.70.1", + "@typescript-eslint/utils": "^8.70.1", + "eslint": "^10.11.0", + "jest": "30.5.2", + "jest-environment-jsdom": "^30.5.2", "jest-junit": "^17.0.0", "jest-preset-angular": "^17.0.0", "jest-websocket-mock": "^2.5.0", - "prettier": "^3.9.6", + "prettier": "^3.9.9", "prettier-plugin-organize-imports": "^4.3.0", "ts-node": "~10.9.2", "typescript": "^6.0.3" diff --git a/src-ui/pnpm-lock.yaml b/src-ui/pnpm-lock.yaml index 834b9f67a..cb044387c 100644 --- a/src-ui/pnpm-lock.yaml +++ b/src-ui/pnpm-lock.yaml @@ -9,38 +9,38 @@ importers: .: dependencies: '@angular/cdk': - specifier: ^22.1.6 - version: 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/forms@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) + specifier: ^22.2.0 + version: 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/forms@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) '@angular/common': - specifier: ~22.1.6 - version: 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) + specifier: ~22.2.0 + version: 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) '@angular/compiler': - specifier: ~22.1.6 - version: 22.1.6 + specifier: ~22.2.0 + version: 22.2.0 '@angular/core': - specifier: ~22.1.6 - version: 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) + specifier: ~22.2.0 + version: 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) '@angular/forms': - specifier: ~22.1.6 - version: 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) + specifier: ~22.2.0 + version: 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) '@angular/localize': - specifier: ~22.1.6 - version: 22.1.6(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6) + specifier: ~22.2.0 + version: 22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0) '@angular/platform-browser': - specifier: ~22.1.6 - version: 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + specifier: ~22.2.0 + version: 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) '@angular/router': - specifier: ~22.1.6 - version: 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) + specifier: ~22.2.0 + version: 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) '@ng-bootstrap/ng-bootstrap': specifier: ^21.0.0 - version: 21.0.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/forms@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/localize@22.1.6(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6))(@popperjs/core@2.11.8)(rxjs@7.8.2) + version: 21.0.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/forms@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/localize@22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0))(@popperjs/core@2.11.8)(rxjs@7.8.2) '@ng-select/ng-select': - specifier: ~24.1.1 - version: 24.1.1(9fe845424e0b7fed075564002b1b329d) + specifier: ~24.1.2 + version: 24.1.2(4a7eb56833580f1a9810b0df0995c3c6) '@ngneat/dirty-check-forms': specifier: ^3.0.3 - version: 3.0.3(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/forms@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/router@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(lodash-es@4.18.1)(rxjs@7.8.2) + version: 3.0.3(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/forms@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/router@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(lodash-es@4.18.1)(rxjs@7.8.2) '@popperjs/core': specifier: ^2.11.8 version: 2.11.8 @@ -58,19 +58,19 @@ importers: version: 1.0.0 ngx-bootstrap-icons: specifier: ^1.9.3 - version: 1.9.3(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + version: 1.9.3(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) ngx-color: specifier: ^10.1.0 - version: 10.1.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + version: 10.1.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) ngx-cookie-service: specifier: ^22.0.0 - version: 22.0.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + version: 22.0.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) ngx-device-detector: specifier: ^12.0.0 - version: 12.0.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + version: 12.0.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) ngx-ui-tour-ng-bootstrap: specifier: ^19.0.0 - version: 19.0.0(62aff516824eb66443798196c0536bf9) + version: 19.0.0(cd8c036435da1b7a89d66e1b1b6d40d2) normalize-diacritics: specifier: ^5.0.0 version: 5.0.0 @@ -92,37 +92,37 @@ importers: devDependencies: '@angular-builders/jest': specifier: ^22.0.1 - version: 22.0.1(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.1(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(chokidar@5.0.0)(jest@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(rxjs@7.8.2)(typescript@6.0.3) + version: 22.0.1(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.2(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(chokidar@5.0.0)(jest@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(rxjs@7.8.2)(typescript@6.0.3) '@angular-devkit/core': - specifier: ^22.1.8 - version: 22.1.8(chokidar@5.0.0) + specifier: ^22.2.0 + version: 22.2.0(chokidar@5.0.0) '@angular-devkit/schematics': - specifier: ^22.1.8 - version: 22.1.8(chokidar@5.0.0) + specifier: ^22.2.0 + version: 22.2.0(chokidar@5.0.0) '@angular-eslint/builder': specifier: 22.5.0 - version: 22.5.0(chokidar@5.0.0)(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + version: 22.5.0(chokidar@5.0.0)(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) '@angular-eslint/eslint-plugin': specifier: 22.5.0 - version: 22.5.0(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + version: 22.5.0(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) '@angular-eslint/eslint-plugin-template': specifier: 22.5.0 - version: 22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.0)(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + version: 22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.1)(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) '@angular-eslint/schematics': specifier: 22.5.0 - version: 22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.0)(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(chokidar@5.0.0)(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + version: 22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.1)(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(chokidar@5.0.0)(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) '@angular-eslint/template-parser': specifier: 22.5.0 - version: 22.5.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + version: 22.5.0(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) '@angular/build': - specifier: 22.1.8 - version: 22.1.8(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6)(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/localize@22.1.6(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(@types/node@26.5.0)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3(supports-color@8.1.1))(jiti@2.7.0)(postcss@8.5.28)(supports-color@8.1.1)(tslib@2.8.1)(typescript@6.0.3) + specifier: 22.2.0 + version: 22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0)(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/localize@22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(@types/node@26.6.2)(istanbul-lib-instrument@6.0.3(supports-color@8.1.1))(jiti@2.7.0)(postcss@8.5.28)(supports-color@8.1.1)(tslib@2.8.1)(typescript@6.0.3) '@angular/cli': - specifier: 22.1.8 - version: 22.1.8(@types/node@26.5.0)(chokidar@5.0.0)(supports-color@8.1.1) + specifier: 22.2.0 + version: 22.2.0(@types/node@26.6.2)(chokidar@5.0.0) '@angular/compiler-cli': - specifier: ~22.1.6 - version: 22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3) + specifier: ~22.2.0 + version: 22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3) '@playwright/test': specifier: ^1.62.1 version: 1.62.1 @@ -130,44 +130,44 @@ importers: specifier: ^30.0.0 version: 30.0.0 '@types/node': - specifier: ^26.5.0 - version: 26.5.0 + specifier: ^26.6.2 + version: 26.6.2 '@typescript-eslint/eslint-plugin': - specifier: ^8.70.0 - version: 8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + specifier: ^8.70.1 + version: 8.70.1(@typescript-eslint/parser@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/parser': - specifier: ^8.70.0 - version: 8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + specifier: ^8.70.1 + version: 8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) '@typescript-eslint/utils': - specifier: ^8.70.0 - version: 8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + specifier: ^8.70.1 + version: 8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) eslint: - specifier: ^10.10.0 - version: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + specifier: ^10.11.0 + version: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) jest: - specifier: 30.5.1 - version: 30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)) + specifier: 30.5.2 + version: 30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)) jest-environment-jsdom: - specifier: ^30.5.1 - version: 30.5.1(supports-color@8.1.1) + specifier: ^30.5.2 + version: 30.5.2(supports-color@8.1.1) jest-junit: specifier: ^17.0.0 version: 17.0.0 jest-preset-angular: specifier: ^17.0.0 - version: 17.0.0(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.1(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(jest@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(typescript@6.0.3) + version: 17.0.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.2(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(jest@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(typescript@6.0.3) jest-websocket-mock: specifier: ^2.5.0 version: 2.5.0 prettier: - specifier: ^3.9.6 - version: 3.9.6 + specifier: ^3.9.9 + version: 3.9.9 prettier-plugin-organize-imports: specifier: ^4.3.0 - version: 4.3.0(prettier@3.9.6)(typescript@6.0.3) + version: 4.3.0(prettier@3.9.9)(typescript@6.0.3) ts-node: specifier: ~10.9.2 - version: 10.9.2(@types/node@26.5.0)(typescript@6.0.3) + version: 10.9.2(@types/node@26.6.2)(typescript@6.0.3) typescript: specifier: ^6.0.3 version: 6.0.3 @@ -203,6 +203,11 @@ packages: engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true + '@angular-devkit/architect@0.2202.0': + resolution: {integrity: sha512-HxY8JxLd3WxFj45BtDUHZ9I6hO4KebTz32UQ4ZkPh0EMK/TZdspbSgwd2lo1jE6a90knRAQkAsnBTKwWvGSm3A==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + hasBin: true + '@angular-devkit/core@22.1.3': resolution: {integrity: sha512-ASK8oZVElt/Zpz5FrzJjLnnUbzp/fW57eFFSRgpA+n9KRnuFi6YvNdSS3HkG5049Jcukce+PiMBdfzw/jBVkEw==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -212,15 +217,6 @@ packages: chokidar: optional: true - '@angular-devkit/core@22.1.6': - resolution: {integrity: sha512-KLBsZoc2RhOy0xSdeYcLoSOqV/fBP3feBmhY9o12ry2IuyW/17sCmWr6XbIfTIYQN6M98Y1ewmwVNFsvV5b0gA==} - engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - peerDependencies: - chokidar: ^5.0.0 - peerDependenciesMeta: - chokidar: - optional: true - '@angular-devkit/core@22.1.8': resolution: {integrity: sha512-34lsgg2FwMVBX7nR/ZqzRUcdvdYPvSB8XAEr2GudXAyZwLI9ehzfQlagAWR/gEb8p4uCFZW0r7uU0toxydq4Rw==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} @@ -230,18 +226,27 @@ packages: chokidar: optional: true + '@angular-devkit/core@22.2.0': + resolution: {integrity: sha512-dELBwXtJWUxFALdEVvdk8qK+XBa17EH5H9NZm+041/esjNi6SaZMusqBgr2PZKq7hD+O2jSCEHbey/hwkz2Awg==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + peerDependencies: + chokidar: ^5.0.0 + peerDependenciesMeta: + chokidar: + optional: true + '@angular-devkit/schematics@22.1.3': resolution: {integrity: sha512-ebY5bwZVB0onxxyTbJch//VidVVV8jo/F13n+TV5s/3ZywsC3/XZsfMHaxlFmpvP/G17+/C9JVoEXT+uwjT+/Q==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/schematics@22.1.6': - resolution: {integrity: sha512-IbDO9KbQyQm20uinsfT8d9ZtQw41/WVutI/65mAw39WZfN8Ky+MOgOUJCGLiSccMprvZ9YdodBTnN9bLH149Ag==} - engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@angular-devkit/schematics@22.1.8': resolution: {integrity: sha512-Pv3cPa/44kvEwYcqwx4Ns5dhIDmcFNSHhbpheqiEG1Z/u4e2t4zHKDtE3eHZB+8o+IcC7xJj+d+AqGR44RoZDA==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-devkit/schematics@22.2.0': + resolution: {integrity: sha512-yhp/LRzKHJOzo2gFm9+H5DKnsT9adi+ItO2pW0pW2B455sqZYE8RJaSku+TSlv+PvWSmbtFsPXNgSRLA6pSk8Q==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@angular-eslint/builder@22.5.0': resolution: {integrity: sha512-bChGIHOApVk3eXaAfCOxxb54tToIttSzADEUpuBN6cs7Jp7OO96lNpMktv9IPvxfyVrhbriocwNy33jhpRSt0Q==} peerDependencies: @@ -283,8 +288,8 @@ packages: eslint: ^9.0.0 || ^10.0.0 typescript: '*' - '@angular/build@22.1.8': - resolution: {integrity: sha512-tw+Evk0EITb8p8dTu743ONoFztCEiyDkdRbtZsh7C0vBS7Q9ElsOcFeg2Z9OAAwrmtZMIBuW3jrdPRQp7OCSdw==} + '@angular/build@22.2.0': + resolution: {integrity: sha512-9ABYN9zp4DqDfZxiqyIMEB5iec6xIuVys+BfVjOFkwd3tCnOK+DnRtU8OmI7R8BxUZwLzbPqFffZzvCVVfHP7Q==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} peerDependencies: '@angular/compiler': ^22.0.0 @@ -294,7 +299,7 @@ packages: '@angular/platform-browser': ^22.0.0 '@angular/platform-server': ^22.0.0 '@angular/service-worker': ^22.0.0 - '@angular/ssr': ^22.1.8 + '@angular/ssr': ^22.2.0 istanbul-lib-instrument: ^6.0.0 karma: ^6.4.0 less: ^4.2.0 @@ -304,7 +309,7 @@ packages: tailwindcss: ^2.0.0 || ^3.0.0 || ^4.0.0 tslib: ^2.3.0 typescript: '>=6.0 <6.1' - vitest: ^4.0.8 + vitest: ^4.0.8 || ^5.0.0 peerDependenciesMeta: '@angular/core': optional: true @@ -335,8 +340,8 @@ packages: vitest: optional: true - '@angular/cdk@22.1.6': - resolution: {integrity: sha512-4eHSs/sIIp1mesNKFDkDTYDhfB/3/Bpfjzv/PbybsKVd642FTa3IAbjWf3uqHS/V7mpucF3Q5gSpirZHDgxwrg==} + '@angular/cdk@22.2.0': + resolution: {integrity: sha512-Vxiqo03yKxzmON+hfa0UkUSC+TrWdtRgc1MtkE5l3NJQ5euF9Os4kOqDfW1nDt3/AjCplE64HX3h0gOK5m3zjw==} peerDependencies: '@angular/common': ^22.0.0 || ^23.0.0 '@angular/core': ^22.0.0 || ^23.0.0 @@ -344,38 +349,38 @@ packages: '@angular/platform-browser': ^22.0.0 || ^23.0.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/cli@22.1.8': - resolution: {integrity: sha512-MFN/FydqDndai8vF12hDxG5RlBt1HUUheeJgJNmuHYIne4bOAfOT+xuMpIK8+gLSRwCemdqR3OMM38pnsFJ/nA==} + '@angular/cli@22.2.0': + resolution: {integrity: sha512-FW4RCNXaPpbBcS4w6fetTO6eRT0xySYGSdQ2DGREU30G1TBnpJdJ6TAvs8mTBPXNfFMQTyioR2ie7UkJljLJKg==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} hasBin: true - '@angular/common@22.1.6': - resolution: {integrity: sha512-giuH+jJvo6YbBxbKofJCXvq6k8g1Z/xCAvh4piNFSSS6/toXTLCeZ+snr6Stw5b2wRbArM5Q5nDeuto3NqVPnQ==} + '@angular/common@22.2.0': + resolution: {integrity: sha512-BUKkncKwnaEcF/qatBOpzSIx2NthFZLYlTcE7iHwwsw+XQrwB9hU8Ca/l5HqaTJiMg0D8MjI/SWHnD4LFtNN+w==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} peerDependencies: - '@angular/core': 22.1.6 + '@angular/core': 22.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/compiler-cli@22.1.6': - resolution: {integrity: sha512-C1fQuaSLnibhfbb7Im/vurdBEcfQk+/GqPkY4+dgEKd4EPleO0xWlD+k5DwyNFX8a9w7HebWfo0Zl66HuaEwOQ==} + '@angular/compiler-cli@22.2.0': + resolution: {integrity: sha512-xDOvPlNv+RT7sE01wjuGFRMc5SDxWs3RZpGfO5NoI3a0jxM87UW49HmmgwQ6PaU0fya9mttNkHufhfOAbh0ZKQ==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} hasBin: true peerDependencies: - '@angular/compiler': 22.1.6 + '@angular/compiler': 22.2.0 typescript: '>=6.0 <6.1' peerDependenciesMeta: typescript: optional: true - '@angular/compiler@22.1.6': - resolution: {integrity: sha512-JjOUm/qD338+fGfZvxSNn/vTUiVqNwOiPzacInVUq1eVp7Jev+cnvEwXA2cFJkYZoy3Imz6wHoMvTUZNN8cbKQ==} + '@angular/compiler@22.2.0': + resolution: {integrity: sha512-bnqql/HfhnhDXoS7isNaXJAsbKYszcH+nFVWA6YhiAVZhqo3f+XoQb30qeqNtEOKuuC7SZfaAJ3jBkAvyC5CKg==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} - '@angular/core@22.1.6': - resolution: {integrity: sha512-3Ln9YYOhsaU2vPufnpcu6C4dlmX4e/nJTlggVcKMT7bGZH5KlEtw3h0uh9YfANv8YhQCEk1AcuRI7KpBnh5ing==} + '@angular/core@22.2.0': + resolution: {integrity: sha512-VhAgJ4GCdGgAy9+zADpSyEM9gt4pKg6+cqNeK3RBNeF3M3B8y7AWfD/nYRdM3Xzi152Pu+ipgFFNHpupCLTsvQ==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} peerDependencies: - '@angular/compiler': 22.1.6 + '@angular/compiler': 22.2.0 rxjs: ^6.5.3 || ^7.4.0 zone.js: ~0.15.0 || ~0.16.0 peerDependenciesMeta: @@ -384,41 +389,41 @@ packages: zone.js: optional: true - '@angular/forms@22.1.6': - resolution: {integrity: sha512-rfV4G4UB4l69yXSRvhaHPzTMIruvBlRO+ak9NtTcYMnsoj8O5ZCyPv0ledGIrLTBwGSI3X1j4nr9aoV+Rj/n+Q==} + '@angular/forms@22.2.0': + resolution: {integrity: sha512-Nm8o1uBk31EuQGzsK5EunNBVFzTN9MuTYLSrmg1SCPTcava4qK3AzSpl1+Put+cZTTnGtEBIy45AFaxHR2oryg==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} peerDependencies: - '@angular/common': 22.1.6 - '@angular/core': 22.1.6 - '@angular/platform-browser': 22.1.6 + '@angular/common': 22.2.0 + '@angular/core': 22.2.0 + '@angular/platform-browser': 22.2.0 rxjs: ^6.5.3 || ^7.4.0 - '@angular/localize@22.1.6': - resolution: {integrity: sha512-lxj8t1FtwzQq9ogZLWa7hkKl2jWAeWDsBE7pw9mg28XPAPHrwAKIRGz1TG4XUck0wyMn8LovlSeo/7A4gmY+0Q==} + '@angular/localize@22.2.0': + resolution: {integrity: sha512-RfaF5tAKWyQwGzu0P5bJUavB8QWrWdM/xU5gDXydIFopBk4WERaMYh5E5fGm39h09dod2vmFH3JND1Ht0Vgy6w==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} hasBin: true peerDependencies: - '@angular/compiler': 22.1.6 - '@angular/compiler-cli': 22.1.6 + '@angular/compiler': 22.2.0 + '@angular/compiler-cli': 22.2.0 - '@angular/platform-browser@22.1.6': - resolution: {integrity: sha512-jrRi6zpdz+jOle5l0OW7QL0a8xPgdnxWT5FrJabbiNKfYzQfqKcaAu02l8uJoJxtGb8fLQ8pbjkPpZEvKO2z+w==} + '@angular/platform-browser@22.2.0': + resolution: {integrity: sha512-XMUOyn8WARk9NdFGO3uRgdC3hPrp+2xsSYNeSkaEZ4jI3Pc23f22e4GI8Vayl/UOmShHVn/i+NWfTWh3SEbbSw==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} peerDependencies: - '@angular/animations': 22.1.6 - '@angular/common': 22.1.6 - '@angular/core': 22.1.6 + '@angular/animations': 22.2.0 + '@angular/common': 22.2.0 + '@angular/core': 22.2.0 peerDependenciesMeta: '@angular/animations': optional: true - '@angular/router@22.1.6': - resolution: {integrity: sha512-ex0vrkcVyJJdn7NzZXun+5ctaPPLTZJ/gE7A3g1dun7BM3g4Z6zT738mODFeJgtPtJNf4bTs2gpgvyegvzWH7w==} + '@angular/router@22.2.0': + resolution: {integrity: sha512-+pxHMwWWKg+ejS1vKa+tS91CDusCIK1MOSy6fVLc89McMOY/C8tsLrh1uJaMjklejsz+3XUhJgrLOvl3ISNz6w==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0} peerDependencies: - '@angular/common': 22.1.6 - '@angular/core': 22.1.6 - '@angular/platform-browser': 22.1.6 + '@angular/common': 22.2.0 + '@angular/core': 22.2.0 + '@angular/platform-browser': 22.2.0 rxjs: ^6.5.3 || ^7.4.0 '@asamuzakjp/css-color@3.2.0': @@ -428,8 +433,8 @@ packages: resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} engines: {node: '>=6.9.0'} - '@babel/code-frame@8.0.0': - resolution: {integrity: sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==} + '@babel/code-frame@8.0.6': + resolution: {integrity: sha512-uMHhvmDmwFiLuiozaoRYTZHqMFuu3fem/X9JY78lohAuLoh8LSGGC8JqUzo2cVuBsBxkjMZNk56CE7ock8Xxkw==} engines: {node: ^22.18.0 || >=24.11.0} '@babel/compat-data@7.29.7': @@ -448,32 +453,32 @@ packages: resolution: {integrity: sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==} engines: {node: ^22.18.0 || >=24.11.0} + '@babel/core@8.0.5': + resolution: {integrity: sha512-2/oWkgTbBYoqioCWAE4XJobOrzwxTDa5/XjDP3tJ1BhDr/owcd9qnXBp4xc3/2G5X4bvXM04nrxbRJxFcXAxFQ==} + engines: {node: ^22.18.0 || >=24.11.0} + '@babel/generator@7.29.8': resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} engines: {node: '>=6.9.0'} - '@babel/generator@8.0.5': - resolution: {integrity: sha512-f/TuhuMAxJqhwxEGNsJrswuG9VHmh0oNFoQoo6TbpgtFAz9wYZXcTAcWZMHfp7ljesr0RG04bp3Aos9GI59L7w==} - engines: {node: ^22.18.0 || >=24.11.0} - - '@babel/helper-annotate-as-pure@8.0.0': - resolution: {integrity: sha512-NSpMkMsvvZqzThJ0p1B02cbtA2ObEyfBvq950bmNkyxsxvcxwhvvCB036rKhlEnuBBo30bOrk13u3FzlKSoRrw==} + '@babel/generator@8.0.6': + resolution: {integrity: sha512-/pcanjdRsonCexCuxgGD8fKnBLLzk2i9uM4kmcmGyyev2R5YDs+rafMYZ89RvaGY1mW8T7C5au0TyYaEeHBGng==} engines: {node: ^22.18.0 || >=24.11.0} '@babel/helper-compilation-targets@7.29.7': resolution: {integrity: sha512-wem6WaBj4NaVYVdNhLPPVacES6ZJ+KBBfSkTMD3YZxbP3rm3Di85tJU5ljaUNhaOynt+Aj0xruhYuzQBt8n71g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@8.0.5': - resolution: {integrity: sha512-Qk8ahMGooH5mz6uuhoDvfZGkUf/Mf3RTBucVVl4MKx4LKMTv872TeW8O92h15iVtlN8wAROBIpI1aV6x1z0LCQ==} + '@babel/helper-compilation-targets@8.0.6': + resolution: {integrity: sha512-HTrtZ4+iA0+kzdbCgvdSk1U4pEl3BvpGnlUbualCGNbrVhhQvhgBzurTUmqpWyvyHbWYWaIfdx2mOlL9LJjsew==} engines: {node: ^22.18.0 || >=24.11.0} '@babel/helper-globals@7.29.7': resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} engines: {node: '>=6.9.0'} - '@babel/helper-globals@8.0.0': - resolution: {integrity: sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==} + '@babel/helper-globals@8.0.6': + resolution: {integrity: sha512-OdnA/N52LhzFpeUuVz5YGuSWjc7TPHiFmVYZbPlSgExocO2GwbxVpSni9MVs5wwW+wZ4kPuwBEBN9pIPDYz1mA==} engines: {node: ^22.18.0 || >=24.11.0} '@babel/helper-module-imports@7.29.7': @@ -490,24 +495,20 @@ packages: resolution: {integrity: sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==} engines: {node: '>=6.9.0'} - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.29.7': resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@8.0.0': - resolution: {integrity: sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==} + '@babel/helper-string-parser@8.0.6': + resolution: {integrity: sha512-+6HYEBnsDRZHJtUTAEfMQd0zMDqdFHS7C+5vAsEZqBUr3vEMWOWlHJ0Jz1gS8jJIlCvLsuA6ivmeoqzH936YcA==} engines: {node: ^22.18.0 || >=24.11.0} '@babel/helper-validator-identifier@7.29.7': resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@8.0.4': - resolution: {integrity: sha512-4wFaiLd0bVo4cIoTXI3zKI038NIWE/cr3jvBjejOVYVxV/m8Ltav1USiGzG1fmS5J2RhgEOgXNNK46cRPnRsrg==} + '@babel/helper-validator-identifier@8.0.6': + resolution: {integrity: sha512-HYx0YmuchRxRSpnjvcNffnPS8DCauKNmnumIuHG3jnQAVewRA7kfJGwF13ayEpSZs7s4R/oBH4eppuXcAQd5JQ==} engines: {node: ^22.18.0 || >=24.11.0} '@babel/helper-validator-option@7.29.7': @@ -531,8 +532,8 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/parser@8.0.5': - resolution: {integrity: sha512-51RXvQNFakaS0bTpYiGkxNbUVwkPO4kONv6EVLorZABxsx+KZ6Z7uSYvi/wmKS/+X+rfj9RvOw0/ZNh+cmI0Rw==} + '@babel/parser@8.0.6': + resolution: {integrity: sha512-LpGDIYJAzc3Y3PT9x+FxBrGYu2PlWxLmyN7SwPTzaX0LSwEmFJBsRnPBqmaXF2r1v+Zhz6lNiEJ+7yKtM5+Ugg==} engines: {node: ^22.18.0 || >=24.11.0} hasBin: true @@ -639,21 +640,24 @@ packages: resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} engines: {node: '>=6.9.0'} - '@babel/traverse@8.0.5': - resolution: {integrity: sha512-XFfnuvapSc/vJOcUO7kwORSvpBIvraofKEZ2dhT0PjiF21BRCD7YbAFC8UEeDJNeLoQz82/gVqzgX5hCzkCbdg==} + '@babel/traverse@8.0.6': + resolution: {integrity: sha512-ilYV+qLStGzSKLipJlETdvdtpK3rAuwfCmCoGKv15MU4EoeIuLkespSNoNLFGOPSciEHx9TLWtN5mv0fz5w5mQ==} engines: {node: ^22.18.0 || >=24.11.0} '@babel/types@7.29.8': resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} engines: {node: '>=6.9.0'} - '@babel/types@8.0.5': - resolution: {integrity: sha512-eVdMqi3ej5aHhyQ2Si6yD2cAWeV8FJK9UrhK5aL0Sd8hu5GhT+YswhVNbVheOGVYMg8kuGuMaUpkB3stjj4z8A==} + '@babel/types@8.0.6': + resolution: {integrity: sha512-c+xgSWboV2pdwXP67BUWDVRHi2BO5Q3KwxyFVs7taVTY+fsK47/L51ZXQoV9rozHJDNHvJ4v4WEsI/IlxV2l2A==} engines: {node: ^22.18.0 || >=24.11.0} '@bcoe/v8-coverage@0.2.3': resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@bufbuild/protobuf@2.15.0': + resolution: {integrity: sha512-DAheWUkVr/SJTWCc+lg9dhY0eN4SaWlf4+bG1KzHeXbnqt0AfB/NX0Z+VunGlM1ki1B4zVvye27MpKh/svySUA==} + '@cacheable/memory@2.2.0': resolution: {integrity: sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==} @@ -699,27 +703,12 @@ packages: '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} - '@emnapi/core@1.11.1': - resolution: {integrity: sha512-RSvbQmHzdKzNsLYa/wHrbc3KN4sYLKAdPZxqiM2HATqv/SBk2/ENSHpvXGaLOMcsAyz0poEGqkmmKYG3OWiJEQ==} - - '@emnapi/core@1.11.2': - resolution: {integrity: sha512-TC8MkTuZUtcTSiFeuC0ksCh9QIJ5+F21MvZ4Wn4ORfYaFJ/0dsiudv5tVkejgwZlwQ39jL9WWDe2lz8x0WglOA==} - '@emnapi/runtime@1.10.0': resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==} - '@emnapi/runtime@1.11.1': - resolution: {integrity: sha512-vgj7R3y3Wgx24IQaGPA/R6YFXLHVMOZ0uVEyIQPaWs+rd1AzfEMXlAC22FYwO1XkKR6NPsq7mUandH8oIRdZFw==} - - '@emnapi/runtime@1.11.2': - resolution: {integrity: sha512-kyOl3X0DuTiT1h2ft8r2fYO8JYtU9a9Xis/zBSiGArNaagCOWx90N1k2wxp18czFDH+OgcWGb5ZP/XMt3dcyPA==} - '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} - '@emnapi/wasi-threads@1.2.2': - resolution: {integrity: sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA==} - '@esbuild/aix-ppc64@0.28.2': resolution: {integrity: sha512-XExcO+dvLKvVtNTibSTBej1NCAbaGhWn9Ww1ZPx80qsahhPFe/8jgWP0IchNe0F3HwkU7n8ejhH8bjonqht8mQ==} engines: {node: '>=18'} @@ -909,12 +898,6 @@ packages: '@harperfast/extended-iterable@1.0.3': resolution: {integrity: sha512-sSAYhQca3rDWtQUHSAPeO7axFIUJOI6hn1gjRC5APVE1a90tuyT8f5WIgRsFhhWA7htNkju2veB9eWL6YHi/Lw==} - '@hono/node-server@2.1.1': - resolution: {integrity: sha512-ELuehkj5VCBdgEw9zs+ivkKwyzzUCSQuE96YmiPvn1ECBoZCczbFXJLeEGMTYjphP6gydh4pHMqEYPVMYUVgQg==} - engines: {node: '>=20'} - peerDependencies: - hono: ^4 - '@humanfs/core@0.19.2': resolution: {integrity: sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==} engines: {node: '>=18.18.0'} @@ -948,15 +931,6 @@ packages: '@types/node': optional: true - '@inquirer/confirm@6.1.1': - resolution: {integrity: sha512-eb8DBZcz/2qHWQda4rk2JiQk5h9QV/cVHi1yjt0f69WFZMRFn0sJTye3EAP8icut8UDMjQPsaH5KbcOogefrFQ==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/confirm@6.3.2': resolution: {integrity: sha512-Xvr/0HggjddPtGppuqVmxhTw+Hr8PvsZ/k0HmOEaAqQEt80OITNkFWnsdNmyT0/eM4Ab+iJLx2R8rctlEyfSVg==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} @@ -966,15 +940,6 @@ packages: '@types/node': optional: true - '@inquirer/core@11.2.1': - resolution: {integrity: sha512-Qd6GJT1yVyrZZCfN8W2qKF5ApmqryXRhRKCuip8h01x2w/esJQ2XIYc6f9abMIHgKQdBfFTSOdbHRLAhuM09UA==} - engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} - peerDependencies: - '@types/node': '>=18' - peerDependenciesMeta: - '@types/node': - optional: true - '@inquirer/core@12.0.3': resolution: {integrity: sha512-wsSy0sznmXwkty+2PzZwx00Cazc/E0r0B7mAzdGROz2Ct+DFZXaK7WDjGZvgjRldxH5ZhFVfF2lgkYrqgOw2KA==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} @@ -1042,8 +1007,8 @@ packages: '@types/node': optional: true - '@inquirer/prompts@8.5.2': - resolution: {integrity: sha512-IYR/3C/paEVVQYQvdDlFZVjRCJVYHHON0XXMH91KO9GSxs0TdKYWlUdvfQl2EfAHDxUaN3IBffkE/BDTh5nJ6g==} + '@inquirer/prompts@8.7.2': + resolution: {integrity: sha512-QoRB4wFIjgH5iOhSjoIKMkTvSHDuV+O3OITlIqAYO0oK5x364GJILXiMBvlPiE+klg7Xx9tq5XVqQHcGUDYYPA==} engines: {node: '>=23.5.0 || ^22.13.0 || ^20.17.0'} peerDependencies: '@types/node': '>=18' @@ -1099,12 +1064,12 @@ packages: resolution: {integrity: sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==} engines: {node: '>=8'} - '@jest/console@30.5.1': - resolution: {integrity: sha512-u5Ncuc+gXVUwjNMFQOnphHo2Qx2DxyC8Dvpmf4HCx4y0kvSkRRNiQYRixrvOP4V7y52JcSuNxqochCt0PpdHVg==} + '@jest/console@30.5.2': + resolution: {integrity: sha512-e8sQC4pCMHPBrPX7Hk8TJr+DM5dkUnImSTNag8SEWFAFAF6xIz4AJvCKapnrdHnZxep4bxw4PhG+ZbimYBMyKw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/core@30.5.1': - resolution: {integrity: sha512-BL9g6CJUUhIbdoAflz/Va658erSSXUIvU8XUYiWNTbZljJjZ5yaC9EJ9/dQ19rpbYV3ZOK4sBACqhPaTyhoUIA==} + '@jest/core@30.5.2': + resolution: {integrity: sha512-/jqvFWoJF7LV1a6AUpYMbMm+2yIYsHJfR474H0SCzr9k8tnO/jl9wRg6zSG6lxgf6EozNlCG4amFzWsbZSvvZA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1130,8 +1095,8 @@ packages: canvas: optional: true - '@jest/environment-jsdom-abstract@30.5.1': - resolution: {integrity: sha512-J395vmP3Fb2Te0JmF7pe4si4jpfbXef1YsY4UpHYL6OOxS2molu9Dsie1VmIiUalXdtmz1P5QRgc+5hBD+ssBg==} + '@jest/environment-jsdom-abstract@30.5.2': + resolution: {integrity: sha512-8/P+8hKv7L4mhFoB6gpYLj/fuzXk8PWrde7TDHh8tJz5pE1ktlMbg0y6hDY/V8MfAnispFlPl/vPifowLy3JGQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/jsdom': '*' @@ -1145,28 +1110,28 @@ packages: resolution: {integrity: sha512-AK9yNRqgKxiabqMoe4oW+3/TSSeV8vkdC7BGaxZdU0AFXfOpofTLqdru2GXKZghP3sdgwE9XXpnVwfZ8JnFV4w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/environment@30.5.1': - resolution: {integrity: sha512-eYJAkOsrpwDXPcoLNEG6lN9Zo3Cy35pxnVQD74vyIfsi/Q8wB/lZFsEjU4wrecOgT4ZviQDZaX/cFIJyMdMxTw==} + '@jest/environment@30.5.2': + resolution: {integrity: sha512-nwFPOUMbmsjNNRCpnJpB9HbSZu4C07wDDds++5j+j1MezzPLxMPDdbdUVjr2o4RULDOValnDd70taPFI1EtxAg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/expect-utils@30.4.1': resolution: {integrity: sha512-ZBn5CglH8fBsQsvs4VWNzD4aWfUYks+IdOOQU3MEK71ol/BcVm+P+rtb1KpiFBpSWSCE27uOahyyf1vfqOVbcQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect-utils@30.5.1': - resolution: {integrity: sha512-WcRWhHQdTMRDpyWKZ/6MINBmovI7zeD+bL8wFjCncRV3NQOwKy1X45IfyblfHR4k/XciIlNEdFL9QjFO+HNKOg==} + '@jest/expect-utils@30.5.2': + resolution: {integrity: sha512-d/HOLSrJUlBIl6n3LzOa7cjW3xdePm5H5gQw2lixZ/0h157l9sw3mLblzFqnPcTbhDzhRQdBOX3A3KcG73nm5Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/expect@30.5.1': - resolution: {integrity: sha512-uOGd40P/COyUp9xHf5jeGiGJC2/ANg+2+Tk9/xN5/LxmlY/r/gxsPrx3DTEtaRZsLAX4wgNSLEDELZ5bmVs2bA==} + '@jest/expect@30.5.2': + resolution: {integrity: sha512-2E+1Pg6jJxbRjLNLpciC71iri/3qsKJL222/aXJEFwC0VdUSvfS+JZQQLEVjUYYc8t8pQu2MGE3cF2+bNTYRsg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/fake-timers@30.4.1': resolution: {integrity: sha512-iW5umdmfPeWzehrVhugFQZqCchSCud5S1l2YT0O9ZhjRR0ExclANDZkiSBwzqtnlOn0J1JXvO+HZ6rkuyOVOgQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/fake-timers@30.5.1': - resolution: {integrity: sha512-rEkV6YzpBXo/L9cnj2ibyuYZuyGiNWaPUsyCu3HYJbqCV4jnEiKmf7hId20z8eKjZ0JQ9jtIYKxRSmYB/OYSsA==} + '@jest/fake-timers@30.5.2': + resolution: {integrity: sha512-GKk0h0tKT5SpDPxDhPg3r9mm5s8/YCBzVNMOGdRiQXwUiMsjU10mVPlMaQstH6/cu50vOb8N9oQUMETHuwwxKw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/get-type@30.1.0': @@ -1177,8 +1142,8 @@ packages: resolution: {integrity: sha512-9/2VUPitAjmBzbvDvqrxmvB7BzWsBW0WmkkojX1ODuxX1NLGxx9gfaZpHB0z8DtJ9uhGNmZG/VXBhf8uO0OV8Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/globals@30.5.1': - resolution: {integrity: sha512-VhqvQ251XIC7pk46YymI3HCeBLOdvriDw9zibekodAHEwoVvbVVgpU5H13GvmyOAzxtZCfsm1uvzqkaqJf2I+g==} + '@jest/globals@30.5.2': + resolution: {integrity: sha512-62zfS+dL+M5aTNHXCNLyqD+j4oqxTIzDYrZbpqMP8Yn+gvlAGyzC6BSPNb1ZmFOakV1RtFYX/O3FCQXSWmQdgg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/pattern@30.4.0': @@ -1189,8 +1154,8 @@ packages: resolution: {integrity: sha512-HdNQYSdRTEBNrginaqzQtTjG0HRMfrra/z6Ok7uL3S87vSlarIVohEsJsSj5edu3MiHoHjAkvPROz5ZjoKai+w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/reporters@30.5.1': - resolution: {integrity: sha512-RbUXIfv85KxitJn4l3MpAoMilkvXe2QCO5lXxHWftywo/VdZ5vkEoHRDgphcxP6qmoIkUaN8/UZj6NhdkIFdJg==} + '@jest/reporters@30.5.2': + resolution: {integrity: sha512-ev6E9iG73twQcfAfoTnviuYkr3yOrYbzAtMFCimv2fxHXPIp9PBt2u1wNMt0aYWgl8FPwIcS8oqRJg6alnht4Q==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1214,20 +1179,20 @@ packages: resolution: {integrity: sha512-V3wnxNtiVmw5PPVg433Cn3VdXnsOeu/ofLw3KC04Bn2y1wIlU5kozXQn48rhrgj/02LrCVtntTEF1yBha0XSUw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/source-map@30.5.0': - resolution: {integrity: sha512-xWpTJP9D0bDFGbPGT8XuWSwwha/iHADyyKzUnMx4UbdgnHugxrDaQFO4RZ8x4ZsFzRP6pNii8uvlgKCDxCIuDg==} + '@jest/source-map@30.5.2': + resolution: {integrity: sha512-c5CehvkbfHX6yyNg7bMn2ylqlp9AHXuZ/3hPH/Lh5bxD/vefd/lV9HBjMqXef9yQNqkdwyZvkLSVSwB38hy8Qw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-result@30.5.1': - resolution: {integrity: sha512-A/1S6ZBdpic50E0pxLgvaB9XNPL4k7AksmG69OO2oiotxciWZwHkbOec+qbIi+uUtIIByOVlXJUl97oZUsz+Jw==} + '@jest/test-result@30.5.2': + resolution: {integrity: sha512-eO6YU5rsLfs60ne694e0IAmRgeBnoA8mu0nlxXDbl/1j5km0o2vO9/VbbUIKIH+WRKKEI+ELgwraRGn2Lhep8g==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/test-sequencer@30.5.1': - resolution: {integrity: sha512-SHcPnrjdVRYJv6y6l4JUTy4Jccu7zmO6BmiOfOA34UiVBto22s19WiDC0A/2qfM7MWB/qdcoqfSIRMitpjTT4A==} + '@jest/test-sequencer@30.5.2': + resolution: {integrity: sha512-bmij8jZyYAC47ExT2GeP7PcrlwSNS+Bp3KeRuBH88gpcxqDv6fljN8PemS4J/lLZ79xb6mpaennQTTq0zUAVVg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - '@jest/transform@30.5.1': - resolution: {integrity: sha512-EDnDhn0jleU9ZhpVoA4gvqw+Ev0iw/r5upNT2b79RiwiaTiYAMMhvNJP3lmocjIe5J2ZkoNr0B3K/J6O5GIm4Q==} + '@jest/transform@30.5.2': + resolution: {integrity: sha512-LBGwmaE886C41jDZ65eqR1YbXM7642MK3ZhTowZd5+xDlrDLuf4ePuDdDmVSvcr8NTVJ3MqxLkMbUCzuigUaoQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} '@jest/types@30.4.1': @@ -1269,12 +1234,12 @@ packages: '@keyv/serialize@1.1.1': resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} - '@listr2/prompt-adapter-inquirer@4.2.5': - resolution: {integrity: sha512-pYGy9dTdTwXdasPgyohkr0HoQ4FrkAzFnsUZl/gcnadDArbpZ8e+fgr+F9WBdNEl2y00mb9bCM4WgmoBkZJ27A==} + '@listr2/prompt-adapter-inquirer@4.2.7': + resolution: {integrity: sha512-k180vxSv2KqmnDxoato6pCqEJsov4U5C0EVmldZkAdNeVBxY48A/LM6TCNPGIzDK/iZSfsZP0Mw+gbWc5hXLyA==} engines: {node: '>=22.13.0'} peerDependencies: '@inquirer/prompts': '>= 3 < 9' - listr2: 11.0.0 + listr2: 11.1.0 '@lmdb/lmdb-darwin-arm64@3.5.6': resolution: {integrity: sha512-mY5FG4TjPAkY4P0w+OhHaUka5mDh2TX2WKYIwuKzJ1zeW3VvRgxdam/lGJTquI+bthTx5CSHDW+BAQCnNAzkEA==} @@ -1311,14 +1276,13 @@ packages: cpu: [x64] os: [win32] - '@modelcontextprotocol/sdk@1.30.0': - resolution: {integrity: sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA==} - engines: {node: '>=18'} - peerDependencies: - '@cfworker/json-schema': ^4.1.1 - peerDependenciesMeta: - '@cfworker/json-schema': - optional: true + '@modelcontextprotocol/core@2.0.0': + resolution: {integrity: sha512-pJCEwGG7Lfr/+PQp9ZTwKXNeO5wzbfKL7H3MYpCorM4oFBoQrdjnBgEoqG+RjhsvS1FKrDbKux+M1HhlnGWqcA==} + engines: {node: '>=20'} + + '@modelcontextprotocol/server@2.0.0': + resolution: {integrity: sha512-YhHWdHfpFMQfd0prsEnxKeS3Qz3ytIGmsS0sth4KDjnacIT7hxk6hXHkJ9KysxlkvTM+WZAtQbbcUhdoP4Hvtw==} + engines: {node: '>=20'} '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4': resolution: {integrity: sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==} @@ -1538,13 +1502,6 @@ packages: resolution: {integrity: sha512-xJIPs+bYuc9ASBl+cvGsKbGrJmS6fAKaSZCnT0lhahT5rhA2VVy9/EcIgd2JhtEuFOJNx7UHNn/qiTPTY4nrQw==} engines: {node: '>= 10'} - '@napi-rs/wasm-runtime@1.2.3': - resolution: {integrity: sha512-UMduMbqO5s5zF2NkNacMT/yK5Y5QiKvWr2+50bzIIxFDwVJ2h49b+oyjaCGPhJxd2/gC2x39EHv/gHVuu36x2Q==} - engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} - peerDependencies: - '@emnapi/core': ^1.7.1 || ^2.0.0-alpha.4 - '@emnapi/runtime': ^1.7.1 || ^2.0.0-alpha.4 - '@napi-rs/wasm-runtime@1.2.4': resolution: {integrity: sha512-AJxoUD2/15ESHbvpcyjU274nsAPLuOtPHCk0vKJM5pj//Fg/B1FXNWjPnXTT9PymCYYiHo4zPj0ZomXBKhoy7g==} engines: {node: ^20.19.0 || ^22.13.0 || >=23.5.0} @@ -1562,8 +1519,8 @@ packages: '@popperjs/core': ^2.11.8 rxjs: ^6.5.3 || ^7.4.0 - '@ng-select/ng-select@24.1.1': - resolution: {integrity: sha512-wPUupPK5TUiSnf7FNrw2FgqKY7B/BcOp+Dkp5dygbJ5zJhB0MSSdeN2TnIi5y0klelLU4KICBTpOZuH4ZbqQRw==} + '@ng-select/ng-select@24.1.2': + resolution: {integrity: sha512-+1RlW4v/Nwo5hrPxnjLebC8necpb3x+peIPnSjDZfVEDNpi+PNjcvSXhM0ZTxzli2n5kYoAetlKRW/xu1ai4KA==} engines: {node: ^22.12.0 || ^24.0.0 || ^26.0.0} peerDependencies: '@angular/cdk': ^22.0.0 @@ -1580,141 +1537,133 @@ packages: lodash-es: '>=4.17.0' rxjs: '>=6.0.0' - '@oxc-parser/binding-android-arm-eabi@0.142.0': - resolution: {integrity: sha512-ZiRGDutGsv1G6bL/ozy/koC0Sv39T1DqyoC4KD1DOy9ZoACm1O5UWhEK2c02Qdk+4lfLVkvFa/mQ0fm/4h1BtQ==} + '@oxc-parser/binding-android-arm-eabi@0.150.0': + resolution: {integrity: sha512-oQef2Zu4Prz1KLKznz3HqZzU9uVoA5PMoDZuuLmqms7hKmKSAPzlaMnLllJq3t+rgKmfJJ2siPrpZfFrW06btw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [android] - '@oxc-parser/binding-android-arm64@0.142.0': - resolution: {integrity: sha512-WZkvGRLNQTz8lR9zP5nLjUdlroRCopBu3g9zF1p/laE6DzT1UbQo8Rdz5MWhaJUPYg/6gp+jo7HUgsyKaN1FtQ==} + '@oxc-parser/binding-android-arm64@0.150.0': + resolution: {integrity: sha512-B6ofpoFiAUwIZ0MJ2IgHPvZK8FAtL4qzSZRwOkAKIfxEobE1mQC8nDdiFZj7pUaJiVUVCsfkMsBJKedzO8rZvA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@oxc-parser/binding-darwin-arm64@0.142.0': - resolution: {integrity: sha512-l4khS8LQOOVYsGRVARo1gSaCT/aBSceUVXgtovWc2+drnxVuDr082WA3OCHVdVzIz5JIrP/y9CWsSKxBDNmYGg==} + '@oxc-parser/binding-darwin-arm64@0.150.0': + resolution: {integrity: sha512-J+9IHKzx/bSz1JetOfD4zKXSK9sOm4/a7+0qomJODcTL6JsRXGeV/ZdkAPSIDydfFmWzYCraMlQEosSZEyBYkQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@oxc-parser/binding-darwin-x64@0.142.0': - resolution: {integrity: sha512-QBsNF3nqlXmcH2B1YOPqQYmCJoy4HuIjUxGbBO/k5JAJUl68ghU2psRY2zPk+RyBaWqKP/qfL4oaFgEMCdwskA==} + '@oxc-parser/binding-darwin-x64@0.150.0': + resolution: {integrity: sha512-v6IPfcAcSYrBWXV5Tce1DmxDMXLhEYpIIWiRFPJopgCVscZdLaV4MRQOUxvL3usQlw+yrwYOjBFB9IwBx+jUiQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@oxc-parser/binding-freebsd-x64@0.142.0': - resolution: {integrity: sha512-b7Q7m4Cqc6XqNhri3R+QhU+GVy646Pn+bkdhrDdWym/Fdi0ZUa+d73H9dm5H91JtbtAQ/z1d8XKMW3oOV8a4tQ==} + '@oxc-parser/binding-freebsd-x64@0.150.0': + resolution: {integrity: sha512-AoR/4jD02HET0KO0yNT4nbTE+XJUxiO9jB1X/ycEjUE3WrIJ3IjV/Vf+gskhWLcqqeXfvNnkDtBR7epllAm88A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@oxc-parser/binding-linux-arm-gnueabihf@0.142.0': - resolution: {integrity: sha512-3riVS5IhdH3uCZj1Y9ftDQlR0dvLsIlw/edrRqk8JhgNd5K0XSs+UBtgh50N13CAlW9/TXj6sVGXaKNBocd0Yg==} + '@oxc-parser/binding-linux-arm-gnueabihf@0.150.0': + resolution: {integrity: sha512-A/hycCFjLUrCmLoL5O/vBp40ohlaXO1Ta3v5hqYZxicYFs129wZmgZJggcW4mYGYbZebQLhup+N8JjeQl8qwyw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm-musleabihf@0.142.0': - resolution: {integrity: sha512-NmXUOpgpTSkhl795TiXmWppTwmSJ92RC1qvD6e4XOF+slgmo3e6Ah+kEu+6AN8s7NAOEwqGmir58MgSQSWmBSA==} + '@oxc-parser/binding-linux-arm-musleabihf@0.150.0': + resolution: {integrity: sha512-pbqahg1Pkz7J4RKmXm30s/iQu99hv64ayXCu8P4p75HcEH5azOdR4eGqiB6lFGkFR3mMpzaYsSKLkS8oJbjmeQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@oxc-parser/binding-linux-arm64-gnu@0.142.0': - resolution: {integrity: sha512-gc0EXsKtXgerujmU2Bql3u1L1HsSQ2774R83idq/FoNMPVV/RY/1ErFsvnit7KoiP/sLvzQixeUo4Ut0ic0wmw==} + '@oxc-parser/binding-linux-arm64-gnu@0.150.0': + resolution: {integrity: sha512-HV11aRbBQGwqv8bEo+K/6qr88uB4fEe1mhXncMhlVCrj+WpBSraxrUzHaPVmeQRU6x6x8v/3DuCbbo93rpp+fw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-arm64-musl@0.142.0': - resolution: {integrity: sha512-F2XvmWSE0uWpie+jHKKIFgdVOe9ypGhkEZxKx5DuW215K6cbAC274yYaPkcM7EqY4Df3Weyhpcz3lsURyH2LVg==} + '@oxc-parser/binding-linux-arm64-musl@0.150.0': + resolution: {integrity: sha512-k6pVkJqALwtEuP4zukVhGRhdIy4+ofChUIUUsAHHyqDZlNsknmel3JjbggrJiWGaes6h/dIcWmEXsKW4SmK9oQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-ppc64-gnu@0.142.0': - resolution: {integrity: sha512-wLMbT21U/QxknQsk+VvNF0b9D2/aGWhcaQQQ+VYlE8FwD5+GoWZIPPXNzyHmkYyhm0KB3itL+TBavjMatqNnYA==} + '@oxc-parser/binding-linux-ppc64-gnu@0.150.0': + resolution: {integrity: sha512-tEFg39mw/rHO5n8GK2DR4ZMFfsPQZtnQIPbsIpjoQRomJc/2tRfsCSmCT6gNit+NZGoeJG5aH9ATDH5bf0WnoQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-gnu@0.142.0': - resolution: {integrity: sha512-+G8F/4ckwT7FCJV4H2bt09xEzJbjNCfuL4Sp1AYNaFtFMVtgIGMuJlteT82U+K0UIZ/DzAR/LDlMFnEuajG7Kw==} + '@oxc-parser/binding-linux-riscv64-gnu@0.150.0': + resolution: {integrity: sha512-0JO7IFkoek6HqV589Menx3hJySNXi6quRhO4tq2P7kpEHKEXoDATnoPVUpn5B7gDH2KLkdo751N0uIrGJFCTCw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-riscv64-musl@0.142.0': - resolution: {integrity: sha512-hTsHtTLxMAfCo+rpF5K3qZJKW2NpPN/CHd4mYB3y7XlSdspHkd2gehDIofP64AacA9nWQw2tY3O7wR6UY8IVOA==} + '@oxc-parser/binding-linux-riscv64-musl@0.150.0': + resolution: {integrity: sha512-7XPzREnyAS5wHU9aB+49Uaqgoo1gVCklHc3DRlc3fJy2tXD/eAJFN1QFz/crj+Ulup5P1+axNREF+/RGaB/IRA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [riscv64] os: [linux] libc: [musl] - '@oxc-parser/binding-linux-s390x-gnu@0.142.0': - resolution: {integrity: sha512-6y7qYY3TCUDYjqswImdTGl92y+KA/80twALegQPN27kfY+bG7Ib1+L3jbmrCZQx6wrVnai9IPsEZp07I0hx7JQ==} + '@oxc-parser/binding-linux-s390x-gnu@0.150.0': + resolution: {integrity: sha512-7n7ZxcbRWDFaTdyj8M8p0O9OfzoMKm8O6syBAIgcSutbOALq0Bb9G52Me+XH0anMLZV+NgXc726gqgG2q39vcQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-gnu@0.142.0': - resolution: {integrity: sha512-i69kAWU+2LgoH5bR+zWiiu+UzAw7Oxkwv7COeJTeY19pn4e70nKQcr9Pm6cL2Z0Z54d+gl9qADlK/0yyuCPiBA==} + '@oxc-parser/binding-linux-x64-gnu@0.150.0': + resolution: {integrity: sha512-Vx0GSA9ZCRTUiczoEQnIIyXkMvtEY8uc6IiwLQtMe5ci2sXPqjrry0Ek5fsPP1k2kCzkML3ow9UOOEgnEDi7Bw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@oxc-parser/binding-linux-x64-musl@0.142.0': - resolution: {integrity: sha512-4SQs678MmjYVrmhAgCWD4o0vpaFszXw9xLX5p2Z9MMFcltxiLkA88wQjh80YHjPrXtpyZ2CWI5m+1yNKM0m2Pw==} + '@oxc-parser/binding-linux-x64-musl@0.150.0': + resolution: {integrity: sha512-ii4/9m3viDLssMnfXU7/Pni/3nYplApuGayceX4qsVGaqqQJCx3tHIH9M/HWIeSty5i8LjS21zPYT6lVIkwLxw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@oxc-parser/binding-openharmony-arm64@0.142.0': - resolution: {integrity: sha512-YHpx9N7Ln3a++Tc8rv+H7mrK1zyJQOAwCFg8LZ3lTs1T5afGWeZrLPhPT9HLnIwSjCyJqPWVMIrMxbjcmBr2oQ==} + '@oxc-parser/binding-openharmony-arm64@0.150.0': + resolution: {integrity: sha512-ZtoxX5rez36ZWkwtiEhjkCPnlTPoQ2I7lIL0IYZ1yjxMYohbvoOjBmUIZzrf9W/HouONq0omIfTeCWEY+R380w==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@oxc-parser/binding-wasm32-wasi@0.142.0': - resolution: {integrity: sha512-3pLDyY3+oogW73RM5uehNgAiR/Xfb7fvO2Q1Z1gIqZ2+50XDVQmBVlRkHXZTU4gKnQHpwETNsYQVsJ3joVB2iA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - - '@oxc-parser/binding-win32-arm64-msvc@0.142.0': - resolution: {integrity: sha512-Had/VeVY28Oyb0K+Q4FV8KCzoBycIh93oDK6pCbya9lkzdq+ikMHMgBubsdqqlybjJmQRawCQRrnBRHyQwYvcQ==} + '@oxc-parser/binding-win32-arm64-msvc@0.150.0': + resolution: {integrity: sha512-VqeRb5JX/bKYBrff7TUDvJyKY0914UzuCkuXIGxJS4FUmvMNfqkCbc7Sq90iMz9DlmAtlggwaBYQ9eg3h3ltiw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@oxc-parser/binding-win32-ia32-msvc@0.142.0': - resolution: {integrity: sha512-GGi3+YphVHavvgs6gum2UXoNCqzHAmPt/nXkn8ZQZstV2Q1qZD1Mn8fz/nWrDkefHQtrG/+1/XrbMxsBTo6Svw==} + '@oxc-parser/binding-win32-ia32-msvc@0.150.0': + resolution: {integrity: sha512-EPqJfeZ4Pgg2BJSsCV8GozxV0FDltRzpVtGVa1r2noJu1iu+opOw3gtBWXwIo9odCT/MdFfyHxdy0/CRqs3OqA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ia32] os: [win32] - '@oxc-parser/binding-win32-x64-msvc@0.142.0': - resolution: {integrity: sha512-Ny/Wv4Us1LGC/ljwNTp+Hx3r/pH15EFfeDF0p+n898gt+TtRd6C9SccHcuUhDiNTb8s5tt7jdeAMDRQZ4Vq6hg==} + '@oxc-parser/binding-win32-x64-msvc@0.150.0': + resolution: {integrity: sha512-n5YMzbqwPQqozbkrexi0lNZrUz5cnPHalYpFWe6Dau7AmKIWNo+y24IwzDuZEQtEdUHuKhXmMMih/MPjOI+CMw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] - '@oxc-project/types@0.139.0': - resolution: {integrity: sha512-r9gHphtCs+1M7J0pw6Sn/hh/Wpa/iQrOOkrNAlVLF/gHq+/CJmHIWKKUUhdWjcD6CIa8idarspCsASiXCXvFUw==} + '@oxc-project/types@0.149.0': + resolution: {integrity: sha512-Efcc+iF0j3Bf67YjEqIqWXbX5XddXoK/Mw4K1/JuXwRCZ8N16VR7iT23nlCc9XrveFVh/E5Rqs2StT0V8v9LdA==} - '@oxc-project/types@0.140.0': - resolution: {integrity: sha512-h5LUOzGArYemnW1NMz/DuuQhBi96J6JL2Bk8zE4kvqxB5Sg3jxmCiH4uyOWHDkiKSt5vWlG4FIwCR/DbstcNRQ==} - - '@oxc-project/types@0.142.0': - resolution: {integrity: sha512-7W+2q5AKQVU36fkaryontrHn3YDt1RyUYXatw9i5H8ocYe2sPKSFB6eS8WNPeRKiN1qAWWZUPm7gwFzJGrccqQ==} + '@oxc-project/types@0.150.0': + resolution: {integrity: sha512-rDS5/31E9HfPl/CIzGrn0DOlvBbXFseQ5URJ9sYMfstbKLD/c6Gm9vmRzRGDdAXyOIL4zmO37lc9RIwYqVruZw==} '@parcel/watcher-android-arm64@2.6.0': resolution: {integrity: sha512-trgpLSCKRC/huFjXX/Smh+0sWe4+YtKfktIToiMl59ghz7z+qkH6kMvNnUbLyRs9N11t8l4svSCs1+5B3rOAhA==} @@ -1814,192 +1763,98 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@rolldown/binding-android-arm64@1.1.5': - resolution: {integrity: sha512-lZg8fqIv2v7FF237bwMgzGZEJvGL79/s5knJ/i6FmsGF4XXlzccZ4jb+TrFIxtSSxFtIpdsgrPZeMk1I9AFcyQ==} + '@rolldown/binding-android-arm-eabi@1.2.8': + resolution: {integrity: sha512-tN5aztYkKCte4i5SIrrz5yK/HMjEuCqCSCJa418jOV8tZ1cBY3YF2otxB1ktPxzsLA1BeTqwapK0bfjxNvHJVw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + + '@rolldown/binding-android-arm64@1.2.8': + resolution: {integrity: sha512-dIYTWl9XprMUiQFoc55KUyk/oS8SKYH3zFl0LTR7RT0Xj4hgSVyuJcroH8JUu8RcpF8fTB6E0aOwCkZoYPcDSQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.2.0': - resolution: {integrity: sha512-9yB1l95IrJuNGDFdOYe79vdApdz6WWBCObE+rQ2LUliYUlcyFwSYIb2xb5/Ifw7dAtMy2ZqNyd8QTSOc7duAKw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - - '@rolldown/binding-darwin-arm64@1.1.5': - resolution: {integrity: sha512-51Bnx9pNiMRKSUNtBfySkNJ9vMU9Hh3I1ozDd6gyPPYzaXCfnptUcEZxXGYFn+ul2dtcMUiqGR1Yai2K10uoTw==} + '@rolldown/binding-darwin-arm64@1.2.8': + resolution: {integrity: sha512-PCSDQGXD2IyTEFrcgPyBM8jJuGmrbCMuoIOXdbEGVemruKACXoLQJrb+A45Z0L5t1RQkdfJprAYPkikbh7dzdA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.2.0': - resolution: {integrity: sha512-pexNaW9ACLUOaBITOpU6qVu4VrsOFIjTv6bzgu0YUATo4eUJx0V605PxwZfndpPOn0ilqGqvGQ0M8UW0IE24jg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - - '@rolldown/binding-darwin-x64@1.1.5': - resolution: {integrity: sha512-Tm+gbfC0aHu1tBA/JvKQh32S0K6YgCHkiAF4/W6xX0K0RmNuc94VeK419dJoE65R5aRxmo+noZQSWrAMF6yb6g==} + '@rolldown/binding-darwin-x64@1.2.8': + resolution: {integrity: sha512-Uk7lRsGhPFHVX/sAUC6D5H9Ol30dFHd6iquokll2th3LpdJ3F5CzQB+7DHn0Ri2mG+U7k2zXiPHDrwZenXhwSA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.0': - resolution: {integrity: sha512-NqKYaq0355ZmNMG4QGpxtEDxsc7tGDhjhCm4PpE0cwnBW+5Il95LJyq414niEiaKLVjnVHBEjSo1wngKxJNiFw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - - '@rolldown/binding-freebsd-x64@1.1.5': - resolution: {integrity: sha512-JMzDKCCXq93YccG5gz3hvOs1oXRKAf0XYpfOS88e+wZrC8Iugj6j68867vrYZkvpDDpKn/KoKORThmchMpF6TA==} + '@rolldown/binding-freebsd-x64@1.2.8': + resolution: {integrity: sha512-DjszaTEVogPqA5bYzsEeqDCQxbcp2fexQwKcRspYji2yzR68fCf+e4fx6kBSRDwX5/brZaHw/hWS9+A/+/w9sQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.2.0': - resolution: {integrity: sha512-3vPoHzh6eBTz9IbB0/qZdSr0Qeks2echn+I4cHu2joV74VriPDdldswksEDzrl1mBB+oPRi+67+3Ib59paxIPQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - - '@rolldown/binding-linux-arm-gnueabihf@1.1.5': - resolution: {integrity: sha512-uML21j2K5TfPGutKxub+M+nLjZIrWjXQ5Grx4lCe/nimTj9B4L63zHpjXLl4y0L3mcm2htEQIb06oCG/szerNw==} + '@rolldown/binding-linux-arm-gnueabihf@1.2.8': + resolution: {integrity: sha512-zmwa7FTmdzB6aaEEuuls18H6Ap5JmJPSoPTuXixeJZV6tG40SyLkApQtz1g8ptZtiEKqj9OM0oNLPh1AgvE31Q==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.2.0': - resolution: {integrity: sha512-E6NNefZ1bUVmKJq2tJkf45J4Zyczj7qm9rUT7NY+Xo2474Y13qWAwc2tvBt0BAVbmtXR1llkxXg0Ou1jbDf2SQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - - '@rolldown/binding-linux-arm64-gnu@1.1.5': - resolution: {integrity: sha512-navSiuTMogvnQoZoM/v+l3ZWo50/NTwSHSzheABx/RCnmUPaKwq9qSo4Br2OYRs21+Fz8uFqITZM3H4opOB0/Q==} + '@rolldown/binding-linux-arm64-gnu@1.2.8': + resolution: {integrity: sha512-KdYQDPHwJVnbFwdTGMgxsI9SqblBlz6STGM+w1We/d5B8OWWidYH0MwkU/uA1wM5fIpO2MkOVxXrNzzuZhw9ew==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.2.0': - resolution: {integrity: sha512-D+TgkdgM1vu+7/Fpf8+v0ARW+RXEP9Ccazgm8zQ4JFFd9Q7SrYQ2TakU5S5ihazQDgpKyAgZDOcIFsvoHmTZ8w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-arm64-musl@1.1.5': - resolution: {integrity: sha512-lAryqH7IteztmCXQXk0etKj4wBQ7Gx5S6LjKhsgp9zb8I5bsuvU/2llH1hDQcjsFeqIsovMVN339/8pUDDBXxA==} + '@rolldown/binding-linux-arm64-musl@1.2.8': + resolution: {integrity: sha512-jFJTifHnNPY+yzOoNZQfSIysrVyXzEQPhPnOUjmD1bcQGHH6s7c8cViKWar8YplQImE5N9JRqMCLrM2CdxOrZA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.2.0': - resolution: {integrity: sha512-wUqdwJBbAv0APN87GecstdMUtLjjNTs0hBALpxETD73mccFxdmt/XeizXDtN5RAlBwNKmI+Tg+blect2G+8IeQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - - '@rolldown/binding-linux-ppc64-gnu@1.1.5': - resolution: {integrity: sha512-fsK/sNBnxzBlL4O1JNrZakVQxPspqpED5dLtNsZS9oOKmtSpdNIzxH2kkol5HYTWJN47sE20ztMJPxfZ89qGOg==} + '@rolldown/binding-linux-ppc64-gnu@1.2.8': + resolution: {integrity: sha512-FhiOziBDWPBjbcmRzfLyIJnaP7AVMFXT7YCXPjXxj7wKU3vx24RjrCNN/zjvVa+N2vVoHJwCoUBvsrN/DG3zIA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [ppc64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.2.0': - resolution: {integrity: sha512-9DtF35qR9/NrfhM4oxLplCzVVjE+KKm8Pjemi0i/sdhAWkUasjmSo8WTTubNJClhSHCfyk2yeyoXDQEDPtDAAw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-s390x-gnu@1.1.5': - resolution: {integrity: sha512-gLYb4BIadlfTOYT5gO503n8zQjXflgzpD0FcyKh0Mzx3rqCZKnHoJWV9xe1KXUJ5lx2JfcSHr/mhzS0PC/McAA==} + '@rolldown/binding-linux-s390x-gnu@1.2.8': + resolution: {integrity: sha512-WnHfADMzOV2Y55wlx1hzzQnar/wDt/VdvWSD99r18Mz9ylNieIGOkRx3UV21h7m/eJvjySYJkO26VvGNFkwsIQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [s390x] os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.0': - resolution: {integrity: sha512-RzuHrBh8X8Hntd2N4VR02QGEciq/9JhcZoTpR/Cee6otRrlILGCf3cg2ygHuih+ZebUnWmMrDX6ITI85btO6rQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-x64-gnu@1.1.5': - resolution: {integrity: sha512-FjcpEKUyJygHgs1o50VYNvkt5+7Le/VEdYt0AkRpkL33MnyQfwr8l5mXwMmfmTbyMPr5vJLC+8/Gd9gXnwU1QQ==} + '@rolldown/binding-linux-x64-gnu@1.2.8': + resolution: {integrity: sha512-H9tRr5ibfXFVLxbPOseVewewFpl28zcEdjRDt2FTUZU7odxP0gEv1ki4/kGmcGOh78oRwZuuQllGLZ9zTJp84g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.0': - resolution: {integrity: sha512-MK7L0018jjh1jR3mh21G2j1zAVcpscJBlPo2z19pRjv2XOYGRhaV4LyiD8HO6nCDdZln9IFgCMIV5yt4E3klGQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - - '@rolldown/binding-linux-x64-musl@1.1.5': - resolution: {integrity: sha512-Me+PfPI2TMeOQk0gYWfLQZtTktrmzbr8cDboqX83XKc7UrgAi55gF+2dUkWdxd19n55Essp2yeca+O9N5rBxHg==} + '@rolldown/binding-linux-x64-musl@1.2.8': + resolution: {integrity: sha512-UefiqfM3D6IVNlZ8tSGs9+Ejjud2T+oxO0IHADU45Y+lyEjD2dVFyZHbkfX0LUb5Zugo/oIv1eCO/KVYhgYJYA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.2.0': - resolution: {integrity: sha512-gyrxLQ9NfGb/9LoVnC4kb9miUghw1mghnkfYvNHSnVIXriabnfgGPUP4RLcJm87q3KgYz4FYUG8IDiWUT+CpSw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - - '@rolldown/binding-openharmony-arm64@1.1.5': - resolution: {integrity: sha512-yc5WrLzXks6zCQfn9Oxr8pORKyl/pF+QjHmW/Qx3qu0oyrrNC+y2JLTU1E2rcWYAmzlnqngWXHQjy51VzW70Vw==} + '@rolldown/binding-openharmony-arm64@1.2.8': + resolution: {integrity: sha512-637Ke4kWSy6rp9cxQ9gMOXlxPgIw/c1beASV4M//3+9I4uwBVOOl74G+e3zyU3u19U7RkRl/HuewixZ/Z6+Rjg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.2.0': - resolution: {integrity: sha512-/6VFMQGRmrhP77KXDC+StIxGzcNp5JOIyYtw0CQ8gPlzhpiIRucYfoM5FaFamHd5BJYIdH86yfP46l1p3WdrFA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - - '@rolldown/binding-wasm32-wasi@1.1.5': - resolution: {integrity: sha512-VbQGPX2b4r48TAMIM2cjgluIM1HYutm4pcTEJsle7iEP7sB1dFqtPLBVbdLAZCxy1txCcPxf4QFf4v8uvltPqA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - - '@rolldown/binding-wasm32-wasi@1.2.0': - resolution: {integrity: sha512-rwdbUL465kisF24WEJLvP3JrEG6E5GRuIHt5wpMwHGERtHe4Wm2CIvtf5gTBgr2tGOHKh5NdKEAFS2VkOPE91g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [wasm32] - - '@rolldown/binding-win32-arm64-msvc@1.1.5': - resolution: {integrity: sha512-gHv82k63z4qpV5+Q1y/12KrK0ltWBukVDI8nZcbT7Tt/ZlOIVwppazneq0F93oDxTo3IgAMEDIoQh3E2n6mVsw==} + '@rolldown/binding-win32-arm64-msvc@1.2.8': + resolution: {integrity: sha512-xWBkPOF1Q9k/Gv1nQXnVdLxKu74jXppuOM4Z3mnypVUJJJwLsMl7hNJGRAUJoG8A5MgOI1ACKM+wBFxSJzKy4A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.2.0': - resolution: {integrity: sha512-+5suHwRiKGmhwyUaNT8a5QbrBvLFh2DbO910TEmGRH1aSxwrCezodvGQnulv4uiWEIv1Kq4ypRsJ5+O+ry1DiA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - - '@rolldown/binding-win32-x64-msvc@1.1.5': - resolution: {integrity: sha512-tTZuDBPw85tEN5PQi1pnEBzDy0Z49HtScLAbD5t6hyeU92A95pRWaSMw1GZZi/RwgSgUIl0xrSlXIT/9QzvYSA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - - '@rolldown/binding-win32-x64-msvc@1.2.0': - resolution: {integrity: sha512-WfFv6/qGufotqBSBzBYwgpCkJBk8Nj7697LL9vTz/XWc67e0r3oewu8iMRwQj3AUL45GVD7wVsPjCsAAtW66Wg==} + '@rolldown/binding-win32-x64-msvc@1.2.8': + resolution: {integrity: sha512-uz2ZvfgXbxqNwijjjbxrnvALwpyODDcgc1T1N8N3rf/DXKQmaFwmB4LX4yyjggpwN2obdQLb2rgirX5ffCWYng==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [win32] @@ -2011,14 +1866,14 @@ packages: resolution: {integrity: sha512-5f5f0tKp3d25hjNGkvw2dtGgTN4wxPNhv1AXnhFkh+mLinQK9Qwzr2iEXDDrAuJEkvz1ACHq631IURWph0lqew==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@schematics/angular@22.1.6': - resolution: {integrity: sha512-RiD4OZJ4yuaM1aXb3pt1gjDSWwkP0jrgiCuoaBls1eabcrDmlsNuQv0ekxbcGgCRPdSJvmHRZIHHmFPzei8w3Q==} - engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} - '@schematics/angular@22.1.8': resolution: {integrity: sha512-V37T9uHOQVHyxxOqwcJ9xjSIW/mW9UuSfjOc7WJE4V8+3zj0abDJLHuoxDZKe0icYGapgOcvHyYjtNOjSeSivw==} engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@schematics/angular@22.2.0': + resolution: {integrity: sha512-IOD+T+S5LyVVuLAtLq/5k+WxnT9UpJecyDPvIT+AWug+mZJkd+HKVVHryenNJBaW29tIxNfoDuVFPEsZ4UKcNw==} + engines: {node: ^22.22.3 || ^24.15.0 || >=26.0.0, npm: ^6.11.0 || ^7.5.6 || >=8.0.0, yarn: '>= 1.13.0'} + '@sinclair/typebox@0.27.12': resolution: {integrity: sha512-hhyNJ+nbR6ZR7pToHvllEFun9TL0sbL+tk/ON75lo+Xas054uez98qRbsuNt7MBCyZKK4+8Yli/OAGZhmfBZ/g==} @@ -2091,8 +1946,8 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@types/node@26.5.0': - resolution: {integrity: sha512-dVSGpriSoCgz8WnDNTuSSuSv1PC/ALXihO4ulRZt7Md8k9mlbdin3lGOcDE8SnWOgf513ByWlXd7BK4azmyg/A==} + '@types/node@26.6.2': + resolution: {integrity: sha512-X1P21scMv4zGKLYqjdGjaKa7COa0RKVYYZZN/NfvLQ1JegxFhdhpZG/Lyn8AXx6CDUavKAd11v6BvfpkDByK8g==} '@types/stack-utils@2.0.3': resolution: {integrity: sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==} @@ -2106,63 +1961,63 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@8.70.0': - resolution: {integrity: sha512-/v8HZt6RlyIZxB3ntehELOcUcfxKPVGWXnQdJuHRmzrqgF8nQypcC/oxGW+Ot4VGKDq81XugPKxx0n5PBtf9PA==} + '@typescript-eslint/eslint-plugin@8.70.1': + resolution: {integrity: sha512-nDNrUQ/4ruSNYbu749TRY7cfrzPtoLHEXSNBI8aaNY32LlZCajixqRf3FqcKC4p5Cam4VOHYx/t+i5+nKXvrqA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.70.0 + '@typescript-eslint/parser': ^8.70.1 eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/parser@8.70.0': - resolution: {integrity: sha512-zYvrmj9Yxd63UGaXw+kdt6A0F0s0qveJyuatIM77bYC2DE4pgmg7a50u8LR7PRtXd0x+h+Tl3eXabGm06SWd3Q==} + '@typescript-eslint/parser@8.70.1': + resolution: {integrity: sha512-nO974WLllwhSFWQXnMLj6nDGa8f0khKEz1JzpPJ1u7Vm/4X1X6ZHajpoknU4bb41vJyMB0HHVyS2GqdhWfIXZw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/project-service@8.70.0': - resolution: {integrity: sha512-hFHbTNqhU9G+2eKFXCBVb1tjFT/LceiJ4+HfLO4pTpDI0KHi6iajpcFFkaSQ9gXmCh7n82A0PthaayEdN6mspQ==} + '@typescript-eslint/project-service@8.70.1': + resolution: {integrity: sha512-62xOgboPfwc3/IgPSX/W6oQR3ZbF04194FPGUGH8HL8iLFHbt/456/8Ph1wLNUgVF+s94FlHoipBsz+v7+LMnA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@8.70.0': - resolution: {integrity: sha512-8nP3Kwh5hlgZ4FicGvmznAmJe8UL4sdU8tLukrPaMuQmDuk4Y8xYfzu/aYZW4xT2JCgc7H/TpDI5cGlxcWJSqQ==} + '@typescript-eslint/scope-manager@8.70.1': + resolution: {integrity: sha512-Pa0EeSeAusQc1WbjQMac+YfenewYTBu0KjgYvkUKwhXaHUKbFog23Dm/rp0DX/6tyYOQ3Xl1a+3EcFNZynGHCw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.70.0': - resolution: {integrity: sha512-adnkeeNq9Sq1sUf4+FRVc0KdgYghzsgFpZSQVZVvY0LCuUuN0FnQgyGzCJeC4fW1cdXseBAjU2EOqUIjbNcZUw==} + '@typescript-eslint/tsconfig-utils@8.70.1': + resolution: {integrity: sha512-jumze1fPI+sDOaM2TWGQdn39PDxTr7TZGeuyLkAbNyx2vtMT3uRnVKChN0hfht5V2TugphJzF6bYXvBcE09qqg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/type-utils@8.70.0': - resolution: {integrity: sha512-NUMKIhYVaVIVLnRL9CRt+VVcuLgSHUCpXn4/+K8wql+vdInUzvx8BjUO1oJ7cG9shjFJKtF8F8Hh2kCh3/KBVw==} + '@typescript-eslint/type-utils@8.70.1': + resolution: {integrity: sha512-7zKTnyvaVWqzLZHPFQtX1hVHqgkMC+WebPWakNCSyrQVbIP1AM0L0TlBZtACldIRb6PptI8Odk+jyZ5kP3B1VA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@8.70.0': - resolution: {integrity: sha512-asTOIYhDg4zdzOScCyaytrsV3cR6B4ecPQlXw/dJIm7J/MZTtCtfVII9JD8Geh4jTCrK/Xe6cg5UevoleMcoJQ==} + '@typescript-eslint/types@8.70.1': + resolution: {integrity: sha512-Dm1ypdhhrGCTyyehxElhgJ6kgk8MVCv5qXdoOVqPr1uqk42jX8KjrZqhROvdShczA8qrDoYiOWn1ykWlx2k81Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.70.0': - resolution: {integrity: sha512-d9NmHMPEKQ7QCLLm1jI3zmoQBwT5KwFYjXBJ9ymZfKCUU+5rmTRykKAFvH5Qn/ZCds3CEAFS9OC9M/jkl0X2bA==} + '@typescript-eslint/typescript-estree@8.70.1': + resolution: {integrity: sha512-TU8PwyGN0PQJUcE96mw8eCQ44SmxGdQlJmlWakHaHQ15eIuuvye5yNtmh/i6oS88jzXVQB71xdNkbkB/fMwL0g==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/utils@8.70.0': - resolution: {integrity: sha512-oZmtKJz/4fufZ2p3+Cn3ijEojcdfR+1zYDH2xKYrEly0dR/Q/1xUPRCOlKGxod78nWlU2UnDe09GZ3TaknBFGA==} + '@typescript-eslint/utils@8.70.1': + resolution: {integrity: sha512-Esgul8MsnKnRLdYU2Eb2cRV9bS5HJYtKj1ByJnOzzG2M58DGdSUQ1jUuILxipqcpB2h9WLrbD5GijIWUjX/Tqw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@8.70.0': - resolution: {integrity: sha512-BoC8PiO4Hkdo0TVJh9Ntxr5MxPDI7/oFsrygN5ADelFSeXG/qgNuucIGA+L5Z6JpPTE/uRfcTWtscjbUaufepQ==} + '@typescript-eslint/visitor-keys@8.70.1': + resolution: {integrity: sha512-Vwj9lUIW5Xq3wQ9w6gv3R86g1hMK8f2zNOdGTAgeXUMMXFK78G9ruCjjqutHMNJc0+CH7LYRnHeUB9IT8wFmcw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.3': @@ -2294,10 +2149,6 @@ packages: peerDependencies: vite: ^6.0.0 || ^7.0.0 || ^8.0.0 - accepts@2.0.0: - resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} - engines: {node: '>= 0.6'} - acorn-jsx@5.3.2: resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -2375,8 +2226,8 @@ packages: resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} engines: {node: '>= 0.4'} - babel-jest@30.5.1: - resolution: {integrity: sha512-ge1xUVZS91ml09YRMgRGgeKJ4YJpcOiuwteAxFBYLugQyp7cRw+hHej6Ho0vPjvLrjq60bb7JPHH9LAMA1/krA==} + babel-jest@30.5.2: + resolution: {integrity: sha512-ES8WeJ2fNWPEDunyAtUfJ12nHyaWUloCHdkfK2oW5uSoQSUmjNKdWiGaXJITJwvFEWoD/evHEg/QoCXAvLaQqQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@babel/core': ^7.11.0 || ^8.0.0-0 @@ -2407,21 +2258,18 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - baseline-browser-mapping@2.11.22: - resolution: {integrity: sha512-pWc4w51fBFd7mav43/zKRC+RI6f4yfzQoVlfvE8dECePyfkn1bzLp01Fj0QACcyCZyFhiEMyD2qScfKRWgWibA==} + baseline-browser-mapping@2.11.26: + resolution: {integrity: sha512-GLQdD3y6UF8iVuMJl5fHgE4jdn/ua7n+toKfLgNlg3BqQtOZjpy68T8Tup8/wGWZCDlm7KMg7tPb4MPn7oN0TQ==} engines: {node: '>=6.0.0'} hasBin: true - beasties@0.4.3: - resolution: {integrity: sha512-fIIeLOcbAB/K1kb1HBVJoiq1alHL4RCYBSo5e7HzrNkkgMggXR1Vqt/Z9JWnkfe/qdCo66Ux3QRwZioAIBdWRA==} - engines: {node: '>=18.0.0'} + beasties@0.5.4: + resolution: {integrity: sha512-8/lOOjT+PElYCnaUbmhgd3Uad5R1VTQ4Wg0k4rK8bX04m5WEqHNmnlLy3Q/lJ7dk25XA+72gayzc/skTfKKpcA==} + engines: {node: '>=20.19.0'} - body-parser@2.3.0: - resolution: {integrity: sha512-2cGmJupaNgg+QUwVLAucDuWuoMZ6EX9iHDRswZ5lsNYEmwPaRknMPCLZz07yTzVq/83p4o/wzbDZbBrTvGGTIw==} - engines: {node: '>=18'} - - boolbase@1.0.0: - resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + boolbase@2.0.0: + resolution: {integrity: sha512-DkVaaQHymRhpYEYo9x1oo7Q7B0Y6KJUsjm3c9eTyFDby4MHLBTwZ6ZDWBel5zrYxj1WsZgC5oLpiz+93MluXeA==} + engines: {node: '>=20.19.0'} bootstrap@5.3.8: resolution: {integrity: sha512-HP1SZDqaLDPwsNiqRqi5NcP0SSXciX2s9E+RyqJIIqGo+vJeN5AJVM98CXmW/Wux0nQ5L7jeWUdplCEf0Ee+tg==} @@ -2431,12 +2279,12 @@ packages: brace-expansion@2.1.4: resolution: {integrity: sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==} - brace-expansion@5.0.9: - resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + brace-expansion@5.0.12: + resolution: {integrity: sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==} engines: {node: 20 || >=22} - browserslist@4.28.9: - resolution: {integrity: sha512-EWazOblFYUvlGZcfGhPUPmYh3nikUxBVb+y9MJun5f3hBi812X+8MSQTujLBtgK3cf51fJWbWfOjyeO954d+Eg==} + browserslist@4.29.1: + resolution: {integrity: sha512-AUdjuRyCNGUYtqpqfTmWyM4fXay8yIQhmLnvYe/THMGfT9B/34X7xQd3ifKxwyNPPpowVBjLb+64BN9Rn1mizw==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2450,21 +2298,9 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - bytes@3.1.2: - resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} - engines: {node: '>= 0.8'} - cacheable@2.5.0: resolution: {integrity: sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==} - call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} - - call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} - callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -2477,8 +2313,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001810: - resolution: {integrity: sha512-TITQPUkaz+aVk5GL6NhOdwk1aEaNTSDPsGFWrTuhKGtjTF70jL/Oht2W4c6rXUe5fu7Ie19VIahAXHIIiWWNeg==} + caniuse-lite@1.0.30001812: + resolution: {integrity: sha512-qN+QNNBr93TCmFrmte0bBCjSDMuRvt78VlHT99qIGPszm4QsqCX8lnyWUFkHi8B7ZBAPq8SH+UqyXNy/odMdng==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -2544,17 +2380,8 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - content-disposition@1.1.0: - resolution: {integrity: sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==} - engines: {node: '>=18'} - - content-type@1.0.5: - resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} - engines: {node: '>= 0.6'} - - content-type@2.1.0: - resolution: {integrity: sha512-mj7UPXE0jaqaOsukNZRUEfEi2AcL7C/vwmwcHV0O97eO1E1pxBZuyjlZrx5seTaNBg1U6+o35wpa35Qfcc+7ag==} - engines: {node: '>=18'} + colorjs.io@0.7.1: + resolution: {integrity: sha512-LY7OHnJZxHwT5UlzNa9bbhHHDbzB6yE5+3MIPwJEQKRvSCt/T4G7epsj+9j2BExUIIfXFIJGsIXUKdfrK9Q5tA==} convert-source-map@1.9.0: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} @@ -2562,18 +2389,6 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-signature@1.2.2: - resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} - engines: {node: '>=6.6.0'} - - cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} - - cors@2.8.6: - resolution: {integrity: sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==} - engines: {node: '>= 0.10'} - create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} @@ -2581,12 +2396,13 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - css-select@6.0.0: - resolution: {integrity: sha512-rZZVSLle8v0+EY8QAkDWrKhpgt6SA5OtHsgBnsj6ZaLb5dmDVOWUDtQitd9ydxxvEjhewNudS6eTVU7uOyzvXw==} + css-select@7.0.0: + resolution: {integrity: sha512-snmjEVXy+1LnwXdxhYvTMj1d9tOh4HxkA1YmoayVBeeyR2C14Pum7fcxJIm4SswYspVy866eYNwlH6xC3/VH5g==} + engines: {node: '>=20.19.0'} - css-what@7.0.0: - resolution: {integrity: sha512-wD5oz5xibMOPHzy13CyGmogB3phdvcDaB5t0W/Nr5Z2O/agcB8YwOz6e2Lsp10pNDzBoDO9nVa3RGs/2BttpHQ==} - engines: {node: '>= 6'} + css-what@8.0.0: + resolution: {integrity: sha512-DH0Bqq3DNp5tdOReuNyAA+Ev4Y2GS5FMbZpeTLP6C4CDi0h5nL0BmUPChXw3o/qbHLDWHl49sbNqQVY7bMSDdw==} + engines: {node: '>=20.19.0'} cssstyle@4.6.0: resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} @@ -2623,10 +2439,6 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - depd@2.0.0: - resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} - engines: {node: '>= 0.8'} - detect-libc@2.1.2: resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} engines: {node: '>=8'} @@ -2643,31 +2455,27 @@ packages: resolution: {integrity: sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==} engines: {node: '>=0.3.1'} - dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + dom-serializer@3.1.1: + resolution: {integrity: sha512-4MEa38/QexBob6gFNwu+EGdWvhJ1OKuNwdYY3Y3NyeWDQfnGeDYQUDfIRzWu5B5gsv03so2Uxd28YC6zrsx3Lw==} + engines: {node: '>=20.19.0'} - domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + domelementtype@3.0.0: + resolution: {integrity: sha512-umCQid3jKbDmVjx8jGaW7uUykm4DEUeyV21hPxNMo2nV955DhUThwqyOIDtreepP31hl84X7G5U9ZfsWvIB3Pg==} + engines: {node: '>=20.19.0'} - domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + domhandler@6.0.1: + resolution: {integrity: sha512-gYzvtM72ZtxQO0T048kd6HWSbbGCNOUwcnfQ01cqIJ4X2IYKFFHZ5mKvrQETcFXxsRObZulDaKmy//R7TPtsBg==} + engines: {node: '>=20.19.0'} - domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - - dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} + domutils@4.0.2: + resolution: {integrity: sha512-qI4JLRKnSzqFqr7hAlS5xQDusBCjKSEG4t4+7aNrIQMHBcsC2TGEhuyABJdYkgSewL57PNLYEiibY2iPKhKpaA==} + engines: {node: '>=20.19.0'} eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - ee-first@1.1.1: - resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - - electron-to-chromium@1.5.427: - resolution: {integrity: sha512-n14zb3FdsChZ2BNobqNHAJMcP3ifFv4paox2LvCrfVAQcqGiSURgbJl+PfMpHVCNFkStnNc+RRVtPBTVW5PDgw==} + electron-to-chromium@1.5.439: + resolution: {integrity: sha512-qu6QIPXhsb+CRcAiTMNjR4A1y/7tCYKkKjr5CZXRVih6qkDf79peZ2BpEU3qoDBNCRrcy3Mra3X9nG5oruuA7Q==} emittery@0.13.1: resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} @@ -2682,26 +2490,14 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} - empathic@2.0.1: - resolution: {integrity: sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==} + empathic@2.1.0: + resolution: {integrity: sha512-AnfC1ATldl49/cvZdLPDjBfrRNwbDO05aibiOtzQu3qtlbJtomNLhF30HEtn/7iBz50dlMECqATo3fG0LrdEgw==} engines: {node: '>=14'} - encodeurl@2.0.0: - resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} - engines: {node: '>= 0.8'} - - entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} - entities@6.0.1: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} - entities@7.0.1: - resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} - engines: {node: '>=0.12'} - entities@8.1.0: resolution: {integrity: sha512-kxL7msIffSuh9aaFAMD7rxAIuTRMAHMeBtgHW2yUdWw732ZNh4MehkF2gdjvtdmikkaIP9bFDDJOPlsvm7avrA==} engines: {node: '>=20.19.0'} @@ -2713,21 +2509,9 @@ packages: error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} - es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} - - es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - es-module-lexer@2.3.2: resolution: {integrity: sha512-poHGpORABojJJucnV9KbOavETW8lBVnphkW77ER5/BQ5Fz7oXSoCNek7IH3vR5nRjdsEz926ibFYX8KtLQmdyw==} - es-object-atoms@1.1.2: - resolution: {integrity: sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==} - engines: {node: '>= 0.4'} - esbuild-wasm@0.28.2: resolution: {integrity: sha512-GccVwhv3mmOUVQHCQm2Ox/rby8n/EqUwvZxE6Pjfikrq/lWw9g9WX/u9EykWnpot3Ko6j426DgQdea2xWKIAQA==} engines: {node: '>=18'} @@ -2742,9 +2526,6 @@ packages: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} - escape-html@1.0.3: - resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} - escape-string-regexp@2.0.0: resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} engines: {node: '>=8'} @@ -2765,8 +2546,8 @@ packages: resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint@10.10.0: - resolution: {integrity: sha512-NPXn6r5zl4uET1DAVPaOwzX3rut4c0wcmw3dWJAfOsTM5+TogXo0DDjz8pwm/hL8cyVNpHqeK4JpN0NjnyFFNw==} + eslint@10.11.0: + resolution: {integrity: sha512-P7a6UEEqb9G95MYAtqkmsTbVXIYyzIfl6NGOIJk162PaahFxFyeGcrlXYFSiagECg4sEm8IseJdZBKR3rx6MsQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} hasBin: true peerDependencies: @@ -2800,18 +2581,6 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - etag@1.8.1: - resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} - engines: {node: '>= 0.6'} - - eventsource-parser@3.1.1: - resolution: {integrity: sha512-EKN1vKAMcZ8MlYMpaNuxN6R9yakzH6uajHcHVTqWJzvu5pWw9DyhbP35HH8MVBQ+dZjAfDxk+A8NiR9KWaXiyQ==} - engines: {node: '>=18.0.0'} - - eventsource@3.0.7: - resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} - engines: {node: '>=18.0.0'} - execa@5.1.1: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} @@ -2824,20 +2593,10 @@ packages: resolution: {integrity: sha512-PMARsyh/JtqC20HoGqlFcIlQAyqUtW4PlI1rup1uhYJtKuwAjbvWi3GQMAn+STdHum/dk8xrKfUM1+5SAwpolA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - expect@30.5.1: - resolution: {integrity: sha512-m8YrYgvKe9+9gEnWEuKz+qCGfHqkrff7PPfyDnOFkjsfYRKqiYyOxDFMFieCGAuhtk/VNm63tvNgKZVzVy+Hvg==} + expect@30.5.2: + resolution: {integrity: sha512-0LNuMvs8/5mRYhnCR4k+lGV7fqPMs6Bnksda4S3zsCUmdxBpAn4zU4NNzXdq1pMKe/H4W5t/zVIDSJ/H3e0vDA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - express-rate-limit@8.7.0: - resolution: {integrity: sha512-hOwV7WOxXfjRpAM1DSJWZDXx3GhplwD8IfwuwvogD8i1Qnkgosw/H45s4ZnFAUHDAhPjlY9hLBvJhKmGMyY26g==} - engines: {node: '>= 16'} - peerDependencies: - express: '>= 4.11' - - express@5.2.1: - resolution: {integrity: sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==} - engines: {node: '>= 18'} - fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -2853,8 +2612,8 @@ packages: fast-string-width@3.0.2: resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} - fast-uri@3.1.7: - resolution: {integrity: sha512-dOvZVzjdZdz7phd9v6jCbwxrBW3fK6n8Rc0CtdmM4bumzMnxywBYhuph6J819RRw/ku+rLbelwfMunktuzVVHg==} + fast-uri@3.1.8: + resolution: {integrity: sha512-GZMtZUTNRpOVIECoXwLNZS5xUGE+mVNbTB8h/7Rwh2TFWcBQiPzTgyZi05BF9UMZKkLJv8XBRJTlU7zg8+ZfMg==} fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} @@ -2877,10 +2636,6 @@ packages: file-saver@2.0.5: resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==} - finalhandler@2.1.1: - resolution: {integrity: sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==} - engines: {node: '>= 18.0.0'} - find-up@4.1.0: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} @@ -2895,18 +2650,14 @@ packages: flatted@3.4.4: resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} + flru@1.0.2: + resolution: {integrity: sha512-kWyh8ADvHBFz6ua5xYOPnUroZTT/bwWfrCeL0Wj1dzG4/YOmOcfJ99W8dOVyyynJN35rZ9aCOtHChqQovV7yog==} + engines: {node: '>=6'} + foreground-child@3.3.1: resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} engines: {node: '>=14'} - forwarded@0.2.0: - resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} - engines: {node: '>= 0.6'} - - fresh@2.0.0: - resolution: {integrity: sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==} - engines: {node: '>= 0.8'} - fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -2917,9 +2668,6 @@ packages: engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] - function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -2928,22 +2676,14 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.6.0: - resolution: {integrity: sha512-QRbvDIbx6YklUe6RxeTeleMR0yv3cYH6PsPZHcnVn7xv7zO1BHN8r0XETu8n6Ye3Q+ahtSarc3WgtNWmehIBfA==} + get-east-asian-width@1.7.0: + resolution: {integrity: sha512-XjH1AECxf0giL2V1aU8vKyRR2ppRUb5c0EvT7zuJTokQ74bNo52zOtghqdWIqrhUD79fo3x0WfKZdOqxF6LG1Q==} engines: {node: '>=18'} - get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} - get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} - get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} - get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -2964,10 +2704,6 @@ packages: resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} engines: {node: 18 || 20 || >=22} - gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} - graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -2980,22 +2716,10 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} - hashery@1.5.1: resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} engines: {node: '>=20'} - hasown@2.0.4: - resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} - engines: {node: '>= 0.4'} - - hono@4.13.7: - resolution: {integrity: sha512-c8/gF9ac8Y78/agExVocyLevgR+JlpNB444Py0FSX8pJoPdYUfUzRcXtYEYGwt6l19qIlVZPN5Mfsw9jFShmQQ==} - engines: {node: '>=16.9.0'} - hookified@1.15.1: resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} @@ -3013,12 +2737,9 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - htmlparser2@10.1.0: - resolution: {integrity: sha512-VTZkM9GWRAtEpveh7MSF6SjjrpNVNNVJfFup7xTY3UpFtm67foy9HDVXneLtFVt4pMz5kZtgNcvCniNFb1hlEQ==} - - http-errors@2.0.1: - resolution: {integrity: sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==} - engines: {node: '>= 0.8'} + htmlparser2@12.0.0: + resolution: {integrity: sha512-Tz7u1i95/g2x2jz81+x0FBVhBhY5aRTvD3tXXdFaljuNdzDLJ8UGNRrTcj2cgQvAg3iW/h77Fz15nLW0L0CrZw==} + engines: {node: '>=20.19.0'} http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} @@ -3048,12 +2769,12 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - ignore@7.0.8: - resolution: {integrity: sha512-YYNsSlXBjMk92SKnkwvB5LOVSa6OznlFUGcsvrFgNJbJCd0M1XKeFVRc8ZByeCqz32FivYNHJVooLmdqrmvp/Q==} + ignore@7.0.10: + resolution: {integrity: sha512-HpbUakT7xp5miBUywCHf36ZEuAJNklBJDDsGpUIjMzOSmM8ELSfA9Sa/QDPeNeqeoN31u+UTCkL4klCOVvRm4Q==} engines: {node: '>= 4'} - ignore@7.0.9: - resolution: {integrity: sha512-brTTsvFRt5C1gGHtPst/281UjPD5t9fBqbgoMPlVWy11ZLTPfu7HxK4ZYqO9H7o/yC9rSTCI85EaQ4OoY12qYw==} + ignore@7.0.8: + resolution: {integrity: sha512-YYNsSlXBjMk92SKnkwvB5LOVSa6OznlFUGcsvrFgNJbJCd0M1XKeFVRc8ZByeCqz32FivYNHJVooLmdqrmvp/Q==} engines: {node: '>= 4'} immutable@5.1.9: @@ -3071,17 +2792,6 @@ packages: resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} - inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - - ip-address@10.7.0: - resolution: {integrity: sha512-BGFsyJd5mpXp3rK6jIdADLNgpJUK1jnjzvYF8lK+VyDab9JAmqN0YOKDdP17HlgKb2+ehPgDc8EtnRLbGCAMhA==} - engines: {node: '>= 12'} - - ipaddr.js@1.9.1: - resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} - engines: {node: '>= 0.10'} - is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} @@ -3112,9 +2822,6 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - is-promise@4.0.0: - resolution: {integrity: sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==} - is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -3153,12 +2860,12 @@ packages: resolution: {integrity: sha512-0+bvMM/ENhDI29Z8q1r4HxiDIi4G5tnBmSw4esfPQoj9q8Nik7KIyuxHkTVnnniJQf05SxpGaKDQ+4h28ynGPg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-circus@30.5.1: - resolution: {integrity: sha512-NgliezXQ6yznqR4W5Gqw++0cZSbBZlF0NknNIAE5VmSJKWOtmWJmWnBq3TSkUOVBTPrT7FGGhVdA8DLWnxo2Sw==} + jest-circus@30.5.2: + resolution: {integrity: sha512-vffFgjs5JSJ9q4ds1vNW3klKYPJfYfIY61LT/zaZgvTeASJOWZUt8LBfHgIcV4rwxlPBLl/ePBGccHEclS4PlQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-cli@30.5.1: - resolution: {integrity: sha512-uwNYepWgaNBCplm42fCIUZTf/tIEHIy5AYvx7eL1BrwIgyjPt+2poouR23UO2yopIP+kV8oZFHfv+l4pg/8prQ==} + jest-cli@30.5.2: + resolution: {integrity: sha512-YYYxUUVjFgPvgEleKNKMaYGIFgR3l3832Cl0kRL/oCiDZ03v7wImUtquHl2OOBCCNgprjZgBN5bczS/JklPBDg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -3167,8 +2874,8 @@ packages: node-notifier: optional: true - jest-config@30.5.1: - resolution: {integrity: sha512-L8PKM2X/ngG8PxfLMqglKGZjylPgw84bVPUlMY9W/o76TnLqPWrmQgsaT0HrheGdRtpGE5FbmREA0Kvb+Qx5gQ==} + jest-config@30.5.2: + resolution: {integrity: sha512-U6221OZekabePvGcGPf4raIBKMvYQWFHvhobDJRojOYaFMj2HaGytAdknjDhYc6JTz2fdHW9+6k0wWUDaNeOFQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: '@types/node': '*' @@ -3190,20 +2897,20 @@ packages: resolution: {integrity: sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-diff@30.5.1: - resolution: {integrity: sha512-e3cNNMpv8Kh20MjjphTXs+3Vz7DQyLM1nft7KJhnh46atFhjVJRa+0Hq0beywuwsACtMQUBihQkFl8zxb7gt1Q==} + jest-diff@30.5.2: + resolution: {integrity: sha512-rBtHnI6BWTiWj3lM7fOLVfChx7R9B0u9VV3PRHawKs79x6ZjW1QoSrKenaigNGWlvhtoi2BqvDbABDie+Os3xQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-docblock@30.5.0: resolution: {integrity: sha512-NwDqcxtoZi33RhuW+zJS/RVA3rmheQ8BnwpYZuc/Eruaz6seQb7+aoCeDZu/3X7W2XmD8DbSo9Pn72DbKsBFYw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-each@30.5.1: - resolution: {integrity: sha512-S1af0TU4v1EZ/AUlkFs/sxf/5KGsbAT9kRgdyoMX/x72y7C8ZEgETE5o1TPnbKRnrbprc5FR/moYLfdRmqEjsQ==} + jest-each@30.5.2: + resolution: {integrity: sha512-GRrW+7fmmgmkvyfEBqc1QFdWnF1Ex5yG6Y6AWL4TTxnkWlKIT98dsKh3P3UuWm6v4XsQwVE6DEzXIPMzWJ3ZbA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-environment-jsdom@30.5.1: - resolution: {integrity: sha512-8lzKbC/SRbQE24wr1OOJV+aYtDAuVNKBryN6YcFiCcaZZ3I7grcZY7w91BwNvGET0ubKDmomEHZFHMaF+6pAlA==} + jest-environment-jsdom@30.5.2: + resolution: {integrity: sha512-6NOZjEP+WNi4WXjbxb/1ROnfaMxn6Dhqu6uSC22o0H28z+uppejs/jZ9KCVoLepqqoCjcNZujtzQqC9jSV15jg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} peerDependencies: canvas: ^3.0.0 @@ -3211,8 +2918,8 @@ packages: canvas: optional: true - jest-environment-node@30.5.1: - resolution: {integrity: sha512-LrPj3sPMjsQoOB3jrb8p/sa+XkSFNKo60TTsyc+EB2kxQJHgbwElpXnx1yX25fdFn5958FIObRtcLSHyV8VIAw==} + jest-environment-node@30.5.2: + resolution: {integrity: sha512-Ciz4KgTGIbojxSKpuFImgWJj5EyqfE8xMq9NxWmOXnQywHHS03H9Mv+vaCB29J5pr3JBrY27WbRV18rBdjh8Dg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-get-type@29.6.3: @@ -3235,8 +2942,8 @@ packages: resolution: {integrity: sha512-zvYfX5CaeEkFrrLS9suWe9rvJrm9J1Iv3ua8kIBv9GEPzcnsfBf0bob37la7s67fs0nlBC3EuvkOLnXQKxtx4A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-matcher-utils@30.5.1: - resolution: {integrity: sha512-aroZVqwOz/wC2y6pC+obgFWKV9viaQWQTTSB6W5H55+egtUczIfXR/rxExTv92xD/ADYwpqaYfVWx1aqwKg7FA==} + jest-matcher-utils@30.5.2: + resolution: {integrity: sha512-lFkB365PTIHOhPzwrb9T6gvlDnPpOZ7/c3ewOKKB7bzztqjVrtlyRL2MkyfJXpyY2u2SKw001JKrTx14fBUFcQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-message-util@30.4.1: @@ -3251,8 +2958,8 @@ packages: resolution: {integrity: sha512-/i8SVb8/NSB7RfNi8gfqu8gxLV23KaL5EpAttyb9iz8qWRIqXRLflycz/32wXsYkOnaUlx8NAKnJYtpsmXUmfw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-mock@30.5.1: - resolution: {integrity: sha512-9fVjc3leUpGID2/by/LU4Dvdcp7PFh9LlxS3QRWK3ABm+KtvEVsG/AEGeLY3gKOZsjkBxyfwGltoAVlW7dygHg==} + jest-mock@30.5.2: + resolution: {integrity: sha512-KTHb37Fhj8xY8qPFvTFaFJHcdsumQp+ExsUlgoX232Agmc706gagBs53+CYvulV7MVQo9AgXOUxsqzzVBoJlrA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-preset-angular@17.0.0: @@ -3274,24 +2981,24 @@ packages: resolution: {integrity: sha512-Mg0WK7A6xRHLSA1udJ8y9f3lM0uUhFTBnLKzwPmqB9AylvpleJ6BLemR8K9dK27DY+cesDryoA7yLZCAHsPG1A==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-resolve-dependencies@30.5.1: - resolution: {integrity: sha512-JKpXGONDcTaunrNVn8KCl6qAnwl06jIkvv70lhq0Ze47lsPx9sH5HoeEUiXX6iFGnliHN/qpIbQ0l38wrVmXaw==} + jest-resolve-dependencies@30.5.2: + resolution: {integrity: sha512-GMI0DP5enX9Z2qW2zFy1bOkrCfWAOPRJQ7qHt0pdfrxBPsgWxglMPrRSK2TX/wRWYxcPRSLFg3Z88qPOzHx7FQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-resolve@30.5.1: resolution: {integrity: sha512-wprhLejRtwN6h8ZgaqC0eYjGJ1uMdGPT/+b3eFncbG4NWuuP9QL+vWwRinu9waw7hkOLcpMJGVJAMgBwsPssMQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runner@30.5.1: - resolution: {integrity: sha512-FPlQE4+mwnFxXmpPrSi836KV2ZzvK1g6/nPCT8o5BcoDUUNJQeHo1/Qdkoe/QeoL4M7OeJpbnGUhYKhC1VMdaQ==} + jest-runner@30.5.2: + resolution: {integrity: sha512-/B6px7hiiNhVSRwuv9AGn0nawYvwsHeQZ3ItTd5Gp2diFd0EOKaWVeWqcbw3L88vx1GfpCKjQkxWItZCTl11Rw==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-runtime@30.5.1: - resolution: {integrity: sha512-UB88+NRkK2Tw/OqV7dofYcyiUGrVZtD41k/N0xQOs9fG//57XHK7JLWG52HD1UYpUAhjK4xm6DBvFX3yWudsMA==} + jest-runtime@30.5.2: + resolution: {integrity: sha512-0paUAHBlheai10A3XSy9Xh+YBG0IROy+/qzcDPzQ/nbbXrznQzeWy5qniICWK6d3W3scaRQCVAbXdcK0ibBq4w==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-snapshot@30.5.1: - resolution: {integrity: sha512-cNWFdSb5xuDGl8hKkAZJ3YtI/PzHpAPFV+HUXWIOG8rMhpDTLVbvAc2d2wRicoYw2wGsJGLaurJT6BLC97bLXQ==} + jest-snapshot@30.5.2: + resolution: {integrity: sha512-jKIdes25AnAH73dOCi2qE6J6vHJ6L2vyBS11M89kT50DVJcLTf2AOjvcc+2vVaN8lUbY5v2R83aqXo3Ro9fqYA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-util@30.4.1: @@ -3306,8 +3013,8 @@ packages: resolution: {integrity: sha512-i/buJ56wTpxihE93hQYNMfdOThS87+HGvLZzZJmU4xggPcdTYQq051iwALLCHp3q+SkCGH+EFejQZz5EbBSkkg==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest-watcher@30.5.1: - resolution: {integrity: sha512-+FHJ7C+S7b3ySfhA1aFmoa6TztsnwZVv84ycPRn0tVN93np2EU4b8C/KadqA3l6igdjgLBTnUotab9ER0HLG8A==} + jest-watcher@30.5.2: + resolution: {integrity: sha512-rqRgg4R11GA9m1UsEZwQeixHsgZReCn6TOHAHtIH33yXrIvoX0OGPA20Yzzjkz7X40fZvcRSxEpQppYPcWzmcQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} jest-websocket-mock@2.5.0: @@ -3317,8 +3024,8 @@ packages: resolution: {integrity: sha512-Cbxh5v7AoLuFRmFJSM4/aHdQ68rjXvUWr716EE0Dh3I7T+T/3FgFKhOERGXHcU2Meftq9+9zxPM3TSNyI9D+HA==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} - jest@30.5.1: - resolution: {integrity: sha512-3qrR8+ZXFnn7y0H2yjWQNkGGBLBY4zTRoTMAq9zJcgwLLtlyonfsCLviIXK9xuE2KgIyM+M36AFcoK2DgFR36w==} + jest@30.5.2: + resolution: {integrity: sha512-3gnpdBIza8ijCl3iMV9ChE3hSt1+46865qqod863gQtJr1DixOkAU5DoGbi3u+XlRcw++BhZQMu/y4xBdHBvSQ==} engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: @@ -3331,9 +3038,6 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - jose@6.2.12: - resolution: {integrity: sha512-9NiFmJEex0sy2Dk58j2UGBSHgUs2ypF9eZSu4L6vjOX3Dp96Sw1F3uL+H+D1sx02jZZdzUT0HgvCy59CuvXcWw==} - js-tokens@10.0.0: resolution: {integrity: sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==} @@ -3367,9 +3071,6 @@ packages: json-schema-traverse@1.0.0: resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} - json-schema-typed@8.0.2: - resolution: {integrity: sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA==} - json-stable-stringify-without-jsonify@1.0.1: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} @@ -3469,8 +3170,8 @@ packages: lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - listr2@11.0.0: - resolution: {integrity: sha512-8K88S0aSrcSXdJfiZtEy5BQMnR+TyjrCGLcgAvQs6ta0NEnIm0RJ72/Pv67Jvg07cfBhDbuN74V81lSSVYEFEw==} + listr2@11.1.0: + resolution: {integrity: sha512-xsuczF6mWkEo/E80QHaEokQzKmTy7m80KcLRnkUt9wrcePres2w7dbQi5zOsWtDUg8Dac4gPFyu4EJ/IvKwTOg==} engines: {node: '>=22.13.0'} lmdb@3.5.6: @@ -3505,8 +3206,8 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} - lru-cache@11.5.2: - resolution: {integrity: sha512-4pfM1Ff0x50o0tQwb5ucw/RzNyD0/YJME6IVcStalZuMWxdt3sR3huStTtxz4PUmvZfRguvDejasvQ2kifR11g==} + lru-cache@11.5.3: + resolution: {integrity: sha512-U4N8FgzmWxc8k1VH8Kr6lQg18U7Fjvby6wXHVRX/ZZ7IwWbRMgrRbP0Wrb5q5NVinryp4SQampHKdvtecItxUg==} engines: {node: 20 || >=22} lru-cache@5.1.1: @@ -3515,6 +3216,9 @@ packages: magic-string@1.0.0: resolution: {integrity: sha512-CGvjzMN08iv6w1mm4/x3Gh1hLb4VnyRUA15FFpl6CsCIGGoe36k7kY5KNz9QDbSBN5I/fWHM6ZlIkUTa5xdUEA==} + magic-string@1.4.1: + resolution: {integrity: sha512-8lyCu36ErXR0J9uaGKlKQoiLZKmtI63YGLE8G2o9jyRPdr4X47LusSOwgOJOzcVtp81fTAAjxR7BwKz682Jhow==} + make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} @@ -3525,32 +3229,12 @@ packages: material-colors@1.2.6: resolution: {integrity: sha512-6qE4B9deFBIa9YSpOc9O0Sgc43zTeVYbgDT5veRKSlB2+ZuHNoVVxA1L/ckMUayV9Ay9y7Z/SZCLcGteW9i7bg==} - math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} - - media-typer@1.1.1: - resolution: {integrity: sha512-yz3xRaG20c6/BOzvYoDaGtPmGscs7YivItZEEqe6GbwNfHuxu9YNmvnEkMzKldAGY4/80pRcQRZSEnhquk9XuQ==} - engines: {node: '>= 0.8'} - - merge-descriptors@2.0.0: - resolution: {integrity: sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==} - engines: {node: '>=18'} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} - mime-names@1.0.0: resolution: {integrity: sha512-vLNEfYU63fz34panv/L3Lh3eW3+v0BlOB+bSGFdntv/gBNnokCbSsaNuHR9vH/NS5oWbL0HqMQf/3we4fRJyIQ==} - mime-types@3.0.2: - resolution: {integrity: sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==} - engines: {node: '>=18'} - mimic-fn@2.1.0: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} @@ -3614,10 +3298,6 @@ packages: natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} - negotiator@1.1.0: - resolution: {integrity: sha512-NMPBRMJgiQHjbd8phG3Vebdx4kZ1H121rbl5IkMqeOsahptB9BKo/d7oJ3zTXqTgagn2bWlNSXkh0QUGM31RYg==} - engines: {node: '>=18'} - neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} @@ -3674,8 +3354,8 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.55: - resolution: {integrity: sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==} + node-releases@2.0.57: + resolution: {integrity: sha512-kQK9LGGFiHtrWiNhZtA7Qbw17AQz+dmsEKODRIVTXA9+e5MS/2gZEBhYJt13GrAz5/IOZKddH/0Z3TP/Zgo+yw==} engines: {node: '>=18'} normalize-diacritics@5.0.0: @@ -3694,31 +3374,17 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - nth-check@2.1.1: - resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + nth-check@3.0.1: + resolution: {integrity: sha512-GX0gsdbGVCgnRgbeGaubfjpBXyYRWOOCVeYh08bSQvDZqxz5ndXs1OTfAt/h36G1xvI94YIspsI0sVFqAV9+RQ==} + engines: {node: '>=20.19.0'} nwsapi@2.2.24: resolution: {integrity: sha512-7YRhZ3jS45LwmSCT4b2sVFHt/WuovaktDU07QrtOBY2PXskss5a9jfmR9jptyumwXST+rFjrmppMY1KT/yn35A==} - object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} - - object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} - obug@2.2.1: resolution: {integrity: sha512-XrsrhT5sybtKI6wakr2SPOlGZWWYbUXZ7a0jT8/QOeAPau+1X/bSegNe5YR75oJmEZQbKningirmGOEJCIk61Q==} engines: {node: '>=12.20.0'} - on-finished@2.4.1: - resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} - engines: {node: '>= 0.8'} - - once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - onetime@5.1.2: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} @@ -3735,11 +3401,11 @@ packages: resolution: {integrity: sha512-6VlU9MLXbjVQD04AZCMX28hVtA5bUoadvUqO76MUCVA0ilwJbMiHsITRPfyVm6p/BC0Av/BXMujx39WCe1LEqw==} engines: {node: '>=20'} - ordered-binary@1.6.1: - resolution: {integrity: sha512-QkCdPooczexPLiXIrbVOPYkR3VO3T6v2OyKRkR1Xbhpy7/LAVXwahnRCgRp78Oe/Ehf0C/HATAxfSr6eA1oX+w==} + ordered-binary@1.6.2: + resolution: {integrity: sha512-BY+qgDArmYpvvmij141xbkB4Cw8RFLBQM5Zj4MODFb1SyXBRE/xO4Xj/QWbR7aUEBxbkjuNdsFVCL2TmbYrlNg==} - oxc-parser@0.142.0: - resolution: {integrity: sha512-kKR+jPiRJYJDexVoziIg/FVGvr1fT1FZSSJOk6tVoMKKSlsf1Cso+cgGCJkOEDWOP174vRntCPFKg+AS7InWvw==} + oxc-parser@0.150.0: + resolution: {integrity: sha512-zwajKw1GUa57IOdafIS7/yOObGF2NihwIfZfs5yJTRprMSkiwhWOc/k+n8bwnUPbHr2/XsjfBO8KyTPaW3VpWg==} engines: {node: ^20.19.0 || >=22.12.0} p-limit@2.3.0: @@ -3784,10 +3450,6 @@ packages: parse5@8.0.1: resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==} - parseurl@1.3.3: - resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} - engines: {node: '>= 0.8'} - path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} @@ -3804,9 +3466,6 @@ packages: resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} engines: {node: 18 || 20 || >=22} - path-to-regexp@8.4.2: - resolution: {integrity: sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==} - pdfjs-dist@6.3.289: resolution: {integrity: sha512-ZHjSVpDa3D6izMq8/04lvkhkATUmL9px6ChPaXc1k6nU2Mrhlg1/7F0bdUqCwUjw3NsPTfPZsMDUU6ZIcRaeQw==} engines: {node: '>=22.13.0 || >=24'} @@ -3830,14 +3489,10 @@ packages: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} - piscina@5.2.0: - resolution: {integrity: sha512-DszUCKeVN/5G5QKo6jAVHL8fmKnkJvQ0ACiVgY7YGCq3TUB2oznAOayvZPIAdEThvhczkXR+qm3IHsNXpFCYfA==} + piscina@5.3.2: + resolution: {integrity: sha512-vv7l/mM7B9WgrhDaudIqv1x6v4LOBRYYmpWGdWushhpbCmVHp11sUB2v4hj1CAeTGXVxuZFz6xOU1RalAiPKfQ==} engines: {node: '>=20.x'} - pkce-challenge@5.0.1: - resolution: {integrity: sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==} - engines: {node: '>=16.20.0'} - pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -3879,8 +3534,8 @@ packages: vue-tsc: optional: true - prettier@3.9.6: - resolution: {integrity: sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==} + prettier@3.9.9: + resolution: {integrity: sha512-Z/CJHIkdujO/OtN7nXUii0Rf3VT5SRuhjBA82Xvu2XhBUgX3nhP67T0LHceBdQLex7OOFGTox+Q5Yg8Jk2Qivg==} engines: {node: '>=14'} hasBin: true @@ -3900,10 +3555,6 @@ packages: resolution: {integrity: sha512-FYgfaA69XZ93zaXLoMNQ+ViDXGGBgR8aLh03txzcFhV+9xOXx7+8DLCULrKKpR9+GsH9ZfHm82aSUPpozX0Ztg==} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} - proxy-addr@2.0.7: - resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} - engines: {node: '>= 0.10'} - proxy-agent-negotiate@1.1.0: resolution: {integrity: sha512-N8IBcM3UgCVzz2L2Lqv8DVntDnnC8/hiV4nEDUPkqq72TPUgYWjQc+bdZlBPZK9LzPAvOY//gAt0S0DApoOXWQ==} engines: {node: '>= 20'} @@ -3924,23 +3575,11 @@ packages: resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} engines: {node: '>=20'} - qs@6.16.0: - resolution: {integrity: sha512-h6fhOIaRrID2CbEY2fqs+7t+UXZo+MLAnU5gRIq85uFtdiUPCdsApMlHhXogKVM4HM2DVbIjGNTTYH2OcmP1vA==} - engines: {node: '>=0.6'} - - range-parser@1.3.0: - resolution: {integrity: sha512-hek2mFQpPuI4E1BBKrSto+BU3e3x4xuarsbiwr3+lf7p44juvFMV0XFWQAP3xUyqXA4RrXLIoaSUGbSt056ZMw==} - engines: {node: '>= 0.6'} - - raw-body@3.0.2: - resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==} - engines: {node: '>= 0.10'} - react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - react-is@19.2.8: - resolution: {integrity: sha512-s5un28nYxKJw5gvUHyW5PCC28CvBqLu9r3cWgzHT4Vo/5fqqkFcdRYsGcKf50WMPpjjFZS5d76fn3YCo2njKwQ==} + react-is@19.3.0: + resolution: {integrity: sha512-UpMYezM4v5/18F28aC66AEsjXIgE02kyEMH6yLdgLXu/UTfa1Ntwck/nNLrbqJsEXW7gPb0coNO9FQse9WTovA==} readdirp@5.1.1: resolution: {integrity: sha512-Kko+Y5XQ6fM+Ce3dq3m9YGxnacYZYl9cA1wZjaF3Vbry2L3i1qVg8+CAgNPsXRArPMUMCaOR7oa9Nqntc43JKA==} @@ -3972,20 +3611,11 @@ packages: resolution: {integrity: sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==} engines: {node: '>=18'} - rolldown@1.1.5: - resolution: {integrity: sha512-t9z29cJjXf/vxQ8dyhCSpt6H6aSwHTk8cT5I3iy6SMXuFpk5mB6PL6XfC8PCwrPTx93udwKUm9HRteAlTGBLiA==} + rolldown@1.2.8: + resolution: {integrity: sha512-Z67nTmhZe7anqnM/EjI392w5i/ANUinjip7QYsOyN37oayduxt3ksdX0hf5OOamkAd53BiIHfbfSzfUmzKFQqQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rolldown@1.2.0: - resolution: {integrity: sha512-u7tgm5l4Yw1iTqUL4EcYOAt7fFvCgQMLeidrnD4GALlC6aOznCjezYajgxeyKw27u0Q5N7fwgCzjVyPIWzwuBA==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - - router@2.2.0: - resolution: {integrity: sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==} - engines: {node: '>= 18'} - rrweb-cssom@0.8.0: resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} @@ -3995,8 +3625,125 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.101.0: - resolution: {integrity: sha512-OL3GoQyoUdDt843DpVmDO6y2k1sc5IhUDSpu8XucEI+35neq5QivZ1iuegnpraEVTJXlQGK1gl27zKcTLEPbQw==} + sass-embedded-all-unknown@1.104.1: + resolution: {integrity: sha512-toyMCyUKkT6DsYlHuKZGjd8T6WltaW4TGX07F7HnF4tNJM5m/8VaVsd74zrq3QSPqGE9JjxIDK4NrNc/QY9pkA==} + cpu: ['!arm', '!arm64', '!riscv64', '!x64'] + + sass-embedded-android-arm64@1.104.1: + resolution: {integrity: sha512-yW3BVW4YFpN2vu2cVQ+Pz5JrRTvoIz36aCdo+J/Mo1A9gEN8eVPV/AL7aeZ803YdKgIitd3qw3pY4wpmT6TXNg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [android] + + sass-embedded-android-arm@1.104.1: + resolution: {integrity: sha512-g/XPAJYAzSSQZFP4xCdGD0HLKB4mf24cJ/+5Nls8rMool3jNkBv9+AFO4EV0b+RxN8rLcEsMccH1CR64yIFYcQ==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [android] + + sass-embedded-android-riscv64@1.104.1: + resolution: {integrity: sha512-ZYY8oMKQS7Q/6FBoC8w3T16O3MucDe3xv8iKym41Nht5uvLCGGpm4fC4OF5nlv7wQkJv8oactYddGG3Wd0Rqkg==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [android] + + sass-embedded-android-x64@1.104.1: + resolution: {integrity: sha512-5WZKC4lSfjMIjzZdQUlYQUAV+UiatBhD8w28U7cYLLj4/dMgEPOBd4g3VMv0BwpgH2JOaycMS42dXq29W2bcDg==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [android] + + sass-embedded-darwin-arm64@1.104.1: + resolution: {integrity: sha512-oatuHzn0NsEg0d9Dcze6CuWUPvuETtMxRK4cv0eRAg7p6R0vHnv5GZRyWG6gEy3nc/ha/L+GtTasWVU82f4jrQ==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + sass-embedded-darwin-x64@1.104.1: + resolution: {integrity: sha512-gql/5sHGzUTVwuHfM3QLCDeb6NYwen+LLj22gz81C2NKHF/4nUtDyh4N+fURWdT7J0/EhtMOd0+FLML3sGNP7g==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + sass-embedded-linux-arm64@1.104.1: + resolution: {integrity: sha512-sVWUKXNTu8sP3X95Df0xo/t49Ce5IseTIMqXHxhFBKVmx7gf7kBWNLK0wH5ym+4khc+B5nNJPgq4IxpelG8tMQ==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + libc: glibc + + sass-embedded-linux-arm@1.104.1: + resolution: {integrity: sha512-WfmshPJOp9vUKxgp8wZ2ncaKBbyrlW9J51M2aUQHWECjMNxTULnGOHWSmD7FViXv4zwn1Co5FIFQUipW7RCxtA==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + libc: glibc + + sass-embedded-linux-musl-arm64@1.104.1: + resolution: {integrity: sha512-H7b+LzZ/w8pwNExInM8HDHraqvxCMdUc5ZRGU/aSJJhZ9HjeRKBjF3GxaisVHnx7o18j1l4VQ5cLBL9tTmNzZw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + libc: musl + + sass-embedded-linux-musl-arm@1.104.1: + resolution: {integrity: sha512-k0cQ/CxBzFVYiQEObg6CpF6CUglkdEhi/DZgZXQbwC27kbGGY+fatmIs/cFPJL2z1ulACwoAr86RQUFzYvw5eg==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + libc: musl + + sass-embedded-linux-musl-riscv64@1.104.1: + resolution: {integrity: sha512-9DYdn4wfrkidjxJVtEd2iCx8HKdZe+uF82GDmrYEZhgu4NjVE6a4fQyW7OLwzn3erZMHKBaObBOH1d37DnXI1A==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + libc: musl + + sass-embedded-linux-musl-x64@1.104.1: + resolution: {integrity: sha512-5xz+nAr01b6yaRdrGVgE7lNvm1lGFjwNdUvnz+teidvHCbD5oTcbhrRVrnDoLHHvq5n3Jve9TzWaaHhezaEfHA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + libc: musl + + sass-embedded-linux-riscv64@1.104.1: + resolution: {integrity: sha512-oWryPJWTXK5adtlz/FD7wd2kS4I0CEgp6mWLUVb4oMFURMLz9bA9fO87D7lc4SV++lds7T51PU1kykCbOvNHMg==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + libc: glibc + + sass-embedded-linux-x64@1.104.1: + resolution: {integrity: sha512-j/sX/yKTx/wJKepC5/ISlR6kPeSuHKThf76D2za5i2VnbHg0MN19jQq3WMorowR3kRghqt6azs3awogG+e7IRA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + libc: glibc + + sass-embedded-unknown-all@1.104.1: + resolution: {integrity: sha512-RaMsYZB5mRioL4qhoI7T5mmNb2OunakbPTJW2cuu3MeIULnGoxo7Wd5QKFxeQvF7sSQL57RuaQ+q9pH+/pQ9Fg==} + os: ['!android', '!darwin', '!linux', '!win32'] + + sass-embedded-win32-arm64@1.104.1: + resolution: {integrity: sha512-fS6DL7lcnTPclqGLF4xRt8egZlFY9cU23d57ufbWqaUbCFu9JTu0+8qB4jMxfx1la6byi3GoSTfbnNOLfWv8sw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + sass-embedded-win32-x64@1.104.1: + resolution: {integrity: sha512-/c4N2A93Ckms6DuRFVftKYISuI1tyC8gmlVJ8WaWFzgCBN/Swq2rARJIBUNeuxlmxjmYXfd3+2f/u887K63wbA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + + sass-embedded@1.104.1: + resolution: {integrity: sha512-7LxbtPJ1MWKVbhzOnGx1sHTkHTcHVJ9hbgVsU29p/8gY1VeXt19fcJFr5xsx2f6zfrrR3FeOcYMt0uYDLAxpgw==} + engines: {node: '>=20.19.0'} + hasBin: true + + sass@1.104.1: + resolution: {integrity: sha512-yDA+1aIG3EHgN4V/BvuhCvu61FF6hEd4e+9DxikUm9U0CAGuvdIZ/UYy7qbOxjhbbWQraoyLlMuzdRGOSV5Bmw==} engines: {node: '>=20.19.0'} hasBin: true @@ -4013,17 +3760,6 @@ packages: engines: {node: '>=10'} hasBin: true - send@1.2.1: - resolution: {integrity: sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==} - engines: {node: '>= 18'} - - serve-static@2.2.1: - resolution: {integrity: sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==} - engines: {node: '>= 18'} - - setprototypeof@1.2.0: - resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -4032,22 +3768,6 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel-list@1.0.1: - resolution: {integrity: sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==} - engines: {node: '>= 0.4'} - - side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} - - side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} - - side-channel@1.1.1: - resolution: {integrity: sha512-6x6dK6zJdpTzF4sQeNYxwtvBzf6Eg4GtlesS94HOvTudUeyK2WXAaIfmDgsyslYrRBeFIlsi54AYsFGUuhmvrQ==} - engines: {node: '>= 0.4'} - signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} @@ -4059,8 +3779,8 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slice-ansi@9.0.0: - resolution: {integrity: sha512-SO/3iYL5S3W57LLEniscOGPZgOqZUPCx6d3dB+52B80yJ0XstzsC/eV8gnA4tM3MHDrKz+OCFSLNjswdSC+/bA==} + slice-ansi@9.0.1: + resolution: {integrity: sha512-aBY19bn/XA+hKOKX0qL7Z0UfdBsbQvc9hn993U8ALUjzxCvDcuZqLoRXjGJrUARWAlwMnsRVD9sw2AFNOYvalA==} engines: {node: '>=22'} source-map-js@1.2.1: @@ -4078,6 +3798,10 @@ packages: resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} engines: {node: '>= 12'} + source-map@0.8.0: + resolution: {integrity: sha512-d8EqvL+k/SOXCreS/SUzg2ciyHqBBLcN/yuRjFsbvVhHTE2pgei7oAhmPM7kWFbkX6OSMQfUq4KbkF3au9lhYQ==} + engines: {node: '>= 12'} + sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -4085,10 +3809,6 @@ packages: resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} engines: {node: '>=10'} - statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} - stdin-discarder@0.3.2: resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} engines: {node: '>=18'} @@ -4109,8 +3829,8 @@ packages: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} - string-width@8.2.2: - resolution: {integrity: sha512-GaPUh5gfdrYzqeVNZvUfT23vYYxXzKYidUcnMtJg/3rxRV63EFZy3k6xfKlmfeJD0176lnUV/Usr3XcwSvFzpg==} + string-width@8.3.0: + resolution: {integrity: sha512-ZbmZM0JCihQN91dWnxoipT2KOEyHqEyfRXUyjuRhW8b/xnqPDoq4gWEVApTVa9db2wN8mmoikgFBbjh71+cGeQ==} engines: {node: '>=20'} strip-ansi@6.0.1: @@ -4144,6 +3864,14 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + sync-child-process@1.0.2: + resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} + engines: {node: '>=16.0.0'} + + sync-message-port@1.2.0: + resolution: {integrity: sha512-gAQ9qrUN/UCypHtGFbbe7Rc/f9bzO88IwrG8TDo/aMKAApKyD6E3W4Cm0EfhfBb6Z6SKt59tTCTfD+n1xmAvMg==} + engines: {node: '>=16.0.0'} + synckit@0.11.13: resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -4163,10 +3891,6 @@ packages: resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} hasBin: true - toidentifier@1.0.1: - resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} - engines: {node: '>=0.6'} - tough-cookie@5.1.2: resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} engines: {node: '>=16'} @@ -4241,10 +3965,6 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} - type-is@2.1.0: - resolution: {integrity: sha512-faYHw0anBbc/kWF3zFTEnxSFOAGUX9GFbOBthvDdLsIlEoWOFOtS0zgCiQYwIskL9iGXZL3kAXD8OoZ4GmMATA==} - engines: {node: '>= 18'} - typescript@6.0.3: resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} @@ -4258,10 +3978,6 @@ packages: undici-types@8.9.0: resolution: {integrity: sha512-KTDyRTYX8sWmKXAikPHHSyc63CRPETMctyjKFupcC6OBLXT3xsN0e9aF7m+mIXutFWpUXuedtowG7iLOzp0kQg==} - unpipe@1.0.0: - resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} - engines: {node: '>= 0.8'} - unrs-resolver@1.12.2: resolution: {integrity: sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==} @@ -4292,21 +4008,20 @@ packages: resolution: {integrity: sha512-SCv6OOV6Xj2/3cXy3dGmADluJTNcL3o7hZAglNPTe+WYuEuvxgJzxPrSDLZhF+CwyQOubqgecjMmTJGMVLWjYQ==} engines: {node: ^22.22.2 || ^24.15.0 || >=26.0.0} - vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} verkit@0.3.2: resolution: {integrity: sha512-zj/ob3UsvJGN0whEAKFp53REA5X66hvffVqoCtVQAakJKnKlH+/PcOfMoFwIG/o4rElqLv/ycAFlx8ZlXUorCg==} engines: {node: '>=18.12.0'} - vite@8.1.5: - resolution: {integrity: sha512-7ULLwsCdYx/nRyrpiEwvqb5TFHrMVZyBt+rg/OAXT7rgj/z+DtTDyKFeLAdDkubDVDKD8jOsndmy7m55XcfUsw==} + vite@8.3.0: + resolution: {integrity: sha512-lhZBVvEHefgE+HQZC9O7EBJgCU/nVzFNl7vkS4RE0APtWLP02/8QVIkQtzBxPquh7lq5/78NHipTj7ODQ6XuyQ==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: '@types/node': ^20.19.0 || >=22.12.0 - '@vitejs/devtools': ^0.3.0 + '@vitejs/devtools': ^0.7.1 esbuild: ^0.27.0 || ^0.28.0 jiti: '>=1.21.0' less: ^4.0.0 @@ -4347,10 +4062,6 @@ packages: resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} engines: {node: '>=18'} - watchpack@2.5.2: - resolution: {integrity: sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==} - engines: {node: '>=10.13.0'} - weak-lru-cache@1.2.2: resolution: {integrity: sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==} @@ -4383,8 +4094,8 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - wrap-ansi@10.0.1: - resolution: {integrity: sha512-M0N4xzyzosiIok3svYlEo1sdLZts/8FPgYH/GPC3wvlmPoRvnoManGMrE54waYj3tISA8w6lsdesfVv67qSr8Q==} + wrap-ansi@10.0.2: + resolution: {integrity: sha512-6OLRNZqRntVGBm26ghZ5eZhCuWWyOkRCSn8XsOIuq5stpCE/tjLbdozd93naILZig0lmD8ANfRwnhn0DLeXGlg==} engines: {node: '>=20'} wrap-ansi@7.0.0: @@ -4399,9 +4110,6 @@ packages: resolution: {integrity: sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==} engines: {node: '>=18'} - wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@5.0.1: resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4428,6 +4136,9 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + xxhash-wasm@1.1.0: + resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} + y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -4451,6 +4162,10 @@ packages: resolution: {integrity: sha512-2rAgRKu54VsHkqI0/tYkmluGXHD4KW7yZoycuqDQ15QOTnc2VVfy0nN/1eMhnQLO00A+dwtK20xuCnc1YGeUyg==} engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yargs@18.2.0: + resolution: {integrity: sha512-9OpKOLeaoNFecEp7P6iYbzze/5CqWoH7N3SMs/6y1XF4nMvFMspEGZzJ6uFi9MmQwXhyzqYoSEKO3tvA3Z/o2w==} + engines: {node: ^20.19.0 || ^22.12.0 || >=23} + yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} @@ -4463,16 +4178,8 @@ packages: resolution: {integrity: sha512-xYqdZFUK/VYazNl/oCDYN+3WloWQwMfZxBoiNt6qNyk+xfOdi598muWE42rNZFp1kNOiqW936q5RhUdnpqElSg==} engines: {node: '>=18'} - zod-to-json-schema@3.25.2: - resolution: {integrity: sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==} - peerDependencies: - zod: ^3.25.28 || ^4 - - zod@4.4.3: - resolution: {integrity: sha512-ytENFjIJFl2UwYglde2jchW2Hwm4GJFLDiSXWdTrJQBIN9Fcyp7n4DhxJEiWNAJMV1/BqWfW/kkg71UDcHJyTQ==} - - zod@4.6.2: - resolution: {integrity: sha512-lh5RCAGFa1Cm2hjtNwLQhSs/AsqdWnTQaBER9fEwN/88pSh7KOtJavtBx/0VlkN/uFd61SwYmljLMDAsHlvzBQ==} + zod@4.6.5: + resolution: {integrity: sha512-v5l/aFXZQeai4awLbOpSoHecE9UiMrnfx75tEXLjNonXVARxQ5mOeipTjROUchszUNCqnE+hqAMujRsRHsut2Q==} snapshots: @@ -4483,25 +4190,25 @@ snapshots: '@angular-builders/common@6.0.1(chokidar@5.0.0)': dependencies: - '@angular-devkit/core': 22.1.8(chokidar@5.0.0) - '@angular-devkit/schematics': 22.1.8(chokidar@5.0.0) - '@schematics/angular': 22.1.6(chokidar@5.0.0) + '@angular-devkit/core': 22.2.0(chokidar@5.0.0) + '@angular-devkit/schematics': 22.2.0(chokidar@5.0.0) + '@schematics/angular': 22.1.8(chokidar@5.0.0) get-tsconfig: 4.14.1 jiti: 2.7.0 transitivePeerDependencies: - chokidar - '@angular-builders/jest@22.0.1(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.1(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(chokidar@5.0.0)(jest@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(rxjs@7.8.2)(typescript@6.0.3)': + '@angular-builders/jest@22.0.1(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.2(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(chokidar@5.0.0)(jest@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(rxjs@7.8.2)(typescript@6.0.3)': dependencies: '@angular-builders/common': 6.0.1(chokidar@5.0.0) '@angular-devkit/architect': 0.2201.3(chokidar@5.0.0) - '@angular-devkit/core': 22.1.8(chokidar@5.0.0) - '@angular-devkit/schematics': 22.1.8(chokidar@5.0.0) - '@angular/compiler-cli': 22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) + '@angular-devkit/core': 22.2.0(chokidar@5.0.0) + '@angular-devkit/schematics': 22.2.0(chokidar@5.0.0) + '@angular/compiler-cli': 22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) '@schematics/angular': 22.1.3(chokidar@5.0.0) - jest: 30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)) - jest-preset-angular: 17.0.0(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.1(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(jest@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(typescript@6.0.3) + jest: 30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)) + jest-preset-angular: 17.0.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.2(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(jest@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(typescript@6.0.3) lodash: 4.18.1 rxjs: 7.8.2 transitivePeerDependencies: @@ -4529,18 +4236,14 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/core@22.1.3(chokidar@5.0.0)': + '@angular-devkit/architect@0.2202.0(chokidar@5.0.0)': dependencies: - ajv: 8.20.0 - ajv-formats: 3.0.1 - jsonc-parser: 3.3.1 - picomatch: 4.0.5 + '@angular-devkit/core': 22.2.0(chokidar@5.0.0) rxjs: 7.8.2 - source-map: 0.7.6 - optionalDependencies: - chokidar: 5.0.0 + transitivePeerDependencies: + - chokidar - '@angular-devkit/core@22.1.6(chokidar@5.0.0)': + '@angular-devkit/core@22.1.3(chokidar@5.0.0)': dependencies: ajv: 8.20.0 ajv-formats: 3.0.1 @@ -4562,6 +4265,17 @@ snapshots: optionalDependencies: chokidar: 5.0.0 + '@angular-devkit/core@22.2.0(chokidar@5.0.0)': + dependencies: + ajv: 8.20.0 + ajv-formats: 3.0.1 + jsonc-parser: 3.3.1 + picomatch: 4.0.7 + rxjs: 7.8.2 + source-map: 0.8.0 + optionalDependencies: + chokidar: 5.0.0 + '@angular-devkit/schematics@22.1.3(chokidar@5.0.0)': dependencies: '@angular-devkit/core': 22.1.3(chokidar@5.0.0) @@ -4572,16 +4286,6 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-devkit/schematics@22.1.6(chokidar@5.0.0)': - dependencies: - '@angular-devkit/core': 22.1.6(chokidar@5.0.0) - jsonc-parser: 3.3.1 - magic-string: 1.0.0 - ora: 9.4.1 - rxjs: 7.8.2 - transitivePeerDependencies: - - chokidar - '@angular-devkit/schematics@22.1.8(chokidar@5.0.0)': dependencies: '@angular-devkit/core': 22.1.8(chokidar@5.0.0) @@ -4592,44 +4296,54 @@ snapshots: transitivePeerDependencies: - chokidar - '@angular-eslint/builder@22.5.0(chokidar@5.0.0)(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': + '@angular-devkit/schematics@22.2.0(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 22.2.0(chokidar@5.0.0) + jsonc-parser: 3.3.1 + magic-string: 1.4.1 + ora: 9.4.1 + rxjs: 7.8.2 + transitivePeerDependencies: + - chokidar + + '@angular-eslint/builder@22.5.0(chokidar@5.0.0)(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': dependencies: '@angular-devkit/architect': 0.2201.8(chokidar@5.0.0) - '@angular-devkit/core': 22.1.8(chokidar@5.0.0) - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + '@angular-devkit/core': 22.2.0(chokidar@5.0.0) + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - chokidar '@angular-eslint/bundled-angular-compiler@22.5.0': {} - '@angular-eslint/eslint-plugin-template@22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.0)(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': + '@angular-eslint/eslint-plugin-template@22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.1)(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': dependencies: '@angular-eslint/bundled-angular-compiler': 22.5.0 - '@angular-eslint/template-parser': 22.5.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) - '@angular-eslint/utils': 22.5.0(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/utils': 8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + '@angular-eslint/template-parser': 22.5.0(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@angular-eslint/utils': 22.5.0(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@typescript-eslint/types': 8.70.1 + '@typescript-eslint/utils': 8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) aria-query: 5.3.2 axobject-query: 4.1.0 - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) typescript: 6.0.3 - '@angular-eslint/eslint-plugin@22.5.0(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': + '@angular-eslint/eslint-plugin@22.5.0(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': dependencies: '@angular-eslint/bundled-angular-compiler': 22.5.0 - '@angular-eslint/utils': 22.5.0(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) - '@typescript-eslint/utils': 8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + '@angular-eslint/utils': 22.5.0(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@typescript-eslint/utils': 8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 - '@angular-eslint/schematics@22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.0)(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(chokidar@5.0.0)(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': + '@angular-eslint/schematics@22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.1)(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(chokidar@5.0.0)(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': dependencies: - '@angular-devkit/core': 22.1.8(chokidar@5.0.0) - '@angular-devkit/schematics': 22.1.8(chokidar@5.0.0) - '@angular-eslint/eslint-plugin': 22.5.0(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) - '@angular-eslint/eslint-plugin-template': 22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.0)(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@angular-devkit/core': 22.2.0(chokidar@5.0.0) + '@angular-devkit/schematics': 22.2.0(chokidar@5.0.0) + '@angular-eslint/eslint-plugin': 22.5.0(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) + '@angular-eslint/eslint-plugin-template': 22.5.0(@angular-eslint/template-parser@22.5.0(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3))(@typescript-eslint/types@8.70.1)(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3) ignore: 7.0.8 semver: 7.8.5 strip-json-comments: 3.1.1 @@ -4641,66 +4355,65 @@ snapshots: - eslint - typescript - '@angular-eslint/template-parser@22.5.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': + '@angular-eslint/template-parser@22.5.0(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': dependencies: '@angular-eslint/bundled-angular-compiler': 22.5.0 - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) eslint-scope: 9.1.2 typescript: 6.0.3 - '@angular-eslint/utils@22.5.0(@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': + '@angular-eslint/utils@22.5.0(@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(typescript@6.0.3)': dependencies: '@angular-eslint/bundled-angular-compiler': 22.5.0 - '@typescript-eslint/utils': 8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + '@typescript-eslint/utils': 8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) typescript: 6.0.3 - '@angular/build@22.1.8(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6)(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/localize@22.1.6(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(@types/node@26.5.0)(chokidar@5.0.0)(istanbul-lib-instrument@6.0.3(supports-color@8.1.1))(jiti@2.7.0)(postcss@8.5.28)(supports-color@8.1.1)(tslib@2.8.1)(typescript@6.0.3)': + '@angular/build@22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0)(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/localize@22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(@types/node@26.6.2)(istanbul-lib-instrument@6.0.3(supports-color@8.1.1))(jiti@2.7.0)(postcss@8.5.28)(supports-color@8.1.1)(tslib@2.8.1)(typescript@6.0.3)': dependencies: '@ampproject/remapping': 2.3.0 - '@angular-devkit/architect': 0.2201.8(chokidar@5.0.0) - '@angular/compiler': 22.1.6 - '@angular/compiler-cli': 22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3) - '@babel/core': 8.0.1 - '@babel/helper-annotate-as-pure': 8.0.0 - '@babel/helper-split-export-declaration': 7.24.7 - '@inquirer/confirm': 6.1.1(@types/node@26.5.0) - '@vitejs/plugin-basic-ssl': 2.3.0(vite@8.1.5(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0)) - beasties: 0.4.3 - browserslist: 4.28.9 + '@angular-devkit/architect': 0.2202.0(chokidar@5.0.0) + '@angular/compiler': 22.2.0 + '@angular/compiler-cli': 22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3) + '@babel/core': 8.0.5 + '@inquirer/confirm': 6.3.2(@types/node@26.6.2) + '@parcel/watcher': 2.6.0 + '@vitejs/plugin-basic-ssl': 2.3.0(vite@8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.104.1)(sass@1.104.1)) + beasties: 0.5.4 + browserslist: 4.29.1 + chokidar: 5.0.0 esbuild: 0.28.2 https-proxy-agent: 9.1.0(supports-color@8.1.1) jsonc-parser: 3.3.1 - listr2: 11.0.0 - magic-string: 1.0.0 + listr2: 11.1.0 + magic-string: 1.4.1 mrmime: 2.0.1 - oxc-parser: 0.142.0 + oxc-parser: 0.150.0 parse5-html-rewriting-stream: 8.0.1 - picomatch: 4.0.5 - piscina: 5.2.0 - rolldown: 1.2.0 - sass: 1.101.0 + picomatch: 4.0.7 + piscina: 5.3.2 + rolldown: 1.2.8 + sass: 1.104.1 + sass-embedded: 1.104.1 semver: 7.8.5 source-map-support: 0.5.21 tinyglobby: 0.2.17 tslib: 2.8.1 typescript: 6.0.3 - vite: 8.1.5(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0) - watchpack: 2.5.2 + vite: 8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.104.1)(sass@1.104.1) + xxhash-wasm: 1.1.0 optionalDependencies: - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@angular/localize': 22.1.6(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6) - '@angular/platform-browser': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@angular/localize': 22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0) + '@angular/platform-browser': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) istanbul-lib-instrument: 6.0.3(supports-color@8.1.1) lmdb: 3.5.6 postcss: 8.5.28 transitivePeerDependencies: - '@types/node' - '@vitejs/devtools' - - chokidar - jiti - kerberos - - sass-embedded - stylus - sugarss - supports-color @@ -4708,47 +4421,45 @@ snapshots: - tsx - yaml - '@angular/cdk@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/forms@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2)': + '@angular/cdk@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/forms@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2)': dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@angular/forms': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) - '@angular/platform-browser': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@angular/forms': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) + '@angular/platform-browser': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) parse5: 8.0.1 rxjs: 7.8.2 tslib: 2.8.1 - '@angular/cli@22.1.8(@types/node@26.5.0)(chokidar@5.0.0)(supports-color@8.1.1)': + '@angular/cli@22.2.0(@types/node@26.6.2)(chokidar@5.0.0)': dependencies: - '@angular-devkit/architect': 0.2201.8(chokidar@5.0.0) - '@angular-devkit/core': 22.1.8(chokidar@5.0.0) - '@angular-devkit/schematics': 22.1.8(chokidar@5.0.0) - '@inquirer/prompts': 8.5.2(@types/node@26.5.0) - '@listr2/prompt-adapter-inquirer': 4.2.5(@inquirer/prompts@8.5.2(@types/node@26.5.0))(@types/node@26.5.0)(listr2@11.0.0) - '@modelcontextprotocol/sdk': 1.30.0(supports-color@8.1.1) - '@schematics/angular': 22.1.8(chokidar@5.0.0) + '@angular-devkit/architect': 0.2202.0(chokidar@5.0.0) + '@angular-devkit/core': 22.2.0(chokidar@5.0.0) + '@angular-devkit/schematics': 22.2.0(chokidar@5.0.0) + '@inquirer/prompts': 8.7.2(@types/node@26.6.2) + '@listr2/prompt-adapter-inquirer': 4.2.7(@inquirer/prompts@8.7.2(@types/node@26.6.2))(@types/node@26.6.2)(listr2@11.1.0) + '@modelcontextprotocol/server': 2.0.0 + '@schematics/angular': 22.2.0(chokidar@5.0.0) jsonc-parser: 3.3.1 - listr2: 11.0.0 + listr2: 11.1.0 npm-package-arg: 14.0.0 parse5-html-rewriting-stream: 8.0.1 semver: 7.8.5 yargs: 18.1.0 - zod: 4.4.3 + zod: 4.6.5 transitivePeerDependencies: - - '@cfworker/json-schema' - '@types/node' - chokidar - - supports-color - '@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2)': + '@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2)': dependencies: - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) rxjs: 7.8.2 tslib: 2.8.1 - '@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3)': + '@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3)': dependencies: - '@angular/compiler': 22.1.6 + '@angular/compiler': 22.2.0 '@babel/core': 8.0.1 '@jridgewell/sourcemap-codec': 1.6.0 chokidar: 5.0.0 @@ -4756,50 +4467,50 @@ snapshots: reflect-metadata: 0.2.2 semver: 7.8.5 tslib: 2.8.1 - yargs: 18.1.0 + yargs: 18.2.0 optionalDependencies: typescript: 6.0.3 - '@angular/compiler@22.1.6': + '@angular/compiler@22.2.0': dependencies: tslib: 2.8.1 - '@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)': + '@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)': dependencies: rxjs: 7.8.2 tslib: 2.8.1 optionalDependencies: - '@angular/compiler': 22.1.6 + '@angular/compiler': 22.2.0 - '@angular/forms@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2)': + '@angular/forms@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2)': dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@angular/platform-browser': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@angular/platform-browser': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) '@standard-schema/spec': 1.1.0 rxjs: 7.8.2 tslib: 2.8.1 - zod: 4.6.2 + zod: 4.6.5 - '@angular/localize@22.1.6(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6)': + '@angular/localize@22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0)': dependencies: - '@angular/compiler': 22.1.6 - '@angular/compiler-cli': 22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3) + '@angular/compiler': 22.2.0 + '@angular/compiler-cli': 22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3) '@babel/core': 8.0.1 tinyglobby: 0.2.17 - yargs: 18.1.0 + yargs: 18.2.0 - '@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))': + '@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))': dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) tslib: 2.8.1 - '@angular/router@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2)': + '@angular/router@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2)': dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@angular/platform-browser': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@angular/platform-browser': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) rxjs: 7.8.2 tslib: 2.8.1 @@ -4817,9 +4528,9 @@ snapshots: js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/code-frame@8.0.0': + '@babel/code-frame@8.0.6': dependencies: - '@babel/helper-validator-identifier': 8.0.4 + '@babel/helper-validator-identifier': 8.0.6 js-tokens: 10.0.0 '@babel/compat-data@7.29.7': {} @@ -4848,23 +4559,42 @@ snapshots: '@babel/core@8.0.1': dependencies: - '@babel/code-frame': 8.0.0 - '@babel/generator': 8.0.5 - '@babel/helper-compilation-targets': 8.0.5 + '@babel/code-frame': 8.0.6 + '@babel/generator': 8.0.6 + '@babel/helper-compilation-targets': 8.0.6 '@babel/helpers': 8.0.5 - '@babel/parser': 8.0.5 + '@babel/parser': 8.0.6 '@babel/template': 8.0.0 - '@babel/traverse': 8.0.5 - '@babel/types': 8.0.5 + '@babel/traverse': 8.0.6 + '@babel/types': 8.0.6 '@types/gensync': 1.0.5 convert-source-map: 2.0.0 - empathic: 2.0.1 + empathic: 2.1.0 gensync: 1.0.0-beta.2 import-meta-resolve: 4.2.0 json5: 2.2.3 obug: 2.2.1 semver: 7.8.5 + '@babel/core@8.0.5': + dependencies: + '@babel/code-frame': 8.0.6 + '@babel/generator': 8.0.6 + '@babel/helper-compilation-targets': 8.0.6 + '@babel/helpers': 8.0.5 + '@babel/parser': 8.0.6 + '@babel/template': 8.0.0 + '@babel/traverse': 8.0.6 + '@babel/types': 8.0.6 + '@types/gensync': 1.0.5 + convert-source-map: 2.0.0 + empathic: 2.1.0 + gensync: 1.0.0-beta.2 + import-meta-resolve: 4.2.0 + json5: 2.2.3 + obug: 2.2.1 + verkit: 0.3.2 + '@babel/generator@7.29.8': dependencies: '@babel/parser': 7.29.8 @@ -4873,38 +4603,34 @@ snapshots: '@jridgewell/trace-mapping': 0.3.31 jsesc: 3.1.0 - '@babel/generator@8.0.5': + '@babel/generator@8.0.6': dependencies: - '@babel/parser': 8.0.5 - '@babel/types': 8.0.5 + '@babel/parser': 8.0.6 + '@babel/types': 8.0.6 '@jridgewell/gen-mapping': 0.4.0-beta.0 '@jridgewell/trace-mapping': 0.3.31 '@types/jsesc': 2.5.1 jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@8.0.0': - dependencies: - '@babel/types': 8.0.5 - '@babel/helper-compilation-targets@7.29.7': dependencies: '@babel/compat-data': 7.29.7 '@babel/helper-validator-option': 7.29.7 - browserslist: 4.28.9 + browserslist: 4.29.1 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-compilation-targets@8.0.5': + '@babel/helper-compilation-targets@8.0.6': dependencies: '@babel/compat-data': 8.0.5 '@babel/helper-validator-option': 8.0.0 - browserslist: 4.28.9 - lru-cache: 11.5.2 + browserslist: 4.29.1 + flru: 1.0.2 verkit: 0.3.2 '@babel/helper-globals@7.29.7': {} - '@babel/helper-globals@8.0.0': {} + '@babel/helper-globals@8.0.6': {} '@babel/helper-module-imports@7.29.7(supports-color@8.1.1)': dependencies: @@ -4924,17 +4650,13 @@ snapshots: '@babel/helper-plugin-utils@7.29.7': {} - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.29.8 - '@babel/helper-string-parser@7.29.7': {} - '@babel/helper-string-parser@8.0.0': {} + '@babel/helper-string-parser@8.0.6': {} '@babel/helper-validator-identifier@7.29.7': {} - '@babel/helper-validator-identifier@8.0.4': {} + '@babel/helper-validator-identifier@8.0.6': {} '@babel/helper-validator-option@7.29.7': {} @@ -4948,15 +4670,15 @@ snapshots: '@babel/helpers@8.0.5': dependencies: '@babel/template': 8.0.0 - '@babel/types': 8.0.5 + '@babel/types': 8.0.6 '@babel/parser@7.29.8': dependencies: '@babel/types': 7.29.8 - '@babel/parser@8.0.5': + '@babel/parser@8.0.6': dependencies: - '@babel/types': 8.0.5 + '@babel/types': 8.0.6 '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.29.7(supports-color@8.1.1))': dependencies: @@ -5051,9 +4773,9 @@ snapshots: '@babel/template@8.0.0': dependencies: - '@babel/code-frame': 8.0.0 - '@babel/parser': 8.0.5 - '@babel/types': 8.0.5 + '@babel/code-frame': 8.0.6 + '@babel/parser': 8.0.6 + '@babel/types': 8.0.6 '@babel/traverse@7.29.8(supports-color@8.1.1)': dependencies: @@ -5067,14 +4789,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/traverse@8.0.5': + '@babel/traverse@8.0.6': dependencies: - '@babel/code-frame': 8.0.0 - '@babel/generator': 8.0.5 - '@babel/helper-globals': 8.0.0 - '@babel/parser': 8.0.5 + '@babel/code-frame': 8.0.6 + '@babel/generator': 8.0.6 + '@babel/helper-globals': 8.0.6 + '@babel/parser': 8.0.6 '@babel/template': 8.0.0 - '@babel/types': 8.0.5 + '@babel/types': 8.0.6 obug: 2.2.1 '@babel/types@7.29.8': @@ -5082,13 +4804,15 @@ snapshots: '@babel/helper-string-parser': 7.29.7 '@babel/helper-validator-identifier': 7.29.7 - '@babel/types@8.0.5': + '@babel/types@8.0.6': dependencies: - '@babel/helper-string-parser': 8.0.0 - '@babel/helper-validator-identifier': 8.0.4 + '@babel/helper-string-parser': 8.0.6 + '@babel/helper-validator-identifier': 8.0.6 '@bcoe/v8-coverage@0.2.3': {} + '@bufbuild/protobuf@2.15.0': {} + '@cacheable/memory@2.2.0': dependencies: '@cacheable/utils': 2.5.0 @@ -5133,43 +4857,16 @@ snapshots: tslib: 2.8.1 optional: true - '@emnapi/core@1.11.1': - dependencies: - '@emnapi/wasi-threads': 1.2.2 - tslib: 2.8.1 - optional: true - - '@emnapi/core@1.11.2': - dependencies: - '@emnapi/wasi-threads': 1.2.2 - tslib: 2.8.1 - optional: true - '@emnapi/runtime@1.10.0': dependencies: tslib: 2.8.1 optional: true - '@emnapi/runtime@1.11.1': - dependencies: - tslib: 2.8.1 - optional: true - - '@emnapi/runtime@1.11.2': - dependencies: - tslib: 2.8.1 - optional: true - '@emnapi/wasi-threads@1.2.1': dependencies: tslib: 2.8.1 optional: true - '@emnapi/wasi-threads@1.2.2': - dependencies: - tslib: 2.8.1 - optional: true - '@esbuild/aix-ppc64@0.28.2': optional: true @@ -5248,9 +4945,9 @@ snapshots: '@esbuild/win32-x64@0.28.2': optional: true - '@eslint-community/eslint-utils@4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))': + '@eslint-community/eslint-utils@4.10.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))': dependencies: - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.2': {} @@ -5281,10 +4978,6 @@ snapshots: '@harperfast/extended-iterable@1.0.3': optional: true - '@hono/node-server@2.1.1(hono@4.13.7)': - dependencies: - hono: 4.13.7 - '@humanfs/core@0.19.2': dependencies: '@humanfs/types': 0.15.0 @@ -5303,141 +4996,122 @@ snapshots: '@inquirer/ansi@2.0.8': {} - '@inquirer/checkbox@5.2.5(@types/node@26.5.0)': + '@inquirer/checkbox@5.2.5(@types/node@26.6.2)': dependencies: '@inquirer/ansi': 2.0.8 - '@inquirer/core': 12.0.3(@types/node@26.5.0) + '@inquirer/core': 12.0.3(@types/node@26.6.2) '@inquirer/figures': 2.0.9 - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/confirm@6.1.1(@types/node@26.5.0)': + '@inquirer/confirm@6.3.2(@types/node@26.6.2)': dependencies: - '@inquirer/core': 11.2.1(@types/node@26.5.0) - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/confirm@6.3.2(@types/node@26.5.0)': - dependencies: - '@inquirer/core': 12.0.3(@types/node@26.5.0) - '@inquirer/type': 4.1.1(@types/node@26.5.0) - optionalDependencies: - '@types/node': 26.5.0 - - '@inquirer/core@11.2.1(@types/node@26.5.0)': + '@inquirer/core@12.0.3(@types/node@26.6.2)': dependencies: '@inquirer/ansi': 2.0.8 '@inquirer/figures': 2.0.9 - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/type': 4.1.1(@types/node@26.6.2) cli-width: 4.1.0 fast-wrap-ansi: 0.2.2 mute-stream: 3.0.0 signal-exit: 4.1.0 optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/core@12.0.3(@types/node@26.5.0)': + '@inquirer/editor@5.3.3(@types/node@26.6.2)': dependencies: - '@inquirer/ansi': 2.0.8 - '@inquirer/figures': 2.0.9 - '@inquirer/type': 4.1.1(@types/node@26.5.0) - cli-width: 4.1.0 - fast-wrap-ansi: 0.2.2 - mute-stream: 3.0.0 - signal-exit: 4.1.0 + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/external-editor': 3.0.5(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/editor@5.3.3(@types/node@26.5.0)': + '@inquirer/expand@5.1.5(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@26.5.0) - '@inquirer/external-editor': 3.0.5(@types/node@26.5.0) - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/expand@5.1.5(@types/node@26.5.0)': - dependencies: - '@inquirer/core': 12.0.3(@types/node@26.5.0) - '@inquirer/type': 4.1.1(@types/node@26.5.0) - optionalDependencies: - '@types/node': 26.5.0 - - '@inquirer/external-editor@3.0.5(@types/node@26.5.0)': + '@inquirer/external-editor@3.0.5(@types/node@26.6.2)': dependencies: chardet: 2.2.0 iconv-lite: 0.7.3 optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 '@inquirer/figures@2.0.9': {} - '@inquirer/input@5.1.6(@types/node@26.5.0)': + '@inquirer/input@5.1.6(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@26.5.0) - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/number@4.2.3(@types/node@26.5.0)': + '@inquirer/number@4.2.3(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@26.5.0) - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/password@5.2.2(@types/node@26.5.0)': + '@inquirer/password@5.2.2(@types/node@26.6.2)': dependencies: '@inquirer/ansi': 2.0.8 - '@inquirer/core': 12.0.3(@types/node@26.5.0) - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/prompts@8.5.2(@types/node@26.5.0)': + '@inquirer/prompts@8.7.2(@types/node@26.6.2)': dependencies: - '@inquirer/checkbox': 5.2.5(@types/node@26.5.0) - '@inquirer/confirm': 6.3.2(@types/node@26.5.0) - '@inquirer/editor': 5.3.3(@types/node@26.5.0) - '@inquirer/expand': 5.1.5(@types/node@26.5.0) - '@inquirer/input': 5.1.6(@types/node@26.5.0) - '@inquirer/number': 4.2.3(@types/node@26.5.0) - '@inquirer/password': 5.2.2(@types/node@26.5.0) - '@inquirer/rawlist': 5.3.5(@types/node@26.5.0) - '@inquirer/search': 4.3.3(@types/node@26.5.0) - '@inquirer/select': 5.2.5(@types/node@26.5.0) + '@inquirer/checkbox': 5.2.5(@types/node@26.6.2) + '@inquirer/confirm': 6.3.2(@types/node@26.6.2) + '@inquirer/editor': 5.3.3(@types/node@26.6.2) + '@inquirer/expand': 5.1.5(@types/node@26.6.2) + '@inquirer/input': 5.1.6(@types/node@26.6.2) + '@inquirer/number': 4.2.3(@types/node@26.6.2) + '@inquirer/password': 5.2.2(@types/node@26.6.2) + '@inquirer/rawlist': 5.3.5(@types/node@26.6.2) + '@inquirer/search': 4.3.3(@types/node@26.6.2) + '@inquirer/select': 5.2.5(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/rawlist@5.3.5(@types/node@26.5.0)': + '@inquirer/rawlist@5.3.5(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@26.5.0) - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/core': 12.0.3(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/search@4.3.3(@types/node@26.5.0)': + '@inquirer/search@4.3.3(@types/node@26.6.2)': dependencies: - '@inquirer/core': 12.0.3(@types/node@26.5.0) + '@inquirer/core': 12.0.3(@types/node@26.6.2) '@inquirer/figures': 2.0.9 - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/select@5.2.5(@types/node@26.5.0)': + '@inquirer/select@5.2.5(@types/node@26.6.2)': dependencies: '@inquirer/ansi': 2.0.8 - '@inquirer/core': 12.0.3(@types/node@26.5.0) + '@inquirer/core': 12.0.3(@types/node@26.6.2) '@inquirer/figures': 2.0.9 - '@inquirer/type': 4.1.1(@types/node@26.5.0) + '@inquirer/type': 4.1.1(@types/node@26.6.2) optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 - '@inquirer/type@4.1.1(@types/node@26.5.0)': + '@inquirer/type@4.1.1(@types/node@26.6.2)': optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 '@isaacs/cliui@8.0.2': dependencies: @@ -5458,24 +5132,24 @@ snapshots: '@istanbuljs/schema@0.1.6': {} - '@jest/console@30.5.1': + '@jest/console@30.5.2': dependencies: '@jest/types': 30.5.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 chalk: 4.1.2 jest-message-util: 30.5.1 jest-util: 30.5.1 slash: 3.0.0 - '@jest/core@30.5.1(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3))': + '@jest/core@30.5.2(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3))': dependencies: - '@jest/console': 30.5.1 + '@jest/console': 30.5.2 '@jest/pattern': 30.5.0 - '@jest/reporters': 30.5.1(supports-color@8.1.1) - '@jest/test-result': 30.5.1 - '@jest/transform': 30.5.1(supports-color@8.1.1) + '@jest/reporters': 30.5.2(supports-color@8.1.1) + '@jest/test-result': 30.5.2 + '@jest/transform': 30.5.2(supports-color@8.1.1) '@jest/types': 30.5.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 4.4.0 @@ -5483,18 +5157,18 @@ snapshots: fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 jest-changed-files: 30.5.1 - jest-config: 30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)) + jest-config: 30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)) jest-haste-map: 30.5.1 jest-message-util: 30.5.1 jest-regex-util: 30.5.0 jest-resolve: 30.5.1 - jest-resolve-dependencies: 30.5.1(supports-color@8.1.1) - jest-runner: 30.5.1(supports-color@8.1.1) - jest-runtime: 30.5.1(supports-color@8.1.1) - jest-snapshot: 30.5.1(supports-color@8.1.1) + jest-resolve-dependencies: 30.5.2(supports-color@8.1.1) + jest-runner: 30.5.2(supports-color@8.1.1) + jest-runtime: 30.5.2(supports-color@8.1.1) + jest-snapshot: 30.5.2(supports-color@8.1.1) jest-util: 30.5.1 jest-validate: 30.5.1 - jest-watcher: 30.5.1 + jest-watcher: 30.5.2 pretty-format: 30.5.1 slash: 3.0.0 transitivePeerDependencies: @@ -5513,19 +5187,19 @@ snapshots: '@jest/fake-timers': 30.4.1 '@jest/types': 30.4.1 '@types/jsdom': 21.1.7 - '@types/node': 26.5.0 + '@types/node': 26.6.2 jest-mock: 30.4.1 jest-util: 30.4.1 jsdom: 26.1.0(supports-color@8.1.1) - '@jest/environment-jsdom-abstract@30.5.1(@types/jsdom@21.1.7)(jsdom@26.1.0(supports-color@8.1.1))': + '@jest/environment-jsdom-abstract@30.5.2(@types/jsdom@21.1.7)(jsdom@26.1.0(supports-color@8.1.1))': dependencies: - '@jest/environment': 30.5.1 - '@jest/fake-timers': 30.5.1 + '@jest/environment': 30.5.2 + '@jest/fake-timers': 30.5.2 '@jest/types': 30.5.1 '@types/jsdom': 21.1.7 - '@types/node': 26.5.0 - jest-mock: 30.5.1 + '@types/node': 26.6.2 + jest-mock: 30.5.2 jest-util: 30.5.1 jsdom: 26.1.0(supports-color@8.1.1) @@ -5533,28 +5207,28 @@ snapshots: dependencies: '@jest/fake-timers': 30.4.1 '@jest/types': 30.4.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 jest-mock: 30.4.1 - '@jest/environment@30.5.1': + '@jest/environment@30.5.2': dependencies: - '@jest/fake-timers': 30.5.1 + '@jest/fake-timers': 30.5.2 '@jest/types': 30.5.1 - '@types/node': 26.5.0 - jest-mock: 30.5.1 + '@types/node': 26.6.2 + jest-mock: 30.5.2 '@jest/expect-utils@30.4.1': dependencies: '@jest/get-type': 30.1.0 - '@jest/expect-utils@30.5.1': + '@jest/expect-utils@30.5.2': dependencies: '@jest/get-type': 30.5.0 - '@jest/expect@30.5.1(supports-color@8.1.1)': + '@jest/expect@30.5.2(supports-color@8.1.1)': dependencies: - expect: 30.5.1 - jest-snapshot: 30.5.1(supports-color@8.1.1) + expect: 30.5.2 + jest-snapshot: 30.5.2(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -5562,52 +5236,52 @@ snapshots: dependencies: '@jest/types': 30.4.1 '@sinonjs/fake-timers': 15.4.0 - '@types/node': 26.5.0 + '@types/node': 26.6.2 jest-message-util: 30.4.1 jest-mock: 30.4.1 jest-util: 30.4.1 - '@jest/fake-timers@30.5.1': + '@jest/fake-timers@30.5.2': dependencies: '@jest/types': 30.5.1 '@sinonjs/fake-timers': 15.4.0 - '@types/node': 26.5.0 + '@types/node': 26.6.2 jest-message-util: 30.5.1 - jest-mock: 30.5.1 + jest-mock: 30.5.2 jest-util: 30.5.1 '@jest/get-type@30.1.0': {} '@jest/get-type@30.5.0': {} - '@jest/globals@30.5.1(supports-color@8.1.1)': + '@jest/globals@30.5.2(supports-color@8.1.1)': dependencies: - '@jest/environment': 30.5.1 - '@jest/expect': 30.5.1(supports-color@8.1.1) + '@jest/environment': 30.5.2 + '@jest/expect': 30.5.2(supports-color@8.1.1) '@jest/types': 30.5.1 - jest-mock: 30.5.1 + jest-mock: 30.5.2 transitivePeerDependencies: - supports-color '@jest/pattern@30.4.0': dependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 jest-regex-util: 30.4.0 '@jest/pattern@30.5.0': dependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 jest-regex-util: 30.5.0 - '@jest/reporters@30.5.1(supports-color@8.1.1)': + '@jest/reporters@30.5.2(supports-color@8.1.1)': dependencies: '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 30.5.1 - '@jest/test-result': 30.5.1 - '@jest/transform': 30.5.1(supports-color@8.1.1) + '@jest/console': 30.5.2 + '@jest/test-result': 30.5.2 + '@jest/transform': 30.5.2(supports-color@8.1.1) '@jest/types': 30.5.1 '@jridgewell/trace-mapping': 0.3.31 - '@types/node': 26.5.0 + '@types/node': 26.6.2 chalk: 4.1.2 collect-v8-coverage: 1.0.3 exit-x: 0.2.2 @@ -5646,28 +5320,28 @@ snapshots: graceful-fs: 4.2.11 natural-compare: 1.4.0 - '@jest/source-map@30.5.0': + '@jest/source-map@30.5.2': dependencies: '@jridgewell/trace-mapping': 0.3.31 callsites: 3.1.0 convert-source-map: 2.0.0 graceful-fs: 4.2.11 - '@jest/test-result@30.5.1': + '@jest/test-result@30.5.2': dependencies: - '@jest/console': 30.5.1 + '@jest/console': 30.5.2 '@jest/types': 30.5.1 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.3 - '@jest/test-sequencer@30.5.1': + '@jest/test-sequencer@30.5.2': dependencies: - '@jest/test-result': 30.5.1 + '@jest/test-result': 30.5.2 graceful-fs: 4.2.11 jest-haste-map: 30.5.1 slash: 3.0.0 - '@jest/transform@30.5.1(supports-color@8.1.1)': + '@jest/transform@30.5.2(supports-color@8.1.1)': dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@jest/types': 30.5.1 @@ -5692,7 +5366,7 @@ snapshots: '@jest/schemas': 30.4.1 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 26.5.0 + '@types/node': 26.6.2 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -5702,7 +5376,7 @@ snapshots: '@jest/schemas': 30.5.0 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 26.5.0 + '@types/node': 26.6.2 '@types/yargs': 17.0.35 chalk: 4.1.2 @@ -5743,11 +5417,11 @@ snapshots: '@keyv/serialize@1.1.1': {} - '@listr2/prompt-adapter-inquirer@4.2.5(@inquirer/prompts@8.5.2(@types/node@26.5.0))(@types/node@26.5.0)(listr2@11.0.0)': + '@listr2/prompt-adapter-inquirer@4.2.7(@inquirer/prompts@8.7.2(@types/node@26.6.2))(@types/node@26.6.2)(listr2@11.1.0)': dependencies: - '@inquirer/prompts': 8.5.2(@types/node@26.5.0) - '@inquirer/type': 4.1.1(@types/node@26.5.0) - listr2: 11.0.0 + '@inquirer/prompts': 8.7.2(@types/node@26.6.2) + '@inquirer/type': 4.1.1(@types/node@26.6.2) + listr2: 11.1.0 transitivePeerDependencies: - '@types/node' @@ -5772,27 +5446,14 @@ snapshots: '@lmdb/lmdb-win32-x64@3.5.6': optional: true - '@modelcontextprotocol/sdk@1.30.0(supports-color@8.1.1)': + '@modelcontextprotocol/core@2.0.0': dependencies: - '@hono/node-server': 2.1.1(hono@4.13.7) - ajv: 8.20.0 - ajv-formats: 3.0.1 - content-type: 1.0.5 - cors: 2.8.6 - cross-spawn: 7.0.6 - eventsource: 3.0.7 - eventsource-parser: 3.1.1 - express: 5.2.1(supports-color@8.1.1) - express-rate-limit: 8.7.0(express@5.2.1(supports-color@8.1.1))(supports-color@8.1.1) - hono: 4.13.7 - jose: 6.2.12 - json-schema-typed: 8.0.2 - pkce-challenge: 5.0.1 - raw-body: 3.0.2 - zod: 4.6.2 - zod-to-json-schema: 3.25.2(zod@4.6.2) - transitivePeerDependencies: - - supports-color + zod: 4.6.5 + + '@modelcontextprotocol/server@2.0.0': + dependencies: + '@modelcontextprotocol/core': 2.0.0 + zod: 4.6.5 '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.4': optional: true @@ -5932,123 +5593,100 @@ snapshots: '@napi-rs/nice-win32-x64-msvc': 1.1.1 optional: true - '@napi-rs/wasm-runtime@1.2.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': + '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)': dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 '@tybys/wasm-util': 0.10.3 optional: true - '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)': + '@ng-bootstrap/ng-bootstrap@21.0.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/forms@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/localize@22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0))(@popperjs/core@2.11.8)(rxjs@7.8.2)': dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@tybys/wasm-util': 0.10.3 - optional: true - - '@napi-rs/wasm-runtime@1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2)': - dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@tybys/wasm-util': 0.10.3 - optional: true - - '@ng-bootstrap/ng-bootstrap@21.0.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/forms@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/localize@22.1.6(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6))(@popperjs/core@2.11.8)(rxjs@7.8.2)': - dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@angular/forms': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) - '@angular/localize': 22.1.6(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@angular/forms': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) + '@angular/localize': 22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0) '@popperjs/core': 2.11.8 rxjs: 7.8.2 tslib: 2.8.1 - '@ng-select/ng-select@24.1.1(9fe845424e0b7fed075564002b1b329d)': + '@ng-select/ng-select@24.1.2(4a7eb56833580f1a9810b0df0995c3c6)': dependencies: - '@angular/cdk': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/forms@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@angular/forms': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) + '@angular/cdk': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/forms@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@angular/forms': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) tslib: 2.8.1 - '@ngneat/dirty-check-forms@3.0.3(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/forms@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/router@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(lodash-es@4.18.1)(rxjs@7.8.2)': + '@ngneat/dirty-check-forms@3.0.3(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/forms@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/router@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(lodash-es@4.18.1)(rxjs@7.8.2)': dependencies: - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@angular/forms': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) - '@angular/router': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@angular/forms': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) + '@angular/router': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) lodash-es: 4.18.1 rxjs: 7.8.2 tslib: 2.8.1 - '@oxc-parser/binding-android-arm-eabi@0.142.0': + '@oxc-parser/binding-android-arm-eabi@0.150.0': optional: true - '@oxc-parser/binding-android-arm64@0.142.0': + '@oxc-parser/binding-android-arm64@0.150.0': optional: true - '@oxc-parser/binding-darwin-arm64@0.142.0': + '@oxc-parser/binding-darwin-arm64@0.150.0': optional: true - '@oxc-parser/binding-darwin-x64@0.142.0': + '@oxc-parser/binding-darwin-x64@0.150.0': optional: true - '@oxc-parser/binding-freebsd-x64@0.142.0': + '@oxc-parser/binding-freebsd-x64@0.150.0': optional: true - '@oxc-parser/binding-linux-arm-gnueabihf@0.142.0': + '@oxc-parser/binding-linux-arm-gnueabihf@0.150.0': optional: true - '@oxc-parser/binding-linux-arm-musleabihf@0.142.0': + '@oxc-parser/binding-linux-arm-musleabihf@0.150.0': optional: true - '@oxc-parser/binding-linux-arm64-gnu@0.142.0': + '@oxc-parser/binding-linux-arm64-gnu@0.150.0': optional: true - '@oxc-parser/binding-linux-arm64-musl@0.142.0': + '@oxc-parser/binding-linux-arm64-musl@0.150.0': optional: true - '@oxc-parser/binding-linux-ppc64-gnu@0.142.0': + '@oxc-parser/binding-linux-ppc64-gnu@0.150.0': optional: true - '@oxc-parser/binding-linux-riscv64-gnu@0.142.0': + '@oxc-parser/binding-linux-riscv64-gnu@0.150.0': optional: true - '@oxc-parser/binding-linux-riscv64-musl@0.142.0': + '@oxc-parser/binding-linux-riscv64-musl@0.150.0': optional: true - '@oxc-parser/binding-linux-s390x-gnu@0.142.0': + '@oxc-parser/binding-linux-s390x-gnu@0.150.0': optional: true - '@oxc-parser/binding-linux-x64-gnu@0.142.0': + '@oxc-parser/binding-linux-x64-gnu@0.150.0': optional: true - '@oxc-parser/binding-linux-x64-musl@0.142.0': + '@oxc-parser/binding-linux-x64-musl@0.150.0': optional: true - '@oxc-parser/binding-openharmony-arm64@0.142.0': + '@oxc-parser/binding-openharmony-arm64@0.150.0': optional: true - '@oxc-parser/binding-wasm32-wasi@0.142.0': - dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) + '@oxc-parser/binding-win32-arm64-msvc@0.150.0': optional: true - '@oxc-parser/binding-win32-arm64-msvc@0.142.0': + '@oxc-parser/binding-win32-ia32-msvc@0.150.0': optional: true - '@oxc-parser/binding-win32-ia32-msvc@0.142.0': + '@oxc-parser/binding-win32-x64-msvc@0.150.0': optional: true - '@oxc-parser/binding-win32-x64-msvc@0.142.0': - optional: true + '@oxc-project/types@0.149.0': {} - '@oxc-project/types@0.139.0': {} - - '@oxc-project/types@0.140.0': {} - - '@oxc-project/types@0.142.0': {} + '@oxc-project/types@0.150.0': {} '@parcel/watcher-android-arm64@2.6.0': optional: true @@ -6117,102 +5755,49 @@ snapshots: '@popperjs/core@2.11.8': {} - '@rolldown/binding-android-arm64@1.1.5': + '@rolldown/binding-android-arm-eabi@1.2.8': optional: true - '@rolldown/binding-android-arm64@1.2.0': + '@rolldown/binding-android-arm64@1.2.8': optional: true - '@rolldown/binding-darwin-arm64@1.1.5': + '@rolldown/binding-darwin-arm64@1.2.8': optional: true - '@rolldown/binding-darwin-arm64@1.2.0': + '@rolldown/binding-darwin-x64@1.2.8': optional: true - '@rolldown/binding-darwin-x64@1.1.5': + '@rolldown/binding-freebsd-x64@1.2.8': optional: true - '@rolldown/binding-darwin-x64@1.2.0': + '@rolldown/binding-linux-arm-gnueabihf@1.2.8': optional: true - '@rolldown/binding-freebsd-x64@1.1.5': + '@rolldown/binding-linux-arm64-gnu@1.2.8': optional: true - '@rolldown/binding-freebsd-x64@1.2.0': + '@rolldown/binding-linux-arm64-musl@1.2.8': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.1.5': + '@rolldown/binding-linux-ppc64-gnu@1.2.8': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.0': + '@rolldown/binding-linux-s390x-gnu@1.2.8': optional: true - '@rolldown/binding-linux-arm64-gnu@1.1.5': + '@rolldown/binding-linux-x64-gnu@1.2.8': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.0': + '@rolldown/binding-linux-x64-musl@1.2.8': optional: true - '@rolldown/binding-linux-arm64-musl@1.1.5': + '@rolldown/binding-openharmony-arm64@1.2.8': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.0': + '@rolldown/binding-win32-arm64-msvc@1.2.8': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.1.5': - optional: true - - '@rolldown/binding-linux-ppc64-gnu@1.2.0': - optional: true - - '@rolldown/binding-linux-s390x-gnu@1.1.5': - optional: true - - '@rolldown/binding-linux-s390x-gnu@1.2.0': - optional: true - - '@rolldown/binding-linux-x64-gnu@1.1.5': - optional: true - - '@rolldown/binding-linux-x64-gnu@1.2.0': - optional: true - - '@rolldown/binding-linux-x64-musl@1.1.5': - optional: true - - '@rolldown/binding-linux-x64-musl@1.2.0': - optional: true - - '@rolldown/binding-openharmony-arm64@1.1.5': - optional: true - - '@rolldown/binding-openharmony-arm64@1.2.0': - optional: true - - '@rolldown/binding-wasm32-wasi@1.1.5': - dependencies: - '@emnapi/core': 1.11.1 - '@emnapi/runtime': 1.11.1 - '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1) - optional: true - - '@rolldown/binding-wasm32-wasi@1.2.0': - dependencies: - '@emnapi/core': 1.11.2 - '@emnapi/runtime': 1.11.2 - '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.11.2)(@emnapi/runtime@1.11.2) - optional: true - - '@rolldown/binding-win32-arm64-msvc@1.1.5': - optional: true - - '@rolldown/binding-win32-arm64-msvc@1.2.0': - optional: true - - '@rolldown/binding-win32-x64-msvc@1.1.5': - optional: true - - '@rolldown/binding-win32-x64-msvc@1.2.0': + '@rolldown/binding-win32-x64-msvc@1.2.8': optional: true '@rolldown/pluginutils@1.0.1': {} @@ -6226,15 +5811,6 @@ snapshots: transitivePeerDependencies: - chokidar - '@schematics/angular@22.1.6(chokidar@5.0.0)': - dependencies: - '@angular-devkit/core': 22.1.6(chokidar@5.0.0) - '@angular-devkit/schematics': 22.1.6(chokidar@5.0.0) - jsonc-parser: 3.3.1 - typescript: 6.0.3 - transitivePeerDependencies: - - chokidar - '@schematics/angular@22.1.8(chokidar@5.0.0)': dependencies: '@angular-devkit/core': 22.1.8(chokidar@5.0.0) @@ -6244,6 +5820,16 @@ snapshots: transitivePeerDependencies: - chokidar + '@schematics/angular@22.2.0(chokidar@5.0.0)': + dependencies: + '@angular-devkit/core': 22.2.0(chokidar@5.0.0) + '@angular-devkit/schematics': 22.2.0(chokidar@5.0.0) + jsonc-parser: 3.3.1 + oxc-parser: 0.150.0 + typescript: 6.0.3 + transitivePeerDependencies: + - chokidar + '@sinclair/typebox@0.27.12': {} '@sinclair/typebox@0.34.52': {} @@ -6315,7 +5901,7 @@ snapshots: '@types/jsdom@21.1.7': dependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 '@types/tough-cookie': 4.0.5 parse5: 7.3.0 @@ -6323,7 +5909,7 @@ snapshots: '@types/json-schema@7.0.15': {} - '@types/node@26.5.0': + '@types/node@26.6.2': dependencies: undici-types: 8.9.0 @@ -6337,72 +5923,72 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.70.0(@typescript-eslint/parser@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/eslint-plugin@8.70.1(@typescript-eslint/parser@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3))(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/scope-manager': 8.70.0 - '@typescript-eslint/type-utils': 8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/utils': 8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.70.0 - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) - ignore: 7.0.9 + '@typescript-eslint/parser': 8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/scope-manager': 8.70.1 + '@typescript-eslint/type-utils': 8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/utils': 8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.70.1 + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) + ignore: 7.0.10 natural-compare: 1.4.0 ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/parser@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/scope-manager': 8.70.0 - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/typescript-estree': 8.70.0(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/visitor-keys': 8.70.0 + '@typescript-eslint/scope-manager': 8.70.1 + '@typescript-eslint/types': 8.70.1 + '@typescript-eslint/typescript-estree': 8.70.1(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/visitor-keys': 8.70.1 debug: 4.4.3(supports-color@8.1.1) - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.70.0(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/project-service@8.70.1(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@6.0.3) - '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/tsconfig-utils': 8.70.1(typescript@6.0.3) + '@typescript-eslint/types': 8.70.1 debug: 4.4.3(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.70.0': + '@typescript-eslint/scope-manager@8.70.1': dependencies: - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/visitor-keys': 8.70.0 + '@typescript-eslint/types': 8.70.1 + '@typescript-eslint/visitor-keys': 8.70.1 - '@typescript-eslint/tsconfig-utils@8.70.0(typescript@6.0.3)': + '@typescript-eslint/tsconfig-utils@8.70.1(typescript@6.0.3)': dependencies: typescript: 6.0.3 - '@typescript-eslint/type-utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/type-utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/typescript-estree': 8.70.0(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/utils': 8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/types': 8.70.1 + '@typescript-eslint/typescript-estree': 8.70.1(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/utils': 8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3) debug: 4.4.3(supports-color@8.1.1) - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) ts-api-utils: 2.5.0(typescript@6.0.3) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.70.0': {} + '@typescript-eslint/types@8.70.1': {} - '@typescript-eslint/typescript-estree@8.70.0(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/typescript-estree@8.70.1(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@typescript-eslint/project-service': 8.70.0(supports-color@8.1.1)(typescript@6.0.3) - '@typescript-eslint/tsconfig-utils': 8.70.0(typescript@6.0.3) - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/visitor-keys': 8.70.0 + '@typescript-eslint/project-service': 8.70.1(supports-color@8.1.1)(typescript@6.0.3) + '@typescript-eslint/tsconfig-utils': 8.70.1(typescript@6.0.3) + '@typescript-eslint/types': 8.70.1 + '@typescript-eslint/visitor-keys': 8.70.1 debug: 4.4.3(supports-color@8.1.1) minimatch: 10.2.6 semver: 7.8.5 @@ -6412,20 +5998,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.70.0(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': + '@typescript-eslint/utils@8.70.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1))(supports-color@8.1.1)(typescript@6.0.3)': dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1)) - '@typescript-eslint/scope-manager': 8.70.0 - '@typescript-eslint/types': 8.70.0 - '@typescript-eslint/typescript-estree': 8.70.0(supports-color@8.1.1)(typescript@6.0.3) - eslint: 10.10.0(jiti@2.7.0)(supports-color@8.1.1) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1)) + '@typescript-eslint/scope-manager': 8.70.1 + '@typescript-eslint/types': 8.70.1 + '@typescript-eslint/typescript-estree': 8.70.1(supports-color@8.1.1)(typescript@6.0.3) + eslint: 10.11.0(jiti@2.7.0)(supports-color@8.1.1) typescript: 6.0.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.70.0': + '@typescript-eslint/visitor-keys@8.70.1': dependencies: - '@typescript-eslint/types': 8.70.0 + '@typescript-eslint/types': 8.70.1 eslint-visitor-keys: 5.0.1 '@ungap/structured-clone@1.3.3': {} @@ -6488,7 +6074,7 @@ snapshots: dependencies: '@emnapi/core': 1.10.0 '@emnapi/runtime': 1.10.0 - '@napi-rs/wasm-runtime': 1.2.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) + '@napi-rs/wasm-runtime': 1.2.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0) optional: true '@unrs/resolver-binding-win32-arm64-msvc@1.12.2': @@ -6500,14 +6086,9 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.12.2': optional: true - '@vitejs/plugin-basic-ssl@2.3.0(vite@8.1.5(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0))': + '@vitejs/plugin-basic-ssl@2.3.0(vite@8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.104.1)(sass@1.104.1))': dependencies: - vite: 8.1.5(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0) - - accepts@2.0.0: - dependencies: - mime-types: 3.0.2 - negotiator: 1.1.0 + vite: 8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.104.1)(sass@1.104.1) acorn-jsx@5.3.2(acorn@8.18.0): dependencies: @@ -6537,7 +6118,7 @@ snapshots: ajv@8.20.0: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.1.7 + fast-uri: 3.1.8 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -6576,10 +6157,10 @@ snapshots: axobject-query@4.1.0: {} - babel-jest@30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1): + babel-jest@30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@jest/transform': 30.5.1(supports-color@8.1.1) + '@jest/transform': 30.5.2(supports-color@8.1.1) '@types/babel__core': 7.20.5 babel-plugin-istanbul: 8.0.0(supports-color@8.1.1) babel-preset-jest: 30.5.0(@babel/core@7.29.7(supports-color@8.1.1)) @@ -6632,35 +6213,21 @@ snapshots: balanced-match@4.0.4: {} - baseline-browser-mapping@2.11.22: {} + baseline-browser-mapping@2.11.26: {} - beasties@0.4.3: + beasties@0.5.4: dependencies: - css-select: 6.0.0 - css-what: 7.0.0 - dom-serializer: 2.0.0 - domhandler: 5.0.3 - htmlparser2: 10.1.0 + css-select: 7.0.0 + css-what: 8.0.0 + dom-serializer: 3.1.1 + domhandler: 6.0.1 + htmlparser2: 12.0.0 picocolors: 1.1.1 postcss: 8.5.28 postcss-media-query-parser: 0.2.3 postcss-safe-parser: 7.1.0(postcss@8.5.28) - body-parser@2.3.0(supports-color@8.1.1): - dependencies: - bytes: 3.1.2 - content-type: 2.1.0 - debug: 4.4.3(supports-color@8.1.1) - http-errors: 2.0.1 - iconv-lite: 0.7.3 - on-finished: 2.4.1 - qs: 6.16.0 - raw-body: 3.0.2 - type-is: 2.1.0 - transitivePeerDependencies: - - supports-color - - boolbase@1.0.0: {} + boolbase@2.0.0: {} bootstrap@5.3.8(@popperjs/core@2.11.8): dependencies: @@ -6670,17 +6237,17 @@ snapshots: dependencies: balanced-match: 1.0.2 - brace-expansion@5.0.9: + brace-expansion@5.0.12: dependencies: balanced-match: 4.0.4 - browserslist@4.28.9: + browserslist@4.29.1: dependencies: - baseline-browser-mapping: 2.11.22 - caniuse-lite: 1.0.30001810 - electron-to-chromium: 1.5.427 - node-releases: 2.0.55 - update-browserslist-db: 1.3.3(browserslist@4.28.9) + baseline-browser-mapping: 2.11.26 + caniuse-lite: 1.0.30001812 + electron-to-chromium: 1.5.439 + node-releases: 2.0.57 + update-browserslist-db: 1.3.3(browserslist@4.29.1) bs-logger@0.2.6: dependencies: @@ -6692,8 +6259,6 @@ snapshots: buffer-from@1.1.2: {} - bytes@3.1.2: {} - cacheable@2.5.0: dependencies: '@cacheable/memory': 2.2.0 @@ -6702,23 +6267,13 @@ snapshots: keyv: 5.6.0 qified: 0.10.1 - call-bind-apply-helpers@1.0.2: - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - - call-bound@1.0.4: - dependencies: - call-bind-apply-helpers: 1.0.2 - get-intrinsic: 1.3.0 - callsites@3.1.0: {} camelcase@5.3.1: {} camelcase@6.3.0: {} - caniuse-lite@1.0.30001810: {} + caniuse-lite@1.0.30001812: {} chalk@4.1.2: dependencies: @@ -6747,8 +6302,8 @@ snapshots: cli-truncate@6.1.1: dependencies: - slice-ansi: 9.0.0 - string-width: 8.2.2 + slice-ansi: 9.0.1 + string-width: 8.3.0 cli-width@4.1.0: {} @@ -6774,25 +6329,12 @@ snapshots: color-name@1.1.4: {} - content-disposition@1.1.0: {} - - content-type@1.0.5: {} - - content-type@2.1.0: {} + colorjs.io@0.7.1: {} convert-source-map@1.9.0: {} convert-source-map@2.0.0: {} - cookie-signature@1.2.2: {} - - cookie@0.7.2: {} - - cors@2.8.6: - dependencies: - object-assign: 4.1.1 - vary: 1.1.2 - create-require@1.1.1: {} cross-spawn@7.0.6: @@ -6801,15 +6343,15 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - css-select@6.0.0: + css-select@7.0.0: dependencies: - boolbase: 1.0.0 - css-what: 7.0.0 - domhandler: 5.0.3 - domutils: 3.2.2 - nth-check: 2.1.1 + boolbase: 2.0.0 + css-what: 8.0.0 + domhandler: 6.0.1 + domutils: 4.0.2 + nth-check: 3.0.1 - css-what@7.0.0: {} + css-what@8.0.0: {} cssstyle@4.6.0: dependencies: @@ -6835,8 +6377,6 @@ snapshots: deepmerge@4.3.1: {} - depd@2.0.0: {} - detect-libc@2.1.2: {} detect-newline@3.1.0: {} @@ -6845,35 +6385,27 @@ snapshots: diff@4.0.4: {} - dom-serializer@2.0.0: + dom-serializer@3.1.1: dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - entities: 4.5.0 + domelementtype: 3.0.0 + domhandler: 6.0.1 + entities: 8.1.0 - domelementtype@2.3.0: {} + domelementtype@3.0.0: {} - domhandler@5.0.3: + domhandler@6.0.1: dependencies: - domelementtype: 2.3.0 + domelementtype: 3.0.0 - domutils@3.2.2: + domutils@4.0.2: dependencies: - dom-serializer: 2.0.0 - domelementtype: 2.3.0 - domhandler: 5.0.3 - - dunder-proto@1.0.1: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-errors: 1.3.0 - gopd: 1.2.0 + dom-serializer: 3.1.1 + domelementtype: 3.0.0 + domhandler: 6.0.1 eastasianwidth@0.2.0: {} - ee-first@1.1.1: {} - - electron-to-chromium@1.5.427: {} + electron-to-chromium@1.5.439: {} emittery@0.13.1: {} @@ -6883,16 +6415,10 @@ snapshots: emoji-regex@9.2.2: {} - empathic@2.0.1: {} - - encodeurl@2.0.0: {} - - entities@4.5.0: {} + empathic@2.1.0: {} entities@6.0.1: {} - entities@7.0.1: {} - entities@8.1.0: {} environment@1.1.0: {} @@ -6901,16 +6427,8 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-define-property@1.0.1: {} - - es-errors@1.3.0: {} - es-module-lexer@2.3.2: {} - es-object-atoms@1.1.2: - dependencies: - es-errors: 1.3.0 - esbuild-wasm@0.28.2: {} esbuild@0.28.2: @@ -6944,8 +6462,6 @@ snapshots: escalade@3.2.0: {} - escape-html@1.0.3: {} - escape-string-regexp@2.0.0: {} escape-string-regexp@4.0.0: {} @@ -6961,9 +6477,9 @@ snapshots: eslint-visitor-keys@5.0.1: {} - eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1): + eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1): dependencies: - '@eslint-community/eslint-utils': 4.10.1(eslint@10.10.0(jiti@2.7.0)(supports-color@8.1.1)) + '@eslint-community/eslint-utils': 4.10.1(eslint@10.11.0(jiti@2.7.0)(supports-color@8.1.1)) '@eslint-community/regexpp': 4.12.2 '@eslint/config-array': 0.23.5(supports-color@8.1.1) '@eslint/config-helpers': 0.7.0 @@ -7018,14 +6534,6 @@ snapshots: esutils@2.0.3: {} - etag@1.8.1: {} - - eventsource-parser@3.1.1: {} - - eventsource@3.0.7: - dependencies: - eventsource-parser: 3.1.1 - execa@5.1.1: dependencies: cross-spawn: 7.0.6 @@ -7049,56 +6557,15 @@ snapshots: jest-mock: 30.4.1 jest-util: 30.4.1 - expect@30.5.1: + expect@30.5.2: dependencies: - '@jest/expect-utils': 30.5.1 + '@jest/expect-utils': 30.5.2 '@jest/get-type': 30.5.0 - jest-matcher-utils: 30.5.1 + jest-matcher-utils: 30.5.2 jest-message-util: 30.5.1 - jest-mock: 30.5.1 + jest-mock: 30.5.2 jest-util: 30.5.1 - express-rate-limit@8.7.0(express@5.2.1(supports-color@8.1.1))(supports-color@8.1.1): - dependencies: - debug: 4.4.3(supports-color@8.1.1) - express: 5.2.1(supports-color@8.1.1) - ip-address: 10.7.0 - transitivePeerDependencies: - - supports-color - - express@5.2.1(supports-color@8.1.1): - dependencies: - accepts: 2.0.0 - body-parser: 2.3.0(supports-color@8.1.1) - content-disposition: 1.1.0 - content-type: 1.0.5 - cookie: 0.7.2 - cookie-signature: 1.2.2 - debug: 4.4.3(supports-color@8.1.1) - depd: 2.0.0 - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - finalhandler: 2.1.1(supports-color@8.1.1) - fresh: 2.0.0 - http-errors: 2.0.1 - merge-descriptors: 2.0.0 - mime-types: 3.0.2 - on-finished: 2.4.1 - once: 1.4.0 - parseurl: 1.3.3 - proxy-addr: 2.0.7 - qs: 6.16.0 - range-parser: 1.3.0 - router: 2.2.0(supports-color@8.1.1) - send: 1.2.1(supports-color@8.1.1) - serve-static: 2.2.1(supports-color@8.1.1) - statuses: 2.0.2 - type-is: 2.1.0 - vary: 1.1.2 - transitivePeerDependencies: - - supports-color - fast-deep-equal@3.1.3: {} fast-json-stable-stringify@2.1.0: {} @@ -7111,7 +6578,7 @@ snapshots: dependencies: fast-string-truncated-width: 3.0.3 - fast-uri@3.1.7: {} + fast-uri@3.1.8: {} fast-wrap-ansi@0.2.2: dependencies: @@ -7131,17 +6598,6 @@ snapshots: file-saver@2.0.5: {} - finalhandler@2.1.1(supports-color@8.1.1): - dependencies: - debug: 4.4.3(supports-color@8.1.1) - encodeurl: 2.0.0 - escape-html: 1.0.3 - on-finished: 2.4.1 - parseurl: 1.3.3 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - find-up@4.1.0: dependencies: locate-path: 5.0.0 @@ -7160,49 +6616,27 @@ snapshots: flatted@3.4.4: {} + flru@1.0.2: {} + foreground-child@3.3.1: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 - forwarded@0.2.0: {} - - fresh@2.0.0: {} - fsevents@2.3.2: optional: true fsevents@2.3.3: optional: true - function-bind@1.1.2: {} - gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} - get-east-asian-width@1.6.0: {} - - get-intrinsic@1.3.0: - dependencies: - call-bind-apply-helpers: 1.0.2 - es-define-property: 1.0.1 - es-errors: 1.3.0 - es-object-atoms: 1.1.2 - function-bind: 1.1.2 - get-proto: 1.0.1 - gopd: 1.2.0 - has-symbols: 1.1.0 - hasown: 2.0.4 - math-intrinsics: 1.1.0 + get-east-asian-width@1.7.0: {} get-package-type@0.1.0: {} - get-proto@1.0.1: - dependencies: - dunder-proto: 1.0.1 - es-object-atoms: 1.1.2 - get-stream@6.0.1: {} get-tsconfig@4.14.1: @@ -7228,8 +6662,6 @@ snapshots: minipass: 7.1.3 path-scurry: 2.0.2 - gopd@1.2.0: {} - graceful-fs@4.2.11: {} handlebars@4.7.9: @@ -7243,25 +6675,17 @@ snapshots: has-flag@4.0.0: {} - has-symbols@1.1.0: {} - hashery@1.5.1: dependencies: hookified: 1.15.1 - hasown@2.0.4: - dependencies: - function-bind: 1.1.2 - - hono@4.13.7: {} - hookified@1.15.1: {} hookified@2.2.0: {} hosted-git-info@10.1.1: dependencies: - lru-cache: 11.5.2 + lru-cache: 11.5.3 html-encoding-sniffer@4.0.0: dependencies: @@ -7269,20 +6693,12 @@ snapshots: html-escaper@2.0.2: {} - htmlparser2@10.1.0: + htmlparser2@12.0.0: dependencies: - domelementtype: 2.3.0 - domhandler: 5.0.3 - domutils: 3.2.2 - entities: 7.0.1 - - http-errors@2.0.1: - dependencies: - depd: 2.0.0 - inherits: 2.0.4 - setprototypeof: 1.2.0 - statuses: 2.0.2 - toidentifier: 1.0.1 + domelementtype: 3.0.0 + domhandler: 6.0.1 + domutils: 4.0.2 + entities: 8.1.0 http-proxy-agent@7.0.2(supports-color@8.1.1): dependencies: @@ -7319,9 +6735,9 @@ snapshots: ignore@5.3.2: {} - ignore@7.0.8: {} + ignore@7.0.10: {} - ignore@7.0.9: {} + ignore@7.0.8: {} immutable@5.1.9: {} @@ -7334,12 +6750,6 @@ snapshots: imurmurhash@0.1.4: {} - inherits@2.0.4: {} - - ip-address@10.7.0: {} - - ipaddr.js@1.9.1: {} - is-arrayish@0.2.1: {} is-extglob@2.1.1: {} @@ -7348,7 +6758,7 @@ snapshots: is-fullwidth-code-point@5.1.0: dependencies: - get-east-asian-width: 1.6.0 + get-east-asian-width: 1.7.0 is-generator-fn@2.1.0: {} @@ -7360,8 +6770,6 @@ snapshots: is-potential-custom-element-name@1.0.1: {} - is-promise@4.0.0: {} - is-stream@2.0.1: {} is-unicode-supported@2.1.0: {} @@ -7411,22 +6819,22 @@ snapshots: jest-util: 30.5.1 p-limit: 3.1.0 - jest-circus@30.5.1(supports-color@8.1.1): + jest-circus@30.5.2(supports-color@8.1.1): dependencies: - '@jest/environment': 30.5.1 - '@jest/expect': 30.5.1(supports-color@8.1.1) - '@jest/test-result': 30.5.1 + '@jest/environment': 30.5.2 + '@jest/expect': 30.5.2(supports-color@8.1.1) + '@jest/test-result': 30.5.2 '@jest/types': 30.5.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 chalk: 4.1.2 co: 4.6.0 dedent: 1.7.2 is-generator-fn: 2.1.0 - jest-each: 30.5.1 - jest-matcher-utils: 30.5.1 + jest-each: 30.5.2 + jest-matcher-utils: 30.5.2 jest-message-util: 30.5.1 - jest-runtime: 30.5.1(supports-color@8.1.1) - jest-snapshot: 30.5.1(supports-color@8.1.1) + jest-runtime: 30.5.2(supports-color@8.1.1) + jest-snapshot: 30.5.2(supports-color@8.1.1) jest-util: 30.5.1 p-limit: 3.1.0 pretty-format: 30.5.1 @@ -7437,15 +6845,15 @@ snapshots: - babel-plugin-macros - supports-color - jest-cli@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)): + jest-cli@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)): dependencies: - '@jest/core': 30.5.1(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)) - '@jest/test-result': 30.5.1 + '@jest/core': 30.5.2(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)) + '@jest/test-result': 30.5.2 '@jest/types': 30.5.1 chalk: 4.1.2 exit-x: 0.2.2 import-local: 3.2.0 - jest-config: 30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)) + jest-config: 30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)) jest-util: 30.5.1 jest-validate: 30.5.1 yargs: 17.7.3 @@ -7456,25 +6864,25 @@ snapshots: - supports-color - ts-node - jest-config@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)): + jest-config@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@jest/get-type': 30.5.0 '@jest/pattern': 30.5.0 - '@jest/test-sequencer': 30.5.1 + '@jest/test-sequencer': 30.5.2 '@jest/types': 30.5.1 - babel-jest: 30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + babel-jest: 30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) chalk: 4.1.2 ci-info: 4.4.0 deepmerge: 4.3.1 glob: 13.0.6 graceful-fs: 4.2.11 - jest-circus: 30.5.1(supports-color@8.1.1) + jest-circus: 30.5.2(supports-color@8.1.1) jest-docblock: 30.5.0 - jest-environment-node: 30.5.1 + jest-environment-node: 30.5.2 jest-regex-util: 30.5.0 jest-resolve: 30.5.1 - jest-runner: 30.5.1(supports-color@8.1.1) + jest-runner: 30.5.2(supports-color@8.1.1) jest-util: 30.5.1 jest-validate: 30.5.1 parse-json: 5.2.0 @@ -7482,8 +6890,8 @@ snapshots: slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 26.5.0 - ts-node: 10.9.2(@types/node@26.5.0)(typescript@6.0.3) + '@types/node': 26.6.2 + ts-node: 10.9.2(@types/node@26.6.2)(typescript@6.0.3) transitivePeerDependencies: - babel-plugin-macros - supports-color @@ -7502,7 +6910,7 @@ snapshots: chalk: 4.1.2 pretty-format: 30.4.1 - jest-diff@30.5.1: + jest-diff@30.5.2: dependencies: '@jest/diff-sequences': 30.5.0 '@jest/get-type': 30.5.0 @@ -7513,18 +6921,19 @@ snapshots: dependencies: detect-newline: 3.1.0 - jest-each@30.5.1: + jest-each@30.5.2: dependencies: '@jest/get-type': 30.5.0 '@jest/types': 30.5.1 chalk: 4.1.2 + jest-regex-util: 30.5.0 jest-util: 30.5.1 pretty-format: 30.5.1 - jest-environment-jsdom@30.5.1(supports-color@8.1.1): + jest-environment-jsdom@30.5.2(supports-color@8.1.1): dependencies: - '@jest/environment': 30.5.1 - '@jest/environment-jsdom-abstract': 30.5.1(@types/jsdom@21.1.7)(jsdom@26.1.0(supports-color@8.1.1)) + '@jest/environment': 30.5.2 + '@jest/environment-jsdom-abstract': 30.5.2(@types/jsdom@21.1.7)(jsdom@26.1.0(supports-color@8.1.1)) '@types/jsdom': 21.1.7 jsdom: 26.1.0(supports-color@8.1.1) transitivePeerDependencies: @@ -7532,13 +6941,13 @@ snapshots: - supports-color - utf-8-validate - jest-environment-node@30.5.1: + jest-environment-node@30.5.2: dependencies: - '@jest/environment': 30.5.1 - '@jest/fake-timers': 30.5.1 + '@jest/environment': 30.5.2 + '@jest/fake-timers': 30.5.2 '@jest/types': 30.5.1 - '@types/node': 26.5.0 - jest-mock: 30.5.1 + '@types/node': 26.6.2 + jest-mock: 30.5.2 jest-util: 30.5.1 jest-validate: 30.5.1 @@ -7548,7 +6957,7 @@ snapshots: dependencies: '@jest/types': 30.5.1 '@parcel/watcher': 2.6.0 - '@types/node': 26.5.0 + '@types/node': 26.6.2 anymatch: 3.1.3 fb-watchman: 2.0.2 fdir: 6.5.0(picomatch@4.0.7) @@ -7577,11 +6986,11 @@ snapshots: jest-diff: 30.4.1 pretty-format: 30.4.1 - jest-matcher-utils@30.5.1: + jest-matcher-utils@30.5.2: dependencies: '@jest/get-type': 30.5.0 chalk: 4.1.2 - jest-diff: 30.5.1 + jest-diff: 30.5.2 pretty-format: 30.5.1 jest-message-util@30.4.1: @@ -7613,29 +7022,29 @@ snapshots: jest-mock@30.4.1: dependencies: '@jest/types': 30.4.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 jest-util: 30.4.1 - jest-mock@30.5.1: + jest-mock@30.5.2: dependencies: - '@jest/expect-utils': 30.5.1 + '@jest/expect-utils': 30.5.2 '@jest/types': 30.5.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 jest-util: 30.5.1 - jest-preset-angular@17.0.0(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.1(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(jest@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(typescript@6.0.3): + jest-preset-angular@17.0.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.2(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(jest@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)))(jsdom@26.1.0(supports-color@8.1.1))(typescript@6.0.3): dependencies: - '@angular/compiler-cli': 22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@angular/platform-browser': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)) + '@angular/compiler-cli': 22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@angular/platform-browser': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)) '@jest/environment-jsdom-abstract': 30.4.1(jsdom@26.1.0(supports-color@8.1.1)) bs-logger: 0.2.6 esbuild-wasm: 0.28.2 - jest: 30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)) + jest: 30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)) jest-util: 30.4.1 jsdom: 26.1.0(supports-color@8.1.1) pretty-format: 30.4.1 - ts-jest: 29.4.12(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.1(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(esbuild@0.28.2)(jest-util@30.4.1)(jest@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)))(typescript@6.0.3) + ts-jest: 29.4.12(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.2(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(esbuild@0.28.2)(jest-util@30.4.1)(jest@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)))(typescript@6.0.3) typescript: 6.0.3 optionalDependencies: esbuild: 0.28.2 @@ -7650,10 +7059,10 @@ snapshots: jest-regex-util@30.5.0: {} - jest-resolve-dependencies@30.5.1(supports-color@8.1.1): + jest-resolve-dependencies@30.5.2(supports-color@8.1.1): dependencies: jest-regex-util: 30.5.0 - jest-snapshot: 30.5.1(supports-color@8.1.1) + jest-snapshot: 30.5.2(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -7667,43 +7076,43 @@ snapshots: slash: 3.0.0 unrs-resolver: 1.12.2 - jest-runner@30.5.1(supports-color@8.1.1): + jest-runner@30.5.2(supports-color@8.1.1): dependencies: - '@jest/console': 30.5.1 - '@jest/environment': 30.5.1 - '@jest/source-map': 30.5.0 - '@jest/test-result': 30.5.1 - '@jest/transform': 30.5.1(supports-color@8.1.1) + '@jest/console': 30.5.2 + '@jest/environment': 30.5.2 + '@jest/source-map': 30.5.2 + '@jest/test-result': 30.5.2 + '@jest/transform': 30.5.2(supports-color@8.1.1) '@jest/types': 30.5.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 chalk: 4.1.2 emittery: 0.13.1 exit-x: 0.2.2 graceful-fs: 4.2.11 jest-docblock: 30.5.0 - jest-environment-node: 30.5.1 + jest-environment-node: 30.5.2 jest-haste-map: 30.5.1 jest-leak-detector: 30.5.1 jest-message-util: 30.5.1 jest-resolve: 30.5.1 - jest-runtime: 30.5.1(supports-color@8.1.1) + jest-runtime: 30.5.2(supports-color@8.1.1) jest-util: 30.5.1 - jest-watcher: 30.5.1 + jest-watcher: 30.5.2 jest-worker: 30.5.1 p-limit: 3.1.0 transitivePeerDependencies: - supports-color - jest-runtime@30.5.1(supports-color@8.1.1): + jest-runtime@30.5.2(supports-color@8.1.1): dependencies: - '@jest/environment': 30.5.1 - '@jest/fake-timers': 30.5.1 - '@jest/globals': 30.5.1(supports-color@8.1.1) - '@jest/source-map': 30.5.0 - '@jest/test-result': 30.5.1 - '@jest/transform': 30.5.1(supports-color@8.1.1) + '@jest/environment': 30.5.2 + '@jest/fake-timers': 30.5.2 + '@jest/globals': 30.5.2(supports-color@8.1.1) + '@jest/source-map': 30.5.2 + '@jest/test-result': 30.5.2 + '@jest/transform': 30.5.2(supports-color@8.1.1) '@jest/types': 30.5.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 chalk: 4.1.2 cjs-module-lexer: 2.2.1 collect-v8-coverage: 1.0.3 @@ -7712,34 +7121,34 @@ snapshots: graceful-fs: 4.2.11 jest-haste-map: 30.5.1 jest-message-util: 30.5.1 - jest-mock: 30.5.1 + jest-mock: 30.5.2 jest-regex-util: 30.5.0 jest-resolve: 30.5.1 - jest-snapshot: 30.5.1(supports-color@8.1.1) + jest-snapshot: 30.5.2(supports-color@8.1.1) jest-util: 30.5.1 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@30.5.1(supports-color@8.1.1): + jest-snapshot@30.5.2(supports-color@8.1.1): dependencies: '@babel/core': 7.29.7(supports-color@8.1.1) '@babel/generator': 7.29.8 '@babel/plugin-syntax-jsx': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/plugin-syntax-typescript': 7.29.7(@babel/core@7.29.7(supports-color@8.1.1)) '@babel/types': 7.29.8 - '@jest/expect-utils': 30.5.1 + '@jest/expect-utils': 30.5.2 '@jest/get-type': 30.5.0 '@jest/snapshot-utils': 30.5.1 - '@jest/transform': 30.5.1(supports-color@8.1.1) + '@jest/transform': 30.5.2(supports-color@8.1.1) '@jest/types': 30.5.1 babel-preset-current-node-syntax: 1.2.0(@babel/core@7.29.7(supports-color@8.1.1)) chalk: 4.1.2 - expect: 30.5.1 + expect: 30.5.2 graceful-fs: 4.2.11 - jest-diff: 30.5.1 - jest-matcher-utils: 30.5.1 + jest-diff: 30.5.2 + jest-matcher-utils: 30.5.2 jest-message-util: 30.5.1 jest-util: 30.5.1 pretty-format: 30.5.1 @@ -7751,7 +7160,7 @@ snapshots: jest-util@30.4.1: dependencies: '@jest/types': 30.4.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 chalk: 4.1.2 ci-info: 4.4.0 graceful-fs: 4.2.11 @@ -7760,7 +7169,7 @@ snapshots: jest-util@30.5.1: dependencies: '@jest/types': 30.5.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 chalk: 4.1.2 ci-info: 4.4.0 graceful-fs: 4.2.11 @@ -7775,11 +7184,11 @@ snapshots: leven: 3.1.0 pretty-format: 30.5.1 - jest-watcher@30.5.1: + jest-watcher@30.5.2: dependencies: - '@jest/test-result': 30.5.1 + '@jest/test-result': 30.5.2 '@jest/types': 30.5.1 - '@types/node': 26.5.0 + '@types/node': 26.6.2 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -7793,18 +7202,18 @@ snapshots: jest-worker@30.5.1: dependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 '@ungap/structured-clone': 1.3.3 jest-util: 30.5.1 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)): + jest@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)): dependencies: - '@jest/core': 30.5.1(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)) + '@jest/core': 30.5.2(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)) '@jest/types': 30.5.1 import-local: 3.2.0 - jest-cli: 30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)) + jest-cli: 30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -7814,8 +7223,6 @@ snapshots: jiti@2.7.0: {} - jose@6.2.12: {} - js-tokens@10.0.0: {} js-tokens@4.0.0: {} @@ -7860,8 +7267,6 @@ snapshots: json-schema-traverse@1.0.0: {} - json-schema-typed@8.0.2: {} - json-stable-stringify-without-jsonify@1.0.1: {} json5@2.2.3: {} @@ -7930,11 +7335,11 @@ snapshots: lines-and-columns@1.2.4: {} - listr2@11.0.0: + listr2@11.1.0: dependencies: cli-truncate: 6.1.1 log-update: 8.0.0 - wrap-ansi: 10.0.1 + wrap-ansi: 10.0.2 lmdb@3.5.6: dependencies: @@ -7942,7 +7347,7 @@ snapshots: msgpackr: 1.12.1 node-addon-api: 6.1.0 node-gyp-build-optional-packages: 5.2.2 - ordered-binary: 1.6.1 + ordered-binary: 1.6.2 weak-lru-cache: 1.2.2 optionalDependencies: '@lmdb/lmdb-darwin-arm64': 3.5.6 @@ -7977,14 +7382,14 @@ snapshots: dependencies: ansi-escapes: 7.3.0 cli-cursor: 5.0.0 - slice-ansi: 9.0.0 - string-width: 8.2.2 + slice-ansi: 9.0.1 + string-width: 8.3.0 strip-ansi: 7.2.0 - wrap-ansi: 10.0.1 + wrap-ansi: 10.0.2 lru-cache@10.4.3: {} - lru-cache@11.5.2: {} + lru-cache@11.5.3: {} lru-cache@5.1.1: dependencies: @@ -7994,6 +7399,10 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.6.0 + magic-string@1.4.1: + dependencies: + '@jridgewell/sourcemap-codec': 1.6.0 + make-dir@4.0.0: dependencies: semver: 7.8.5 @@ -8002,29 +7411,17 @@ snapshots: material-colors@1.2.6: {} - math-intrinsics@1.1.0: {} - - media-typer@1.1.1: {} - - merge-descriptors@2.0.0: {} - merge-stream@2.0.0: {} - mime-db@1.54.0: {} - mime-names@1.0.0: {} - mime-types@3.0.2: - dependencies: - mime-db: 1.54.0 - mimic-fn@2.1.0: {} mimic-function@5.0.1: {} minimatch@10.2.6: dependencies: - brace-expansion: 5.0.9 + brace-expansion: 5.0.12 minimatch@9.0.9: dependencies: @@ -8067,52 +7464,48 @@ snapshots: natural-compare@1.4.0: {} - negotiator@1.1.0: - dependencies: - content-type: 2.1.0 - neo-async@2.6.2: {} - ngx-bootstrap-icons@1.9.3(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)): + ngx-bootstrap-icons@1.9.3(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)): dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) tslib: 2.8.1 - ngx-color@10.1.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)): + ngx-color@10.1.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)): dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) '@ctrl/tinycolor': 4.2.0 material-colors: 1.2.6 tslib: 2.8.1 - ngx-cookie-service@22.0.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)): + ngx-cookie-service@22.0.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)): dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) tslib: 2.8.1 - ngx-device-detector@12.0.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)): + ngx-device-detector@12.0.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)): dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) tslib: 2.8.1 - ngx-ui-tour-core@17.0.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/router@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(rxjs@7.8.2): + ngx-ui-tour-core@17.0.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/router@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(rxjs@7.8.2): dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@angular/router': 22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@angular/router': 22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2) rxjs: 7.8.2 tslib: 2.8.1 - ngx-ui-tour-ng-bootstrap@19.0.0(62aff516824eb66443798196c0536bf9): + ngx-ui-tour-ng-bootstrap@19.0.0(cd8c036435da1b7a89d66e1b1b6d40d2): dependencies: - '@angular/common': 22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2) - '@angular/core': 22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2) - '@ng-bootstrap/ng-bootstrap': 21.0.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/forms@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/localize@22.1.6(@angular/compiler-cli@22.1.6(@angular/compiler@22.1.6)(typescript@6.0.3))(@angular/compiler@22.1.6))(@popperjs/core@2.11.8)(rxjs@7.8.2) - ngx-ui-tour-core: 17.0.0(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/router@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(@angular/platform-browser@22.1.6(@angular/common@22.1.6(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.1.6(@angular/compiler@22.1.6)(rxjs@7.8.2)))(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/common': 22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2) + '@angular/core': 22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2) + '@ng-bootstrap/ng-bootstrap': 21.0.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/forms@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(@angular/localize@22.2.0(@angular/compiler-cli@22.2.0(@angular/compiler@22.2.0)(typescript@6.0.3))(@angular/compiler@22.2.0))(@popperjs/core@2.11.8)(rxjs@7.8.2) + ngx-ui-tour-core: 17.0.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/router@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(@angular/platform-browser@22.2.0(@angular/common@22.2.0(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2))(rxjs@7.8.2))(@angular/core@22.2.0(@angular/compiler@22.2.0)(rxjs@7.8.2)))(rxjs@7.8.2))(rxjs@7.8.2) tslib: 2.8.1 transitivePeerDependencies: - '@angular/router' @@ -8130,7 +7523,7 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.55: {} + node-releases@2.0.57: {} normalize-diacritics@5.0.0: dependencies: @@ -8149,26 +7542,14 @@ snapshots: dependencies: path-key: 3.1.1 - nth-check@2.1.1: + nth-check@3.0.1: dependencies: - boolbase: 1.0.0 + boolbase: 2.0.0 nwsapi@2.2.24: {} - object-assign@4.1.1: {} - - object-inspect@1.13.4: {} - obug@2.2.1: {} - on-finished@2.4.1: - dependencies: - ee-first: 1.1.1 - - once@1.4.0: - dependencies: - wrappy: 1.0.2 - onetime@5.1.2: dependencies: mimic-fn: 2.1.0 @@ -8195,35 +7576,34 @@ snapshots: is-unicode-supported: 2.1.0 log-symbols: 7.0.1 stdin-discarder: 0.3.2 - string-width: 8.2.2 + string-width: 8.3.0 - ordered-binary@1.6.1: + ordered-binary@1.6.2: optional: true - oxc-parser@0.142.0: + oxc-parser@0.150.0: dependencies: - '@oxc-project/types': 0.142.0 + '@oxc-project/types': 0.150.0 optionalDependencies: - '@oxc-parser/binding-android-arm-eabi': 0.142.0 - '@oxc-parser/binding-android-arm64': 0.142.0 - '@oxc-parser/binding-darwin-arm64': 0.142.0 - '@oxc-parser/binding-darwin-x64': 0.142.0 - '@oxc-parser/binding-freebsd-x64': 0.142.0 - '@oxc-parser/binding-linux-arm-gnueabihf': 0.142.0 - '@oxc-parser/binding-linux-arm-musleabihf': 0.142.0 - '@oxc-parser/binding-linux-arm64-gnu': 0.142.0 - '@oxc-parser/binding-linux-arm64-musl': 0.142.0 - '@oxc-parser/binding-linux-ppc64-gnu': 0.142.0 - '@oxc-parser/binding-linux-riscv64-gnu': 0.142.0 - '@oxc-parser/binding-linux-riscv64-musl': 0.142.0 - '@oxc-parser/binding-linux-s390x-gnu': 0.142.0 - '@oxc-parser/binding-linux-x64-gnu': 0.142.0 - '@oxc-parser/binding-linux-x64-musl': 0.142.0 - '@oxc-parser/binding-openharmony-arm64': 0.142.0 - '@oxc-parser/binding-wasm32-wasi': 0.142.0 - '@oxc-parser/binding-win32-arm64-msvc': 0.142.0 - '@oxc-parser/binding-win32-ia32-msvc': 0.142.0 - '@oxc-parser/binding-win32-x64-msvc': 0.142.0 + '@oxc-parser/binding-android-arm-eabi': 0.150.0 + '@oxc-parser/binding-android-arm64': 0.150.0 + '@oxc-parser/binding-darwin-arm64': 0.150.0 + '@oxc-parser/binding-darwin-x64': 0.150.0 + '@oxc-parser/binding-freebsd-x64': 0.150.0 + '@oxc-parser/binding-linux-arm-gnueabihf': 0.150.0 + '@oxc-parser/binding-linux-arm-musleabihf': 0.150.0 + '@oxc-parser/binding-linux-arm64-gnu': 0.150.0 + '@oxc-parser/binding-linux-arm64-musl': 0.150.0 + '@oxc-parser/binding-linux-ppc64-gnu': 0.150.0 + '@oxc-parser/binding-linux-riscv64-gnu': 0.150.0 + '@oxc-parser/binding-linux-riscv64-musl': 0.150.0 + '@oxc-parser/binding-linux-s390x-gnu': 0.150.0 + '@oxc-parser/binding-linux-x64-gnu': 0.150.0 + '@oxc-parser/binding-linux-x64-musl': 0.150.0 + '@oxc-parser/binding-openharmony-arm64': 0.150.0 + '@oxc-parser/binding-win32-arm64-msvc': 0.150.0 + '@oxc-parser/binding-win32-ia32-msvc': 0.150.0 + '@oxc-parser/binding-win32-x64-msvc': 0.150.0 p-limit@2.3.0: dependencies: @@ -8272,8 +7652,6 @@ snapshots: dependencies: entities: 8.1.0 - parseurl@1.3.3: {} - path-exists@4.0.0: {} path-key@3.1.1: {} @@ -8285,11 +7663,9 @@ snapshots: path-scurry@2.0.2: dependencies: - lru-cache: 11.5.2 + lru-cache: 11.5.3 minipass: 7.1.3 - path-to-regexp@8.4.2: {} - pdfjs-dist@6.3.289: optionalDependencies: '@napi-rs/canvas': 1.0.9 @@ -8304,12 +7680,10 @@ snapshots: pirates@4.0.7: {} - piscina@5.2.0: + piscina@5.3.2: optionalDependencies: '@napi-rs/nice': 1.1.1 - pkce-challenge@5.0.1: {} - pkg-dir@4.2.0: dependencies: find-up: 4.1.0 @@ -8336,12 +7710,12 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-organize-imports@4.3.0(prettier@3.9.6)(typescript@6.0.3): + prettier-plugin-organize-imports@4.3.0(prettier@3.9.9)(typescript@6.0.3): dependencies: - prettier: 3.9.6 + prettier: 3.9.9 typescript: 6.0.3 - prettier@3.9.6: {} + prettier@3.9.9: {} pretty-format@29.7.0: dependencies: @@ -8354,22 +7728,17 @@ snapshots: '@jest/schemas': 30.4.1 ansi-styles: 5.2.0 react-is-18: react-is@18.3.1 - react-is-19: react-is@19.2.8 + react-is-19: react-is@19.3.0 pretty-format@30.5.1: dependencies: '@jest/react-is-18': react-is@18.3.1 - '@jest/react-is-19': react-is@19.2.8 + '@jest/react-is-19': react-is@19.3.0 '@jest/schemas': 30.5.0 ansi-styles: 5.2.0 proc-log@7.0.0: {} - proxy-addr@2.0.7: - dependencies: - forwarded: 0.2.0 - ipaddr.js: 1.9.1 - proxy-agent-negotiate@1.1.0: {} punycode@2.3.1: {} @@ -8380,23 +7749,9 @@ snapshots: dependencies: hookified: 2.2.0 - qs@6.16.0: - dependencies: - es-define-property: 1.0.1 - side-channel: 1.1.1 - - range-parser@1.3.0: {} - - raw-body@3.0.2: - dependencies: - bytes: 3.1.2 - http-errors: 2.0.1 - iconv-lite: 0.7.3 - unpipe: 1.0.0 - react-is@18.3.1: {} - react-is@19.2.8: {} + react-is@19.3.0: {} readdirp@5.1.1: {} @@ -8419,57 +7774,26 @@ snapshots: onetime: 7.0.0 signal-exit: 4.1.0 - rolldown@1.1.5: + rolldown@1.2.8: dependencies: - '@oxc-project/types': 0.139.0 + '@oxc-project/types': 0.149.0 '@rolldown/pluginutils': 1.0.1 optionalDependencies: - '@rolldown/binding-android-arm64': 1.1.5 - '@rolldown/binding-darwin-arm64': 1.1.5 - '@rolldown/binding-darwin-x64': 1.1.5 - '@rolldown/binding-freebsd-x64': 1.1.5 - '@rolldown/binding-linux-arm-gnueabihf': 1.1.5 - '@rolldown/binding-linux-arm64-gnu': 1.1.5 - '@rolldown/binding-linux-arm64-musl': 1.1.5 - '@rolldown/binding-linux-ppc64-gnu': 1.1.5 - '@rolldown/binding-linux-s390x-gnu': 1.1.5 - '@rolldown/binding-linux-x64-gnu': 1.1.5 - '@rolldown/binding-linux-x64-musl': 1.1.5 - '@rolldown/binding-openharmony-arm64': 1.1.5 - '@rolldown/binding-wasm32-wasi': 1.1.5 - '@rolldown/binding-win32-arm64-msvc': 1.1.5 - '@rolldown/binding-win32-x64-msvc': 1.1.5 - - rolldown@1.2.0: - dependencies: - '@oxc-project/types': 0.140.0 - '@rolldown/pluginutils': 1.0.1 - optionalDependencies: - '@rolldown/binding-android-arm64': 1.2.0 - '@rolldown/binding-darwin-arm64': 1.2.0 - '@rolldown/binding-darwin-x64': 1.2.0 - '@rolldown/binding-freebsd-x64': 1.2.0 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.0 - '@rolldown/binding-linux-arm64-gnu': 1.2.0 - '@rolldown/binding-linux-arm64-musl': 1.2.0 - '@rolldown/binding-linux-ppc64-gnu': 1.2.0 - '@rolldown/binding-linux-s390x-gnu': 1.2.0 - '@rolldown/binding-linux-x64-gnu': 1.2.0 - '@rolldown/binding-linux-x64-musl': 1.2.0 - '@rolldown/binding-openharmony-arm64': 1.2.0 - '@rolldown/binding-wasm32-wasi': 1.2.0 - '@rolldown/binding-win32-arm64-msvc': 1.2.0 - '@rolldown/binding-win32-x64-msvc': 1.2.0 - - router@2.2.0(supports-color@8.1.1): - dependencies: - debug: 4.4.3(supports-color@8.1.1) - depd: 2.0.0 - is-promise: 4.0.0 - parseurl: 1.3.3 - path-to-regexp: 8.4.2 - transitivePeerDependencies: - - supports-color + '@rolldown/binding-android-arm-eabi': 1.2.8 + '@rolldown/binding-android-arm64': 1.2.8 + '@rolldown/binding-darwin-arm64': 1.2.8 + '@rolldown/binding-darwin-x64': 1.2.8 + '@rolldown/binding-freebsd-x64': 1.2.8 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.8 + '@rolldown/binding-linux-arm64-gnu': 1.2.8 + '@rolldown/binding-linux-arm64-musl': 1.2.8 + '@rolldown/binding-linux-ppc64-gnu': 1.2.8 + '@rolldown/binding-linux-s390x-gnu': 1.2.8 + '@rolldown/binding-linux-x64-gnu': 1.2.8 + '@rolldown/binding-linux-x64-musl': 1.2.8 + '@rolldown/binding-openharmony-arm64': 1.2.8 + '@rolldown/binding-win32-arm64-msvc': 1.2.8 + '@rolldown/binding-win32-x64-msvc': 1.2.8 rrweb-cssom@0.8.0: {} @@ -8479,7 +7803,94 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.101.0: + sass-embedded-all-unknown@1.104.1: + dependencies: + sass: 1.104.1 + optional: true + + sass-embedded-android-arm64@1.104.1: + optional: true + + sass-embedded-android-arm@1.104.1: + optional: true + + sass-embedded-android-riscv64@1.104.1: + optional: true + + sass-embedded-android-x64@1.104.1: + optional: true + + sass-embedded-darwin-arm64@1.104.1: + optional: true + + sass-embedded-darwin-x64@1.104.1: + optional: true + + sass-embedded-linux-arm64@1.104.1: + optional: true + + sass-embedded-linux-arm@1.104.1: + optional: true + + sass-embedded-linux-musl-arm64@1.104.1: + optional: true + + sass-embedded-linux-musl-arm@1.104.1: + optional: true + + sass-embedded-linux-musl-riscv64@1.104.1: + optional: true + + sass-embedded-linux-musl-x64@1.104.1: + optional: true + + sass-embedded-linux-riscv64@1.104.1: + optional: true + + sass-embedded-linux-x64@1.104.1: + optional: true + + sass-embedded-unknown-all@1.104.1: + dependencies: + sass: 1.104.1 + optional: true + + sass-embedded-win32-arm64@1.104.1: + optional: true + + sass-embedded-win32-x64@1.104.1: + optional: true + + sass-embedded@1.104.1: + dependencies: + '@bufbuild/protobuf': 2.15.0 + colorjs.io: 0.7.1 + immutable: 5.1.9 + rxjs: 7.8.2 + supports-color: 8.1.1 + sync-child-process: 1.0.2 + varint: 6.0.0 + optionalDependencies: + sass-embedded-all-unknown: 1.104.1 + sass-embedded-android-arm: 1.104.1 + sass-embedded-android-arm64: 1.104.1 + sass-embedded-android-riscv64: 1.104.1 + sass-embedded-android-x64: 1.104.1 + sass-embedded-darwin-arm64: 1.104.1 + sass-embedded-darwin-x64: 1.104.1 + sass-embedded-linux-arm: 1.104.1 + sass-embedded-linux-arm64: 1.104.1 + sass-embedded-linux-musl-arm: 1.104.1 + sass-embedded-linux-musl-arm64: 1.104.1 + sass-embedded-linux-musl-riscv64: 1.104.1 + sass-embedded-linux-musl-x64: 1.104.1 + sass-embedded-linux-riscv64: 1.104.1 + sass-embedded-linux-x64: 1.104.1 + sass-embedded-unknown-all: 1.104.1 + sass-embedded-win32-arm64: 1.104.1 + sass-embedded-win32-x64: 1.104.1 + + sass@1.104.1: dependencies: chokidar: 5.0.0 immutable: 5.1.9 @@ -8495,74 +7906,19 @@ snapshots: semver@7.8.5: {} - send@1.2.1(supports-color@8.1.1): - dependencies: - debug: 4.4.3(supports-color@8.1.1) - encodeurl: 2.0.0 - escape-html: 1.0.3 - etag: 1.8.1 - fresh: 2.0.0 - http-errors: 2.0.1 - mime-types: 3.0.2 - ms: 2.1.3 - on-finished: 2.4.1 - range-parser: 1.3.0 - statuses: 2.0.2 - transitivePeerDependencies: - - supports-color - - serve-static@2.2.1(supports-color@8.1.1): - dependencies: - encodeurl: 2.0.0 - escape-html: 1.0.3 - parseurl: 1.3.3 - send: 1.2.1(supports-color@8.1.1) - transitivePeerDependencies: - - supports-color - - setprototypeof@1.2.0: {} - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 shebang-regex@3.0.0: {} - side-channel-list@1.0.1: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - - side-channel-map@1.0.1: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - - side-channel-weakmap@1.0.2: - dependencies: - call-bound: 1.0.4 - es-errors: 1.3.0 - get-intrinsic: 1.3.0 - object-inspect: 1.13.4 - side-channel-map: 1.0.1 - - side-channel@1.1.1: - dependencies: - es-errors: 1.3.0 - object-inspect: 1.13.4 - side-channel-list: 1.0.1 - side-channel-map: 1.0.1 - side-channel-weakmap: 1.0.2 - signal-exit@3.0.7: {} signal-exit@4.1.0: {} slash@3.0.0: {} - slice-ansi@9.0.0: + slice-ansi@9.0.1: dependencies: ansi-styles: 6.2.3 is-fullwidth-code-point: 5.1.0 @@ -8578,14 +7934,14 @@ snapshots: source-map@0.7.6: {} + source-map@0.8.0: {} + sprintf-js@1.0.3: {} stack-utils@2.0.6: dependencies: escape-string-regexp: 2.0.0 - statuses@2.0.2: {} - stdin-discarder@0.3.2: {} string-length@4.0.2: @@ -8608,12 +7964,12 @@ snapshots: string-width@7.2.0: dependencies: emoji-regex: 10.6.0 - get-east-asian-width: 1.6.0 + get-east-asian-width: 1.7.0 strip-ansi: 7.2.0 - string-width@8.2.2: + string-width@8.3.0: dependencies: - get-east-asian-width: 1.6.0 + get-east-asian-width: 1.7.0 strip-ansi: 7.2.0 strip-ansi@6.0.1: @@ -8640,6 +7996,12 @@ snapshots: symbol-tree@3.2.4: {} + sync-child-process@1.0.2: + dependencies: + sync-message-port: 1.2.0 + + sync-message-port@1.2.0: {} + synckit@0.11.13: dependencies: '@pkgr/core': 0.3.6 @@ -8661,8 +8023,6 @@ snapshots: dependencies: tldts-core: 6.1.86 - toidentifier@1.0.1: {} - tough-cookie@5.1.2: dependencies: tldts: 6.1.86 @@ -8675,12 +8035,12 @@ snapshots: dependencies: typescript: 6.0.3 - ts-jest@29.4.12(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.1(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(esbuild@0.28.2)(jest-util@30.4.1)(jest@30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)))(typescript@6.0.3): + ts-jest@29.4.12(@babel/core@7.29.7(supports-color@8.1.1))(@jest/transform@30.5.2(supports-color@8.1.1))(@jest/types@30.5.1)(babel-jest@30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1))(esbuild@0.28.2)(jest-util@30.4.1)(jest@30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)))(typescript@6.0.3): dependencies: bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 handlebars: 4.7.9 - jest: 30.5.1(@types/node@26.5.0)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3)) + jest: 30.5.2(@types/node@26.6.2)(supports-color@8.1.1)(ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3)) json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 @@ -8690,20 +8050,20 @@ snapshots: yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.29.7(supports-color@8.1.1) - '@jest/transform': 30.5.1(supports-color@8.1.1) + '@jest/transform': 30.5.2(supports-color@8.1.1) '@jest/types': 30.5.1 - babel-jest: 30.5.1(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) + babel-jest: 30.5.2(@babel/core@7.29.7(supports-color@8.1.1))(supports-color@8.1.1) esbuild: 0.28.2 jest-util: 30.4.1 - ts-node@10.9.2(@types/node@26.5.0)(typescript@6.0.3): + ts-node@10.9.2(@types/node@26.6.2)(typescript@6.0.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.12 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 26.5.0 + '@types/node': 26.6.2 acorn: 8.18.0 acorn-walk: 8.3.5 arg: 4.1.3 @@ -8726,12 +8086,6 @@ snapshots: type-fest@4.41.0: {} - type-is@2.1.0: - dependencies: - content-type: 2.1.0 - media-typer: 1.1.1 - mime-types: 3.0.2 - typescript@6.0.3: {} uglify-js@3.19.3: @@ -8739,8 +8093,6 @@ snapshots: undici-types@8.9.0: {} - unpipe@1.0.0: {} - unrs-resolver@1.12.2: dependencies: napi-postinstall: 0.3.4 @@ -8768,9 +8120,9 @@ snapshots: '@unrs/resolver-binding-win32-ia32-msvc': 1.12.2 '@unrs/resolver-binding-win32-x64-msvc': 1.12.2 - update-browserslist-db@1.3.3(browserslist@4.28.9): + update-browserslist-db@1.3.3(browserslist@4.29.1): dependencies: - browserslist: 4.28.9 + browserslist: 4.29.1 escalade: 3.2.0 picocolors: 1.1.1 @@ -8794,32 +8146,29 @@ snapshots: validate-npm-package-name@8.0.0: {} - vary@1.1.2: {} + varint@6.0.0: {} verkit@0.3.2: {} - vite@8.1.5(@types/node@26.5.0)(esbuild@0.28.2)(jiti@2.7.0)(sass@1.101.0): + vite@8.3.0(@types/node@26.6.2)(esbuild@0.28.2)(jiti@2.7.0)(sass-embedded@1.104.1)(sass@1.104.1): dependencies: lightningcss: 1.33.0 picomatch: 4.0.7 postcss: 8.5.28 - rolldown: 1.1.5 + rolldown: 1.2.8 tinyglobby: 0.2.17 optionalDependencies: - '@types/node': 26.5.0 + '@types/node': 26.6.2 esbuild: 0.28.2 fsevents: 2.3.3 jiti: 2.7.0 - sass: 1.101.0 + sass: 1.104.1 + sass-embedded: 1.104.1 w3c-xmlserializer@5.0.0: dependencies: xml-name-validator: 5.0.0 - watchpack@2.5.2: - dependencies: - graceful-fs: 4.2.11 - weak-lru-cache@1.2.2: optional: true @@ -8844,10 +8193,10 @@ snapshots: wordwrap@1.0.0: {} - wrap-ansi@10.0.1: + wrap-ansi@10.0.2: dependencies: ansi-styles: 6.2.3 - string-width: 8.2.2 + string-width: 8.3.0 wrap-ansi@7.0.0: dependencies: @@ -8867,8 +8216,6 @@ snapshots: string-width: 7.2.0 strip-ansi: 7.2.0 - wrappy@1.0.2: {} - write-file-atomic@5.0.1: dependencies: imurmurhash: 0.1.4 @@ -8882,6 +8229,8 @@ snapshots: xmlchars@2.2.0: {} + xxhash-wasm@1.1.0: {} + y18n@5.0.8: {} yallist@3.1.1: {} @@ -8905,7 +8254,16 @@ snapshots: cliui: 9.0.1 escalade: 3.2.0 get-caller-file: 2.0.5 - string-width: 8.2.2 + string-width: 8.3.0 + y18n: 5.0.8 + yargs-parser: 22.0.0 + + yargs@18.2.0: + dependencies: + cliui: 9.0.1 + escalade: 3.2.0 + get-caller-file: 2.0.5 + string-width: 8.3.0 y18n: 5.0.8 yargs-parser: 22.0.0 @@ -8915,10 +8273,4 @@ snapshots: yoctocolors@2.2.0: {} - zod-to-json-schema@3.25.2(zod@4.6.2): - dependencies: - zod: 4.6.2 - - zod@4.4.3: {} - - zod@4.6.2: {} + zod@4.6.5: {} diff --git a/src-ui/src/app/components/admin/settings/settings.component.html b/src-ui/src/app/components/admin/settings/settings.component.html index b520e8218..4ff3e671d 100644 --- a/src-ui/src/app/components/admin/settings/settings.component.html +++ b/src-ui/src/app/components/admin/settings/settings.component.html @@ -253,6 +253,24 @@ + @if (aiEnabled) { +
+
+ Suggestions default to +
+
+
+ + + + + + +
+
+
+ } +
diff --git a/src-ui/src/app/components/admin/settings/settings.component.spec.ts b/src-ui/src/app/components/admin/settings/settings.component.spec.ts index 71889e74b..1389a290d 100644 --- a/src-ui/src/app/components/admin/settings/settings.component.spec.ts +++ b/src-ui/src/app/components/admin/settings/settings.component.spec.ts @@ -307,7 +307,7 @@ describe('SettingsComponent', () => { expect(toastErrorSpy).toHaveBeenCalled() expect(storeSpy).toHaveBeenCalled() expect(appearanceSettingsSpy).not.toHaveBeenCalled() - expect(setSpy).toHaveBeenCalledTimes(34) + expect(setSpy).toHaveBeenCalledTimes(35) expect(setSpy).toHaveBeenCalledWith(SETTINGS_KEYS.SIDEBAR_HIDDEN_ITEMS, [ HideableSidebarItemID.Workflows, ]) diff --git a/src-ui/src/app/components/admin/settings/settings.component.ts b/src-ui/src/app/components/admin/settings/settings.component.ts index a4ead8373..2fe40e540 100644 --- a/src-ui/src/app/components/admin/settings/settings.component.ts +++ b/src-ui/src/app/components/admin/settings/settings.component.ts @@ -44,6 +44,7 @@ import { HIDEABLE_SIDEBAR_ITEM_IDS, HideableSidebarItemID, SETTINGS_KEYS, + SuggestionSource, } from 'src/app/data/ui-settings' import { User } from 'src/app/data/user' import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive' @@ -184,6 +185,7 @@ export class SettingsComponent documentEditingRemoveInboxTags: new FormControl(null), documentEditingOverlayThumbnail: new FormControl(null), documentEditingAutoSuggest: new FormControl(null), + documentEditingSuggestionSource: new FormControl(null), documentDetailsHiddenFields: new FormControl([]), searchDbOnly: new FormControl(null), searchLink: new FormControl(null), @@ -217,6 +219,11 @@ export class SettingsComponent public readonly PdfZoomScale = PdfZoomScale public readonly PdfEditorEditMode = PdfEditorEditMode + public readonly SuggestionSource = SuggestionSource + + get aiEnabled(): boolean { + return this.settings.get(SETTINGS_KEYS.AI_ENABLED) + } public readonly documentDetailFieldOptions = documentDetailFieldOptions public readonly sidebarItemOptions = HIDEABLE_SIDEBAR_ITEM_IDS.map((id) => ({ @@ -404,6 +411,9 @@ export class SettingsComponent documentEditingAutoSuggest: this.settings.get( SETTINGS_KEYS.DOCUMENT_EDITING_AUTO_SUGGEST ), + documentEditingSuggestionSource: this.settings.get( + SETTINGS_KEYS.DOCUMENT_EDITING_SUGGESTION_SOURCE + ), documentDetailsHiddenFields: this.settings.get( SETTINGS_KEYS.DOCUMENT_DETAILS_HIDDEN_FIELDS ), @@ -625,6 +635,10 @@ export class SettingsComponent SETTINGS_KEYS.DOCUMENT_EDITING_AUTO_SUGGEST, this.settingsForm.value.documentEditingAutoSuggest ) + this.settings.set( + SETTINGS_KEYS.DOCUMENT_EDITING_SUGGESTION_SOURCE, + this.settingsForm.value.documentEditingSuggestionSource + ) this.settings.set( SETTINGS_KEYS.DOCUMENT_DETAILS_HIDDEN_FIELDS, this.settingsForm.value.documentDetailsHiddenFields diff --git a/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.scss b/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.scss index b68836b4a..00e545c69 100644 --- a/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.scss +++ b/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.scss @@ -154,11 +154,29 @@ & section { position: absolute; text-align: initial; + pointer-events: auto; box-sizing: border-box; transform-origin: 0 0; } + & :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton) > a { + position: absolute; + inset: 0; + font-size: 1em; + transition: none; + } + + & :is(.linkAnnotation, .buttonWidgetAnnotation.pushButton):not(.hasBorder) + > a:hover { + opacity: 0.2; + background-color: rgb(255 255 0); + } + & .annotationTextContent { opacity: 0; } } + +:host ::ng-deep .textLayer.selecting ~ .annotationLayer section { + pointer-events: none; +} diff --git a/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.spec.ts b/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.spec.ts index 93649394a..a3f47abae 100644 --- a/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.spec.ts +++ b/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.spec.ts @@ -1,7 +1,11 @@ import { SimpleChange } from '@angular/core' import { ComponentFixture, TestBed } from '@angular/core/testing' import * as pdfjs from 'pdfjs-dist/legacy/build/pdf.mjs' -import { PDFSinglePageViewer, PDFViewer } from 'pdfjs-dist/web/pdf_viewer.mjs' +import { + LinkTarget, + PDFSinglePageViewer, + PDFViewer, +} from 'pdfjs-dist/web/pdf_viewer.mjs' import { PngxPdfViewerComponent } from './pdf-viewer.component' import { PdfRenderMode, PdfZoomLevel, PdfZoomScale } from './pdf-viewer.types' @@ -58,6 +62,16 @@ describe('PngxPdfViewerComponent', () => { expect((component as any).pdfViewer).toBeInstanceOf(PDFViewer) }) + it('opens external links in a new tab', () => { + const linkService = (component as any).linkService + expect(linkService.options).toEqual( + expect.objectContaining({ + externalLinkTarget: LinkTarget.BLANK, + externalLinkRel: 'noopener noreferrer nofollow', + }) + ) + }) + it('resolves the worker source relative to the document base URI', async () => { setBaseHref('/paperless/') const getDocumentSpy = jest.spyOn(pdfjs, 'getDocument') @@ -76,6 +90,7 @@ describe('PngxPdfViewerComponent', () => { withCredentials: true, wasmUrl: expect.stringContaining('/paperless/assets/wasm/'), iccUrl: expect.stringContaining('/paperless/assets/iccs/'), + cMapUrl: expect.stringContaining('/paperless/assets/cmaps/'), }) }) diff --git a/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.ts b/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.ts index 959ea3011..7994e82be 100644 --- a/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.ts +++ b/src-ui/src/app/components/common/pdf-viewer/pdf-viewer.component.ts @@ -21,6 +21,7 @@ import { } from 'pdfjs-dist/legacy/build/pdf.mjs' import { EventBus, + LinkTarget, PDFFindController, PDFLinkService, PDFSinglePageViewer, @@ -75,7 +76,11 @@ export class PngxPdfViewerComponent private lastViewerPage?: number private readonly eventBus = new EventBus() - private readonly linkService = new PDFLinkService({ eventBus: this.eventBus }) + private readonly linkService = new PDFLinkService({ + eventBus: this.eventBus, + externalLinkTarget: LinkTarget.BLANK, + externalLinkRel: 'noopener noreferrer nofollow', + }) private readonly findController = new PDFFindController({ eventBus: this.eventBus, linkService: this.linkService, @@ -185,6 +190,7 @@ export class PngxPdfViewerComponent withCredentials: true, wasmUrl: new URL('assets/wasm/', this.document.baseURI).toString(), iccUrl: new URL('assets/iccs/', this.document.baseURI).toString(), + cMapUrl: new URL('assets/cmaps/', this.document.baseURI).toString(), } this.loadingTask = getDocument(initOptions) try { diff --git a/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html b/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html index ad2b72986..aca9fd72e 100644 --- a/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html +++ b/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html @@ -1,58 +1,84 @@ -
- + + @if (aiEnabled()) { +
+ + +
+
+ @if (novelSuggestions === 0 && fieldSuggestions === 0) { +
+ No novel suggestions +
+ } + @if (suggestions()?.suggested_tags?.length > 0) { + Tags + @for (tag of suggestions().suggested_tags; track tag) { + + } + } + @if (suggestions()?.suggested_document_types?.length > 0) { +
Document Types
+ @for (type of suggestions().suggested_document_types; track type) { + + } + } + @if (suggestions()?.suggested_correspondents?.length > 0) { +
Correspondents
+ @for (correspondent of suggestions().suggested_correspondents; track correspondent) { + + } + } + @if (fieldSuggestions > 0) { +
+ {fieldSuggestions, plural, =1 {1 suggestion available below} other {{{fieldSuggestions}} suggestions available below}} +
+ } +
+
+
} - @if (noSuggestions) { - No suggestions - } @else { - Suggest - } - @if (totalSuggestions > 0) { - {{ totalSuggestions }} - } - +
@if (aiEnabled()) { -
- - -
-
- @if (novelSuggestions === 0 && reusableSuggestions === 0) { -
- No novel suggestions -
- } - @if (suggestions()?.suggested_tags?.length > 0) { - Tags - @for (tag of suggestions().suggested_tags; track tag) { - - } - } - @if (suggestions()?.suggested_document_types?.length > 0) { -
Document Types
- @for (type of suggestions().suggested_document_types; track type) { - - } - } - @if (suggestions()?.suggested_correspondents?.length > 0) { -
Correspondents
- @for (correspondent of suggestions().suggested_correspondents; track correspondent) { - - } - } - @if (reusableSuggestions > 0) { -
- {reusableSuggestions, plural, =1 {1 existing value suggested below} other {{{reusableSuggestions}} existing values suggested below}} -
- } +
+
Suggest using:
+
+ + +
+
+ +
diff --git a/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.scss b/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.scss index 19aa1dc7d..eafc734b3 100644 --- a/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.scss +++ b/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.scss @@ -1,3 +1,7 @@ .suggestions-dropdown { min-width: 250px; } + +.btn-link.dropdown-toggle::after { + display: none; +} diff --git a/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.spec.ts b/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.spec.ts index 6b93d48af..4395c6038 100644 --- a/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.spec.ts +++ b/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.spec.ts @@ -1,6 +1,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing' import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap' import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons' +import { SuggestionSource } from 'src/app/data/ui-settings' import { SuggestionsDropdownComponent } from './suggestions-dropdown.component' describe('SuggestionsDropdownComponent', () => { @@ -83,7 +84,7 @@ describe('SuggestionsDropdownComponent', () => { fixture.detectChanges() expect(fixture.nativeElement.textContent).toContain( - '2 existing values suggested below' + '2 suggestions available below' ) expect(fixture.nativeElement.textContent).not.toContain( 'No novel suggestions' @@ -107,7 +108,7 @@ describe('SuggestionsDropdownComponent', () => { expect(component.totalSuggestions).toBe(4) expect(fixture.nativeElement.textContent).toContain('Arbitration') expect(fixture.nativeElement.textContent).toContain( - '2 existing values suggested below' + '2 suggestions available below' ) }) @@ -124,10 +125,46 @@ describe('SuggestionsDropdownComponent', () => { }) expect(component.novelSuggestions).toBe(0) - expect(component.totalSuggestions).toBe(5) + expect(component.totalSuggestions).toBe(6) fixture.componentRef.setInput('appliedStoragePath', 7) - expect(component.totalSuggestions).toBe(4) + expect(component.totalSuggestions).toBe(5) + }) + + it('should count title and dates as field suggestions without calling them existing values', () => { + fixture.componentRef.setInput('aiEnabled', true) + fixture.componentRef.setInput('fetchedSources', [SuggestionSource.ML]) + fixture.componentRef.setInput('suggestions', { + title: 'Suggested title', + dates: ['2026-01-04', '2026-02-01', '2026-03-01'], + correspondents: [1, 2, 3, 4], + document_types: [1, 2, 3, 4], + tags: [1, 2, 3, 4, 5, 6, 7, 8], + }) + fixture.detectChanges() + component.clickSuggest() + fixture.detectChanges() + + expect(component.reusableSuggestions).toBe(16) + expect(component.fieldSuggestions).toBe(20) + expect(component.totalSuggestions).toBe(20) + expect(fixture.nativeElement.textContent).toContain( + '20 suggestions available below' + ) + expect(fixture.nativeElement.textContent).not.toContain('existing value') + }) + + it('should not count title or date suggestions matching the current values', () => { + fixture.componentRef.setInput('suggestions', { + title: 'Current title', + dates: ['2026-01-04', '2026-02-01'], + }) + expect(component.fieldSuggestions).toBe(3) + + fixture.componentRef.setInput('appliedTitle', 'Current title') + fixture.componentRef.setInput('appliedCreated', '2026-01-04') + expect(component.fieldSuggestions).toBe(1) + expect(component.totalSuggestions).toBe(1) }) it('should show when a completed request returned no suggestions', () => { @@ -144,6 +181,28 @@ describe('SuggestionsDropdownComponent', () => { expect(fixture.nativeElement.textContent).toContain('No suggestions') }) + it('should wait for all pending responses before showing the empty state', () => { + fixture.componentRef.setInput('aiEnabled', true) + fixture.componentRef.setInput('source', SuggestionSource.Both) + fixture.componentRef.setInput('fetchedSources', [SuggestionSource.ML]) + fixture.componentRef.setInput('suggestions', { tags: [] }) + fixture.componentRef.setInput('loading', true) + fixture.detectChanges() + + expect(component.noSuggestions).toBeFalsy() + expect(fixture.nativeElement.textContent).not.toContain('No suggestions') + expect( + fixture.nativeElement.querySelector('[role="status"]') + ).not.toBeNull() + + fixture.componentRef.setInput('loading', false) + fixture.detectChanges() + + expect(component.noSuggestions).toBeTruthy() + expect(fixture.nativeElement.textContent).toContain('No suggestions') + expect(fixture.nativeElement.querySelector('[role="status"]')).toBeNull() + }) + it('should not show the empty state before a request or with suggestions', () => { expect(component.noSuggestions).toBeFalsy() @@ -179,14 +238,71 @@ describe('SuggestionsDropdownComponent', () => { it('should toggle dropdown when clickSuggest is called and suggestions are not null', () => { fixture.componentRef.setInput('aiEnabled', true) + fixture.componentRef.setInput('fetchedSources', [SuggestionSource.ML]) fixture.detectChanges() fixture.componentRef.setInput('suggestions', { suggested_correspondents: [], suggested_tags: [], suggested_document_types: [], }) + fixture.detectChanges() component.clickSuggest() - expect(component.dropdown.open).toBeTruthy() + expect(component.dropdown.isOpen()).toBeTruthy() expect(fixture.nativeElement.textContent).toContain('No novel suggestions') }) + + it('should fetch unfetched sources and show existing suggestions', () => { + jest.spyOn(component.getSuggestions, 'emit') + fixture.componentRef.setInput('aiEnabled', true) + fixture.componentRef.setInput('source', SuggestionSource.Both) + fixture.componentRef.setInput('fetchedSources', [SuggestionSource.ML]) + fixture.componentRef.setInput('suggestions', { tags: [1] }) + fixture.detectChanges() + component.clickSuggest() + expect(component.getSuggestions.emit).toHaveBeenCalledWith( + SuggestionSource.Both + ) + expect(component.dropdown.isOpen()).toBeTruthy() + }) + + it('should only show source options when AI is enabled', () => { + expect( + fixture.nativeElement.querySelector('#suggestionSourceML') + ).toBeNull() + fixture.componentRef.setInput('aiEnabled', true) + fixture.detectChanges() + fixture.nativeElement + .querySelector('button[title="Suggestion options"]') + .click() + fixture.detectChanges() + expect( + fixture.nativeElement.querySelector('#suggestionSourceML') + ).not.toBeNull() + }) + + it('should emit source changes and never allow no source', () => { + const emitSpy = jest.spyOn(component.sourceChange, 'emit') + component.setSources(true, true) + expect(emitSpy).toHaveBeenCalledWith(SuggestionSource.Both) + component.setSources(true, false) + expect(emitSpy).toHaveBeenCalledWith(SuggestionSource.ML) + component.setSources(false, true) + expect(emitSpy).toHaveBeenCalledWith(SuggestionSource.AI) + + emitSpy.mockClear() + component.setSources(false, false) + expect(emitSpy).not.toHaveBeenCalled() + }) + + it('should indicate a non-default source', () => { + fixture.componentRef.setInput('aiEnabled', true) + fixture.componentRef.setInput('source', SuggestionSource.AI) + fixture.componentRef.setInput('defaultSource', SuggestionSource.AI) + fixture.detectChanges() + expect(fixture.nativeElement.textContent).not.toContain('Not using default') + + fixture.componentRef.setInput('source', SuggestionSource.Both) + fixture.detectChanges() + expect(fixture.nativeElement.textContent).toContain('Not using default') + }) }) diff --git a/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.ts b/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.ts index ebb14ff79..2c04f6ecc 100644 --- a/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.ts +++ b/src-ui/src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.ts @@ -8,6 +8,7 @@ import { import { NgbDropdown, NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap' import { NgxBootstrapIconsModule } from 'ngx-bootstrap-icons' import { DocumentSuggestions } from 'src/app/data/document-suggestions' +import { SuggestionSource } from 'src/app/data/ui-settings' import { pngxPopperOptions } from 'src/app/utils/popper-options' @Component({ @@ -18,21 +19,29 @@ import { pngxPopperOptions } from 'src/app/utils/popper-options' }) export class SuggestionsDropdownComponent { public popperOptions = pngxPopperOptions + public readonly SuggestionSource = SuggestionSource @ViewChild('dropdown') dropdown: NgbDropdown readonly suggestions = input(null) readonly aiEnabled = input(false) readonly loading = input(false) readonly disabled = input(false) + readonly source = input(SuggestionSource.ML) + readonly defaultSource = input(SuggestionSource.ML) + readonly fetchedSources = input([]) readonly appliedTags = input([]) readonly appliedCorrespondent = input(null) readonly appliedDocumentType = input(null) readonly appliedStoragePath = input(null) + readonly appliedTitle = input(null) + readonly appliedCreated = input(null) @Output() - getSuggestions: EventEmitter = - new EventEmitter() + getSuggestions: EventEmitter = new EventEmitter() + + @Output() + sourceChange: EventEmitter = new EventEmitter() @Output() addTag: EventEmitter = new EventEmitter() @@ -53,12 +62,42 @@ export class SuggestionsDropdownComponent { } if (!this.suggestions()) { - this.getSuggestions.emit(this) + this.getSuggestions.emit(this.source()) + } else if (this.hasUnfetchedSources) { + // sources changed, fetch the rest and show what we have meanwhile + this.getSuggestions.emit(this.source()) + this.dropdown?.open() } else { this.dropdown?.toggle() } } + get useML(): boolean { + return this.source() !== SuggestionSource.AI + } + + get useAI(): boolean { + return this.source() !== SuggestionSource.ML + } + + get hasUnfetchedSources(): boolean { + const fetched = this.fetchedSources() + return ( + (this.useML && !fetched.includes(SuggestionSource.ML)) || + (this.useAI && !fetched.includes(SuggestionSource.AI)) + ) + } + + public setSources(ml: boolean, ai: boolean) { + if (ml && ai) { + this.sourceChange.emit(SuggestionSource.Both) + } else if (ml) { + this.sourceChange.emit(SuggestionSource.ML) + } else if (ai) { + this.sourceChange.emit(SuggestionSource.AI) + } + } + get novelSuggestions(): number { return ( (this.suggestions()?.suggested_correspondents?.length ?? 0) + @@ -91,7 +130,28 @@ export class SuggestionsDropdownComponent { } get totalSuggestions(): number { - return this.novelSuggestions + this.reusableSuggestions + return this.novelSuggestions + this.fieldSuggestions + } + + get fieldSuggestions(): number { + return ( + this.reusableSuggestions + + this.unappliedTitleSuggestions + + this.unappliedDateSuggestions + ) + } + + // hide a title or date suggestion equal to the current value + private get unappliedTitleSuggestions(): number { + const title = this.suggestions()?.title + return title && title !== this.appliedTitle() ? 1 : 0 + } + + private get unappliedDateSuggestions(): number { + const created = this.appliedCreated() + return (this.suggestions()?.dates ?? []).filter( + (date) => !created || date !== created + ).length } private countUnapplied(suggested: number[], applied: number[]): number { @@ -102,6 +162,7 @@ export class SuggestionsDropdownComponent { get noSuggestions(): boolean { const suggestions = this.suggestions() return ( + !this.loading() && suggestions != null && !suggestions.title && !suggestions.tags?.length && diff --git a/src-ui/src/app/components/document-detail/document-barcodes/document-barcodes.component.html b/src-ui/src/app/components/document-detail/document-barcodes/document-barcodes.component.html new file mode 100644 index 000000000..b3e67736f --- /dev/null +++ b/src-ui/src/app/components/document-detail/document-barcodes/document-barcodes.component.html @@ -0,0 +1,46 @@ + + + + + + + + + + + @for (barcode of barcodes(); track $index) { + + + + + + + } + +
PageTypeContent
{{ barcode.page }}{{ barcode.format }} + @if (isLink(barcode.value)) { + {{ barcode.value }} + } @else { + {{ barcode.value }} + } + + +
diff --git a/src-ui/src/app/components/document-detail/document-barcodes/document-barcodes.component.spec.ts b/src-ui/src/app/components/document-detail/document-barcodes/document-barcodes.component.spec.ts new file mode 100644 index 000000000..6b40b7bc7 --- /dev/null +++ b/src-ui/src/app/components/document-detail/document-barcodes/document-barcodes.component.spec.ts @@ -0,0 +1,73 @@ +import { Clipboard } from '@angular/cdk/clipboard' +import { ComponentFixture, TestBed } from '@angular/core/testing' +import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons' +import { DocumentBarcodesComponent } from './document-barcodes.component' + +const barcodes = [ + { page: 1, value: 'ASN00123', format: 'Code128' }, + { page: 2, value: 'https://example.com/invoice/4711', format: 'QRCode' }, + { page: 2, value: 'javascript:alert(1)', format: 'QRCode' }, +] + +describe('DocumentBarcodesComponent', () => { + let component: DocumentBarcodesComponent + let fixture: ComponentFixture + let clipboard: Clipboard + + beforeEach(async () => { + TestBed.configureTestingModule({ + imports: [ + DocumentBarcodesComponent, + NgxBootstrapIconsModule.pick(allIcons), + ], + }).compileComponents() + + fixture = TestBed.createComponent(DocumentBarcodesComponent) + component = fixture.componentInstance + clipboard = TestBed.inject(Clipboard) + fixture.componentRef.setInput('barcodes', barcodes) + fixture.detectChanges() + }) + + it('should display all barcodes', () => { + const rows = fixture.nativeElement.querySelectorAll('tbody tr') + expect(rows).toHaveLength(3) + expect(rows[0].textContent).toContain('ASN00123') + expect(rows[0].textContent).toContain('Code128') + }) + + it('should only link http(s) values', () => { + const links = fixture.nativeElement.querySelectorAll('tbody a') + expect(links).toHaveLength(1) + expect(links[0].getAttribute('href')).toEqual( + 'https://example.com/invoice/4711' + ) + expect(links[0].getAttribute('target')).toEqual('_blank') + }) + + it('should copy a value and show feedback', () => { + jest.useFakeTimers() + const copySpy = jest.spyOn(clipboard, 'copy').mockReturnValue(true) + const buttons = fixture.nativeElement.querySelectorAll('tbody button') + buttons[0].click() + fixture.detectChanges() + expect(copySpy).toHaveBeenCalledWith('ASN00123') + expect(component.copiedIndex()).toEqual(0) + expect(buttons[0].querySelector('i-bs').getAttribute('name')).toEqual( + 'clipboard-check' + ) + jest.advanceTimersByTime(3000) + fixture.detectChanges() + expect(component.copiedIndex()).toBeNull() + expect(buttons[0].querySelector('i-bs').getAttribute('name')).toEqual( + 'clipboard' + ) + jest.useRealTimers() + }) + + it('should not show feedback if copying failed', () => { + jest.spyOn(clipboard, 'copy').mockReturnValue(false) + component.copy(1) + expect(component.copiedIndex()).toBeNull() + }) +}) diff --git a/src-ui/src/app/components/document-detail/document-barcodes/document-barcodes.component.ts b/src-ui/src/app/components/document-detail/document-barcodes/document-barcodes.component.ts new file mode 100644 index 000000000..e246db0c3 --- /dev/null +++ b/src-ui/src/app/components/document-detail/document-barcodes/document-barcodes.component.ts @@ -0,0 +1,38 @@ +import { Clipboard } from '@angular/cdk/clipboard' +import { Component, inject, input, OnDestroy, signal } from '@angular/core' +import { NgxBootstrapIconsModule } from 'ngx-bootstrap-icons' +import { DocumentBarcode } from 'src/app/data/document-barcode' + +@Component({ + selector: 'pngx-document-barcodes', + templateUrl: './document-barcodes.component.html', + imports: [NgxBootstrapIconsModule], +}) +export class DocumentBarcodesComponent implements OnDestroy { + private readonly clipboard = inject(Clipboard) + + readonly barcodes = input([]) + + readonly copiedIndex = signal(null) + private copyTimeout: ReturnType + + public isLink(value: string): boolean { + try { + const url = new URL(value.trim()) + return ['http:', 'https:'].includes(url.protocol) && !!url.host + } catch { + return false + } + } + + public copy(index: number) { + if (!this.clipboard.copy(this.barcodes()[index].value)) return + this.copiedIndex.set(index) + clearTimeout(this.copyTimeout) + this.copyTimeout = setTimeout(() => this.copiedIndex.set(null), 3000) + } + + ngOnDestroy(): void { + clearTimeout(this.copyTimeout) + } +} diff --git a/src-ui/src/app/components/document-detail/document-detail.component.html b/src-ui/src/app/components/document-detail/document-detail.component.html index c3f7e199d..184b623ab 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.html +++ b/src-ui/src/app/components/document-detail/document-detail.component.html @@ -134,11 +134,17 @@ [loading]="suggestionsLoading()" [suggestions]="suggestions()" [aiEnabled]="aiEnabled" + [source]="suggestionSource" + [defaultSource]="defaultSuggestionSource" + [fetchedSources]="fetchedSuggestionSources()" [appliedTags]="documentForm.value.tags" [appliedCorrespondent]="documentForm.value.correspondent" [appliedDocumentType]="documentForm.value.document_type" [appliedStoragePath]="documentForm.value.storage_path" - (getSuggestions)="getSuggestions()" + [appliedTitle]="documentForm.value.title" + [appliedCreated]="documentForm.value.created" + (getSuggestions)="getSuggestions($event)" + (sourceChange)="suggestionSourceOverride.set($event)" (addTag)="createTag($event)" (addDocumentType)="createDocumentType($event)" (addCorrespondent)="createCorrespondent($event)"> @@ -350,6 +356,10 @@ } + @if (metadata()?.barcodes?.length > 0) { +
Barcodes
+ + } @if (metadata()?.original_metadata?.length > 0) { } diff --git a/src-ui/src/app/components/document-detail/document-detail.component.spec.ts b/src-ui/src/app/components/document-detail/document-detail.component.spec.ts index 9b285b1a0..13bba3f7b 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.spec.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.spec.ts @@ -43,7 +43,7 @@ import { } from 'src/app/data/filter-rule-type' import { StoragePath } from 'src/app/data/storage-path' import { Tag } from 'src/app/data/tag' -import { SETTINGS_KEYS } from 'src/app/data/ui-settings' +import { SETTINGS_KEYS, SuggestionSource } from 'src/app/data/ui-settings' import { PermissionsGuard } from 'src/app/guards/permissions.guard' import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe' import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe' @@ -662,6 +662,45 @@ describe('DocumentDetailComponent', () => { ) }) + it.each([ + ['tag', 'createTag', 'tags', 'suggested_tags'], + [ + 'document type', + 'createDocumentType', + 'document_type', + 'suggested_document_types', + ], + [ + 'correspondent', + 'createCorrespondent', + 'correspondent', + 'suggested_correspondents', + ], + ])( + 'should create a %s after ML-only suggestions', + (_, method, field, suggestedField) => { + initNormally() + component.suggestions.set({ tags: [1] }) + let openModal: NgbModalRef + modalService.activeInstances.subscribe((modal) => (openModal = modal[0])) + component[method]('New value') + openModal.componentInstance.succeeded.next({ + id: 12, + name: 'New value', + is_inbox_tag: false, + color: '#ff0000', + text_color: '#000000', + }) + + if (field === 'tags') { + expect(component.tagsInput.value).toContain(12) + } else { + expect(component.documentForm.get(field).value).toBe(12) + } + expect(component.suggestions()[suggestedField]).toEqual([]) + } + ) + it('should support creating storage path', () => { initNormally() let openModal: NgbModalRef @@ -1528,6 +1567,113 @@ describe('DocumentDetailComponent', () => { expect(component.suggestionsLoading()).toBeFalsy() }) + it('should get and merge ML and AI suggestions when source is both', () => { + settingsService.set( + SETTINGS_KEYS.DOCUMENT_EDITING_SUGGESTION_SOURCE, + SuggestionSource.Both + ) + const getSetting = settingsService.get.bind(settingsService) + jest + .spyOn(settingsService, 'get') + .mockImplementation((key) => + key === SETTINGS_KEYS.AI_ENABLED ? true : getSetting(key) + ) + const suggestionsSpy = jest + .spyOn(documentService, 'getSuggestions') + .mockReturnValue(of({ tags: [42], dates: ['2024-01-01'] })) + const aiSuggestionsSpy = jest + .spyOn(documentService, 'getAiSuggestions') + .mockReturnValue( + of({ title: 'AI title', tags: [42, 43], suggested_tags: ['New'] }) + ) + initNormally() + expect(suggestionsSpy).toHaveBeenCalled() + expect(aiSuggestionsSpy).toHaveBeenCalled() + expect(component.suggestions().title).toEqual('AI title') + expect(component.suggestions().tags).toEqual([42, 43]) + expect(component.suggestions().suggested_tags).toEqual(['New']) + expect(component.suggestions().dates).toEqual(['2024-01-01']) + }) + + it('should only fetch sources not yet fetched for the document', () => { + settingsService.set(SETTINGS_KEYS.DOCUMENT_EDITING_AUTO_SUGGEST, false) + settingsService.set( + SETTINGS_KEYS.DOCUMENT_EDITING_SUGGESTION_SOURCE, + SuggestionSource.ML + ) + const getSetting = settingsService.get.bind(settingsService) + jest + .spyOn(settingsService, 'get') + .mockImplementation((key) => + key === SETTINGS_KEYS.AI_ENABLED ? true : getSetting(key) + ) + const suggestionsSpy = jest + .spyOn(documentService, 'getSuggestions') + .mockReturnValue(of({ tags: [42] })) + const aiSuggestionsSpy = jest + .spyOn(documentService, 'getAiSuggestions') + .mockReturnValue(of({ tags: [43] })) + initNormally() + + component.getSuggestions() + expect(suggestionsSpy).toHaveBeenCalledTimes(1) + expect(aiSuggestionsSpy).not.toHaveBeenCalled() + + component.getSuggestions(SuggestionSource.Both) + expect(suggestionsSpy).toHaveBeenCalledTimes(1) + expect(aiSuggestionsSpy).toHaveBeenCalledTimes(1) + expect(component.suggestions().tags).toEqual([42, 43]) + + component.getSuggestions(SuggestionSource.Both) + expect(suggestionsSpy).toHaveBeenCalledTimes(1) + expect(aiSuggestionsSpy).toHaveBeenCalledTimes(1) + }) + + it('should use the per-document source override and reset it on document change', () => { + settingsService.set(SETTINGS_KEYS.DOCUMENT_EDITING_AUTO_SUGGEST, false) + const getSetting = settingsService.get.bind(settingsService) + jest + .spyOn(settingsService, 'get') + .mockImplementation((key) => + key === SETTINGS_KEYS.AI_ENABLED ? true : getSetting(key) + ) + initNormally() + expect(component.suggestionSource).toEqual(SuggestionSource.AI) + component.suggestionSourceOverride.set(SuggestionSource.ML) + expect(component.suggestionSource).toEqual(SuggestionSource.ML) + + jest + .spyOn(documentService, 'get') + .mockReturnValueOnce(of(Object.assign({}, doc))) + ;(component as any).loadDocument(doc.id, true) + expect(component.suggestionSourceOverride()).toBeNull() + expect(component.fetchedSuggestionSources()).toEqual([]) + }) + + it('should keep suggestions from one source if the other fails', () => { + settingsService.set( + SETTINGS_KEYS.DOCUMENT_EDITING_SUGGESTION_SOURCE, + SuggestionSource.Both + ) + const getSetting = settingsService.get.bind(settingsService) + jest + .spyOn(settingsService, 'get') + .mockImplementation((key) => + key === SETTINGS_KEYS.AI_ENABLED ? true : getSetting(key) + ) + const errorSpy = jest.spyOn(toastService, 'showError') + jest + .spyOn(documentService, 'getSuggestions') + .mockReturnValue(of({ tags: [42] })) + jest + .spyOn(documentService, 'getAiSuggestions') + .mockReturnValue(throwError(() => new Error('failed'))) + initNormally() + expect(errorSpy).toHaveBeenCalled() + expect(component.suggestions().tags).toEqual([42]) + expect(component.fetchedSuggestionSources()).toEqual([SuggestionSource.ML]) + }) + it('should show error if needed for get suggestions', () => { const suggestionsSpy = jest.spyOn(documentService, 'getSuggestions') const errorSpy = jest.spyOn(toastService, 'showError') diff --git a/src-ui/src/app/components/document-detail/document-detail.component.ts b/src-ui/src/app/components/document-detail/document-detail.component.ts index b9ec0bb76..02d461ed6 100644 --- a/src-ui/src/app/components/document-detail/document-detail.component.ts +++ b/src-ui/src/app/components/document-detail/document-detail.component.ts @@ -28,7 +28,7 @@ import { import { dirtyCheck, DirtyComponent } from '@ngneat/dirty-check-forms' import { NgxBootstrapIconsModule } from 'ngx-bootstrap-icons' import { DeviceDetectorService } from 'ngx-device-detector' -import { BehaviorSubject, Observable, of, Subject, timer } from 'rxjs' +import { BehaviorSubject, merge, Observable, of, Subject, timer } from 'rxjs' import { catchError, debounceTime, @@ -48,7 +48,10 @@ import { DataType } from 'src/app/data/datatype' import { Document, DocumentVersionInfo } from 'src/app/data/document' import { DocumentMetadata } from 'src/app/data/document-metadata' import { DocumentNote } from 'src/app/data/document-note' -import { DocumentSuggestions } from 'src/app/data/document-suggestions' +import { + DocumentSuggestions, + mergeSuggestions, +} from 'src/app/data/document-suggestions' import { DocumentType } from 'src/app/data/document-type' import { FilterRule } from 'src/app/data/filter-rule' import { @@ -63,7 +66,7 @@ import { import { ObjectWithId } from 'src/app/data/object-with-id' import { StoragePath } from 'src/app/data/storage-path' import { Tag } from 'src/app/data/tag' -import { SETTINGS_KEYS } from 'src/app/data/ui-settings' +import { SETTINGS_KEYS, SuggestionSource } from 'src/app/data/ui-settings' import { User } from 'src/app/data/user' import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive' import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe' @@ -132,6 +135,7 @@ import { ShareLinksDialogComponent } from '../common/share-links-dialog/share-li import { SuggestionsDropdownComponent } from '../common/suggestions-dropdown/suggestions-dropdown.component' import { DocumentNotesComponent } from '../document-notes/document-notes.component' import { ComponentWithPermissions } from '../with-permissions/with-permissions.component' +import { DocumentBarcodesComponent } from './document-barcodes/document-barcodes.component' import { DocumentHistoryComponent } from './document-history/document-history.component' import { DocumentVersionDropdownComponent } from './document-version-dropdown/document-version-dropdown.component' import { MetadataCollapseComponent } from './metadata-collapse/metadata-collapse.component' @@ -174,6 +178,7 @@ interface IncomingDocumentUpdate { DateComponent, DocumentLinkComponent, MetadataCollapseComponent, + DocumentBarcodesComponent, PermissionsFormComponent, SelectComponent, TagsComponent, @@ -240,6 +245,10 @@ export class DocumentDetailComponent private readonly autoSuggestSetting = this.settings.getSignal( SETTINGS_KEYS.DOCUMENT_EDITING_AUTO_SUGGEST ) + private readonly suggestionSourceSetting = + this.settings.getSignal( + SETTINGS_KEYS.DOCUMENT_EDITING_SUGGESTION_SOURCE + ) private readonly hiddenFieldsSetting = this.settings.getSignal< DocumentDetailFieldID[] >(SETTINGS_KEYS.DOCUMENT_DETAILS_HIDDEN_FIELDS) @@ -261,6 +270,9 @@ export class DocumentDetailComponent readonly metadata = signal(undefined) readonly suggestions = signal(undefined) readonly suggestionsLoading = signal(false) + // per-document, resets on navigation + readonly suggestionSourceOverride = signal(null) + readonly fetchedSuggestionSources = signal([]) readonly users = signal(undefined) readonly title = signal(undefined) @@ -365,6 +377,15 @@ export class DocumentDetailComponent return this.autoSuggestSetting() } + get defaultSuggestionSource(): SuggestionSource { + return this.aiEnabled ? this.suggestionSourceSetting() : SuggestionSource.ML + } + + get suggestionSource(): SuggestionSource { + if (!this.aiEnabled) return SuggestionSource.ML + return this.suggestionSourceOverride() ?? this.defaultSuggestionSource + } + get archiveContentRenderType(): ContentRenderType { const hasArchiveVersion = this.metadata()?.has_archive_version ?? @@ -590,6 +611,8 @@ export class DocumentDetailComponent } this.documentId.set(doc.id) this.suggestions.set(null) + this.suggestionSourceOverride.set(null) + this.fetchedSuggestionSources.set([]) const openDocument = this.openDocumentService.getOpenDocument( this.documentId() ) @@ -1077,29 +1100,44 @@ export class DocumentDetailComponent return this.documentForm.get('custom_fields') as FormArray } - getSuggestions() { + getSuggestions(source: SuggestionSource = this.suggestionSource) { + const sources = ( + source === SuggestionSource.Both + ? [SuggestionSource.ML, SuggestionSource.AI] + : [source] + ).filter((s) => !this.fetchedSuggestionSources().includes(s)) + if (!sources.length) return + this.suggestionsLoading.set(true) - const suggestionsObservable = this.aiEnabled - ? this.documentsService.getAiSuggestions(this.documentId()) - : this.documentsService.getSuggestions(this.documentId()) - suggestionsObservable + merge( + ...sources.map((s) => + (s === SuggestionSource.AI + ? this.documentsService.getAiSuggestions(this.documentId()) + : this.documentsService.getSuggestions(this.documentId()) + ).pipe( + first(), + map((result) => ({ source: s, result })), + catchError((error) => { + this.toastService.showError( + $localize`Error retrieving suggestions.`, + error + ) + return of(null) + }) + ) + ) + ) .pipe( - first(), takeUntil(this.unsubscribeNotifier), takeUntil(this.docChangeNotifier), finalize(() => this.suggestionsLoading.set(false)) ) - .subscribe({ - next: (result) => { - this.suggestions.set(result) - }, - error: (error) => { - this.suggestions.set(null) - this.toastService.showError( - $localize`Error retrieving suggestions.`, - error - ) - }, + .subscribe((response) => { + if (!response) return + this.fetchedSuggestionSources.update((f) => [...f, response.source]) + this.suggestions.set( + mergeSuggestions(this.suggestions(), response.result) + ) }) } @@ -1116,7 +1154,7 @@ export class DocumentDetailComponent if (this.suggestions()) { this.suggestions.set({ ...this.suggestions(), - suggested_tags: this.suggestions().suggested_tags.filter( + suggested_tags: (this.suggestions().suggested_tags ?? []).filter( (tag) => tag !== newTag.name ), }) @@ -1155,10 +1193,12 @@ export class DocumentDetailComponent this.documentForm.get('document_type').setValue(newDocumentType.id) this.documentForm.get('document_type').markAsDirty() if (this.suggestions()) { - this.suggestions().suggested_document_types = - this.suggestions().suggested_document_types.filter( - (dt) => dt !== newName - ) + this.suggestions.set({ + ...this.suggestions(), + suggested_document_types: ( + this.suggestions().suggested_document_types ?? [] + ).filter((dt) => dt !== newName), + }) } }) } @@ -1185,10 +1225,12 @@ export class DocumentDetailComponent this.documentForm.get('correspondent').setValue(newCorrespondent.id) this.documentForm.get('correspondent').markAsDirty() if (this.suggestions()) { - this.suggestions().suggested_correspondents = - this.suggestions().suggested_correspondents.filter( - (c) => c !== newName - ) + this.suggestions.set({ + ...this.suggestions(), + suggested_correspondents: ( + this.suggestions().suggested_correspondents ?? [] + ).filter((c) => c !== newName), + }) } }) } diff --git a/src-ui/src/app/components/document-list/document-list.component.spec.ts b/src-ui/src/app/components/document-list/document-list.component.spec.ts index 3ef7a7ffa..798abc1c8 100644 --- a/src-ui/src/app/components/document-list/document-list.component.spec.ts +++ b/src-ui/src/app/components/document-list/document-list.component.spec.ts @@ -146,6 +146,19 @@ describe('DocumentListComponent', () => { expect(reloadSpy).toHaveBeenCalled() }) + it('should stop reloading on document deleted after destroy', () => { + const reloadSpy = jest.spyOn(documentListService, 'reload') + const documentDeletedSubject = new Subject() + jest + .spyOn(websocketStatusService, 'onDocumentDeleted') + .mockReturnValue(documentDeletedSubject) + fixture.detectChanges() + fixture.destroy() + reloadSpy.mockClear() + documentDeletedSubject.next(true) + expect(reloadSpy).not.toHaveBeenCalled() + }) + it('should show score sort fields on fulltext queries', () => { documentListService.setFilterRules([ { diff --git a/src-ui/src/app/components/document-list/document-list.component.ts b/src-ui/src/app/components/document-list/document-list.component.ts index 358d94547..48e4841f3 100644 --- a/src-ui/src/app/components/document-list/document-list.component.ts +++ b/src-ui/src/app/components/document-list/document-list.component.ts @@ -270,9 +270,12 @@ export class DocumentListComponent this.list.reload() }) - this.websocketStatusService.onDocumentDeleted().subscribe(() => { - this.list.reload() - }) + this.websocketStatusService + .onDocumentDeleted() + .pipe(takeUntil(this.unsubscribeNotifier)) + .subscribe(() => { + this.list.reload() + }) this.route.paramMap .pipe( diff --git a/src-ui/src/app/data/document-barcode.ts b/src-ui/src/app/data/document-barcode.ts new file mode 100644 index 000000000..5ec480229 --- /dev/null +++ b/src-ui/src/app/data/document-barcode.ts @@ -0,0 +1,7 @@ +export interface DocumentBarcode { + page: number + + value: string + + format: string +} diff --git a/src-ui/src/app/data/document-metadata.ts b/src-ui/src/app/data/document-metadata.ts index ea353e2ac..3aa635747 100644 --- a/src-ui/src/app/data/document-metadata.ts +++ b/src-ui/src/app/data/document-metadata.ts @@ -1,3 +1,5 @@ +import { DocumentBarcode } from './document-barcode' + export interface DocumentMetadata { original_checksum?: string @@ -12,4 +14,6 @@ export interface DocumentMetadata { has_archive_version?: boolean lang?: string + + barcodes?: DocumentBarcode[] } diff --git a/src-ui/src/app/data/document-suggestions.ts b/src-ui/src/app/data/document-suggestions.ts index 447c4402b..f29daff57 100644 --- a/src-ui/src/app/data/document-suggestions.ts +++ b/src-ui/src/app/data/document-suggestions.ts @@ -15,3 +15,33 @@ export interface DocumentSuggestions { dates?: string[] // ISO-formatted date string e.g. 2022-11-03 } + +const union = (a: T[] = [], b: T[] = []): T[] => [...new Set([...a, ...b])] + +export function mergeSuggestions( + a: DocumentSuggestions, + b: DocumentSuggestions +): DocumentSuggestions { + if (!a) return b + return { + title: a.title || b.title, + tags: union(a.tags, b.tags), + suggested_tags: union(a.suggested_tags, b.suggested_tags), + correspondents: union(a.correspondents, b.correspondents), + suggested_correspondents: union( + a.suggested_correspondents, + b.suggested_correspondents + ), + document_types: union(a.document_types, b.document_types), + suggested_document_types: union( + a.suggested_document_types, + b.suggested_document_types + ), + storage_paths: union(a.storage_paths, b.storage_paths), + suggested_storage_paths: union( + a.suggested_storage_paths, + b.suggested_storage_paths + ), + dates: union(a.dates, b.dates), + } +} diff --git a/src-ui/src/app/data/paperless-config.ts b/src-ui/src/app/data/paperless-config.ts index 690d7aa4e..99ca53821 100644 --- a/src-ui/src/app/data/paperless-config.ts +++ b/src-ui/src/app/data/paperless-config.ts @@ -330,6 +330,13 @@ export const PaperlessConfigOptions: ConfigOption[] = [ config_key: 'PAPERLESS_CONSUMER_TAG_BARCODE_SPLIT', category: ConfigCategory.Barcode, }, + { + key: 'barcode_store_values', + title: $localize`Store Barcode Contents`, + type: ConfigOptionType.Boolean, + config_key: 'PAPERLESS_CONSUMER_STORE_BARCODE_VALUES', + category: ConfigCategory.Barcode, + }, { key: 'ai_enabled', title: $localize`AI Enabled`, @@ -353,6 +360,14 @@ export const PaperlessConfigOptions: ConfigOption[] = [ config_key: 'PAPERLESS_AI_LLM_EMBEDDING_MODEL', category: ConfigCategory.AI, }, + { + key: 'llm_embedding_api_key', + title: $localize`LLM Embedding API Key`, + type: ConfigOptionType.Password, + note: $localize`Used for embeddings when set, otherwise LLM API key is used.`, + config_key: 'PAPERLESS_AI_LLM_EMBEDDING_API_KEY', + category: ConfigCategory.AI, + }, { key: 'llm_embedding_endpoint', title: $localize`LLM Embedding Endpoint`, @@ -450,6 +465,7 @@ export interface PaperlessConfig extends ObjectWithId { barcode_enable_tag: boolean barcode_tag_mapping: object barcode_tag_split: boolean + barcode_store_values: boolean remote_ocr_engine: string remote_ocr_api_key: string remote_ocr_endpoint: string @@ -457,6 +473,7 @@ export interface PaperlessConfig extends ObjectWithId { ai_enabled: boolean llm_embedding_backend: string llm_embedding_model: string + llm_embedding_api_key: string llm_embedding_endpoint: string llm_embedding_chunk_size: number llm_context_size: number diff --git a/src-ui/src/app/data/ui-settings.ts b/src-ui/src/app/data/ui-settings.ts index 5bc500872..32c5242bd 100644 --- a/src-ui/src/app/data/ui-settings.ts +++ b/src-ui/src/app/data/ui-settings.ts @@ -20,6 +20,12 @@ export enum GlobalSearchType { TITLE_CONTENT = 'title-content', } +export enum SuggestionSource { + ML = 'ml', + AI = 'ai', + Both = 'both', +} + export enum CollapsibleSection { ATTRIBUTES = 'attributes', } @@ -98,6 +104,8 @@ export const SETTINGS_KEYS = { 'general-settings:document-editing:overlay-thumbnail', DOCUMENT_EDITING_AUTO_SUGGEST: 'general-settings:document-editing:auto-suggest', + DOCUMENT_EDITING_SUGGESTION_SOURCE: + 'general-settings:document-editing:suggestion-source', DOCUMENT_DETAILS_HIDDEN_FIELDS: 'general-settings:document-details:hidden-fields', SEARCH_DB_ONLY: 'general-settings:search:db-only', @@ -326,6 +334,11 @@ export const SETTINGS: UiSetting[] = [ type: 'boolean', default: true, }, + { + key: SETTINGS_KEYS.DOCUMENT_EDITING_SUGGESTION_SOURCE, + type: 'string', + default: SuggestionSource.AI, + }, { key: SETTINGS_KEYS.DOCUMENT_DETAILS_HIDDEN_FIELDS, type: 'array', diff --git a/src-ui/src/locale/messages.af_ZA.xlf b/src-ui/src/locale/messages.af_ZA.xlf index 273f3f491..0d633be5e 100644 --- a/src-ui/src/locale/messages.af_ZA.xlf +++ b/src-ui/src/locale/messages.af_ZA.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Sluit - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Vorige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Volgende Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Kies maand Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Kies jaar Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Vorige maand Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Volgende maand «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Eerste Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Vorige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Volgende Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Laaste @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Uur MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minute Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Vermeerder ure Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Verminder ure Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Vermeerder minute @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Verminder minute @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekondes @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Vermeerder sekondes @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Verminder sekondes @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Sluit @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Massawysiging @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Toon bevestigingsdialoë @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Pas toe by sluit @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Aktiveer notas @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Default Owner @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Default Edit Permissions @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Dokumentverwerking @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Toon kennisgewings wanneer nuwe dokumente bespeur is @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Toon kennisgewings wanneer dokumentverwerking suksesvol voltooi is @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Toon kennisgewings wanneer dokumentverwerking misluk @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Onderdruk kennisgewings op paneelbord @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Dit sal alle boodskappe oor dokumentverwerking op die paneelbord onderdruk. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Gebruik stelseltaal @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Gebruik datumformaat van aansigtaal @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Argiefreeksnommer @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Instellings is suksesvol bewaar. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Instellings is suksesvol bewaar. Moet herlaai word om sommige veranderinge toe te pas. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Herlaai nou @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Voorskou @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tipe @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Bladsy + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Inhoud + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Volgende @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Details @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Datum geskep @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Verstek - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Inhoud - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Datum gewysig @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Datum toegevoeg @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Medialêernaam @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Oorspronklike lêernaam @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Oorspronklike lêergrootte @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Oorspronklike MIME-tipe @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Lêergrootteargief + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Oorspronklike dokumentmetadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Geargiveerdedokumentmetadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Bewaar & volgende @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Verwerp @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Voer wagwoord in @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Fout by ophaal van metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Fout by die laai van die inhoud: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Fout by ophaal van voorstelle. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Fout by bewaar van dokument @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Aansig “” suksesvol bewaar. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Aansig “” suksesvol geskep. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Vorige @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Einde diff --git a/src-ui/src/locale/messages.am_ET.xlf b/src-ui/src/locale/messages.am_ET.xlf index 3092a53f1..87be48325 100644 --- a/src-ui/src/locale/messages.am_ET.xlf +++ b/src-ui/src/locale/messages.am_ET.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Close - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Previous Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Next Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Select month Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Select year Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Previous month Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Next month «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 First Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Previous Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Next Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Last @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Hours MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutes Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Increment hours Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Decrement hours Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment minutes @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement minutes @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Seconds @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment seconds @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement seconds @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Close @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Bulk editing @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Show confirmation dialogs @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Apply on close @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Enable notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Default Owner @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Default Edit Permissions @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Document processing @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when new documents are detected @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when document processing completes successfully @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Show notifications when document processing fails @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Suppress notifications on dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about document processing status on the dashboard. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Use system language @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Use date format of display language @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archive serial number @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Settings were saved successfully. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Settings were saved successfully. Reload is required to apply some changes. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Reload now @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Page + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Content + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Next @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Details @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Date created @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Default - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Content - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Date modified @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Date added @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media filename @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Original filename @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Original file size @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Original mime type @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archive file size + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Original document metadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Archived document metadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Save & next @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Discard @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Enter Password @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Prev @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 End diff --git a/src-ui/src/locale/messages.ar_AR.xlf b/src-ui/src/locale/messages.ar_AR.xlf index f5eb15ea2..25969ec39 100644 --- a/src-ui/src/locale/messages.ar_AR.xlf +++ b/src-ui/src/locale/messages.ar_AR.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 إغلاق - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 السابق Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 التالي Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 تحديد الشهر Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 اختر السنة Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 الشهر السابق Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 الشهر التالي «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 الأول Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 السابق Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 التالي Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 الأخير @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ساعات MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 دقائق Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 زيادة الساعات Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 إنقاص الساعات Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 زيادة الدقائق @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 إنقاص الدقائق @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 ثوانٍ @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 زيادة الثواني @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 إنقاص الثواني @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 إغلاق @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ إزالة وسم (وسوم) صندوق الوارد تلقائياً عند الحفظ + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 تعديل متعدد @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 إظهار تأكيد الحِوَارات @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 تطبيق عند الإغلاق @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 تمكين الملاحظات @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 الصلاحيات الافتراضية @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 المالك الافتراضي @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 صلاحيات العرض الافتراضية @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 صلاحيات ‏التعديل الافتراضية @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 معالجة المستندات @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 إظهار الإشعارات عند وجود مستندات جديدة @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 إظهار الإشعارات عند اكتمال معالجة المستندات بنجاح @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 إظهار الإشعارات عند فشل معالجة المستندات @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 منع الإشعارات في لوحة التحكم @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 سيؤدي هذا إلى إلغاء جميع الرسائل حول حالة معالجة المستندات في لوحة التحكم. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 استخدم لغة النظام @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 استخدم تنسيق تاريخ لغة العرض @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 الرقم التسلسلي للأرشيف @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 حُفظت الإعدادات بنجاح. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 حفظت الإعدادات بنجاح. إعادة تحميل مطلوب لتطبيق بعض التغييرات. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 إعادة تحميل الآن @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 معاينة @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + اكتب @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ أنواع المستند - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ صفحة + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + محتوى + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 التالي @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 تفاصيل @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 تاريخ الإنشاء @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ الافتراضي - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - محتوى - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 تاريخ التعديل @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 تاريخ الإضافة @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 اسم ملف الوسائط @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 اسم الملف الأصلي @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 حجم الملف الأصلي @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 نوع mime الأصلي @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 حجم ملف الأرشيف + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 بيانات التعريف للمستند الأصلي @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 بيانات التعريف للمستند الأصلي @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 السجل التاريخي @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 حفظ & التالي @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 حفظ وإغلاق @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 تجاهل @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 أدخل كلمة المرور @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 خطأ في استرجاع البيانات الوصفية @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 حدث خطأ في تحميل المحتوى @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 المستند التالي @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 المستند السابق @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 حفظ المستند @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 خطأ في استرداد الاقتراحات. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 تم حفظ المستند "بنجاح. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 خطأ أثناء حفظ المستند @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 خطأ أثناء حذف المستند @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 ستؤدي هذه العملية إلى إعادة إنشاء ملف الأرشيف لهذا المستند بشكل دائم. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 سيتم إعادة إنشاء ملف الأرشيف بالإعدادات الحالية. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 خطأ أثناء تنفيذ العملية @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 احتواء الصفحة @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 إعادة تعيين المرشحات / التحديد @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 فتح أول مستند [محدد] @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 عرض "" حفظ بنجاح. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 فشل في حفظ طريقة العرض "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 عرض "" أنشئ بنجاح. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 السابق @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 النهاية diff --git a/src-ui/src/locale/messages.be_BY.xlf b/src-ui/src/locale/messages.be_BY.xlf index fcdeff973..e50e1c186 100644 --- a/src-ui/src/locale/messages.be_BY.xlf +++ b/src-ui/src/locale/messages.be_BY.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Закрыць - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Папярэдняя Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Наступная Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Абраць месяц Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Абраць год Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Папярэдні месяц Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Наступны месяц «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Першы Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Папярэдняя Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Наступная Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 На апошнюю @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Гадзіны MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Хвіліны Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Прыбавіць гадзіну Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Адняць гадзіну Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Прыбавіць хвіліну @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Адняць хвіліну @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Секунды @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Прыбавіць секунду @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Адняць секунду @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Закрыць @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Масавае рэдагаванне @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Паказаць дыялогавыя акно пацверджання @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Ужыць пры зачыненні @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Enable notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Default Owner @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Default Edit Permissions @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Апрацоўка дакумента @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Паказваць апавяшчэнні пры выяўленні новых дакументаў @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Паказваць апавяшчэнні, калі апрацоўка дакумента завершана паспяхова @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Паказваць апавяшчэнні, калі апрацоўка дакумента няўдалая @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Схаваць апавяшчэння на галоўнай панэлі @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Гэта адключыць усе паведамленні аб статуце апрацоўкі дакументаў на галоўнай панэлі. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Выкарыстоўваць мову сістэмы @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Выкарыстоўваць фармат даты мовы адлюстравання @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Парадкавы нумар архіва @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Налады былі паспяхова захаваны. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Налады былі паспяхова захаваны. Каб прымяніць некаторыя змены, патрабуецца перазагрузка. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Перазагрузіць зараз @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Старонка + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Змест + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Наступная @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Падрабязнасці @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Дата стварэння @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Па змаўчанні - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Змест - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Дата змянення @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Дата дадання @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Імя медыяфайла @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Арыгінальная назва файла @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Арыгінальны памер файла @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Арыгінальны MIME тып @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Памер файла архіва + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Арыгінальныя метададзеныя дакумента @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Метададзеныя архіўнага дакумента @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Захаваць & наступны @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Адхіліць @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Увядзіце пароль @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Прагляд "" паспяхова захаваны. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Прагляд "" створаны паспяхова. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Prev @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 End diff --git a/src-ui/src/locale/messages.bg_BG.xlf b/src-ui/src/locale/messages.bg_BG.xlf index 21f74d4ef..86613a73a 100644 --- a/src-ui/src/locale/messages.bg_BG.xlf +++ b/src-ui/src/locale/messages.bg_BG.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Затвори - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Назад Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Напред Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Изберете месец Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Изберете година Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Предишен месец Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Следващ месец «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Първи Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Предишен Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Напред Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Последен @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Часове MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ММ Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Минути Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Увеличете часове Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Намалете часовете Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Увеличете минутите @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Намалете минутите @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Секунди @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Увеличете секундите @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Намалете секундите @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Затвори @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Автоматично премахване на таг(ове) на входящата кутия при запазване + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Показване на миниатюра на документа по време на зареждане @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Групово редактиране @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Показване на диалогови прозорци за потвърждение @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Приложи при затваряне @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Включване на бележки @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Права по подразбиране @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Собственик по подразбиране @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Права за преглед по подразбиране @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Права за промяна по подразбиране @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Обработване на документ @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Показване на известия, когато са засечени нови документи @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Показване на известия, когато обработката на документ приключи успешно @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Показване на известия, когато обработката на документ се провали @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Потискане на известията в таблото за управление @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Това ще потисне всички съобщения за състоянието на обработка на документи в таблото за управление. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Използване на системния език @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Използване на формата за дата от езика на показване @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Сериен номер на архива @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Настройките са запазени успешно. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Настройките са запазени успешно. Нужно е презареждане, за да влязат в сила. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Презареждане веднага @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Преглед @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Тип @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Типове документи - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Страница + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Съдържание + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Напред @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Подробности @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Дата на създаване @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ По подразбиране - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Съдържание - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Дата на промяна @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Дата на добавяне @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Име на медиен файл @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Оригинално име на файла @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Оригинален размер на файла @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Оригинален mime тип @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Размер на архива + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Оригинални метаданни на документ @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Архивирани метаданни на документа @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 История @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Запази & следващото @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Запази & затвори @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Откажи @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Зареждане на документи... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Въведете парола @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Грешка при извличане на метаданни @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Възникна грешка при зареждане на съдържание: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Следващ документ @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Предишен документ @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Запазете документ @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Запази и затвори / следващ @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Грешка при извличане на предложения. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Документ "" запазен успешно. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Грешка при запазване на документа @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Грешка при изтриване на документа @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Тази операция ще пресъздаде архивен файл за този документ. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Архивният файл ще бъде отново генериран с текущите настройки. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Грешка при изпълнение на операцията @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Грешка при изтегляне на документа @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Побиране на страницата @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Възникна грешка при зареждането на tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Нулиране на филтри/селекция @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Отворете първия [selected] документ @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Предишна страница @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Следваща страница @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Изглед "" записан успешно. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Неуспешно запазване на изгледа "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Изглед "" създаден успешно. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Назад @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Край diff --git a/src-ui/src/locale/messages.ca_ES.xlf b/src-ui/src/locale/messages.ca_ES.xlf index d00464902..62becca9f 100644 --- a/src-ui/src/locale/messages.ca_ES.xlf +++ b/src-ui/src/locale/messages.ca_ES.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Tanca - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Anterior Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Següent Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Seleccioneu mes Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Seleccioneu un any Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Mes anterior Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Mes següent «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Primer Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Anterior Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Següent Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Últim @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Hores MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuts Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Incrementa hores Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Disminuir hores Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrementar minuts @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Disminuir minuts @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Segons @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrementar segons @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Disminuir segons @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Tanca @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Eliminar etiqueta d'entrada al desar + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Mostra la miniatura del document durant la càrrega @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Camps integrats a mostrar: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Desmarca camps per amagar-los a la pàgina de detalls de documents. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Edició massiva @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Mostra diàlegs de confirmació @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Aplica al tancar @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Editor PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Mode d'edició predeterminat @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Activa les notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Permisos per defecte @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Propietari per defecte @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Permisos per defecte de visionat @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Edita permisos per defecte @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Processat dels documents @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Mostra notificacions quan es detectin documents nous @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Mostra notificacions quan es processin documents correctament @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Mostra notificacions quan falli el processament de document @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Suprimeix les notificacions del tauler @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Això suprimirà tots els missatges sobre l'estat del processament de documents al tauler. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Utilitza l'idioma del sistema @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Utilitza el format de data de l'idioma @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Número de sèrie de l'arxiu @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Configuració guardada amb èxit. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 La configuració desada correctament. Cal tornar a carregar per aplicar alguns canvis. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Recarrega ara @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Treure protecció de contrasenya @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Crear una còpia desprotegida de l'arxiu existent. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Inici @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Vista prèvia @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tipus @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Sense suggeriments @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggerir @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Mostra suggeriments @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Cap suggeriment de novetats @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Tipus de documents - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Pàgina + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Contingut + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Següent @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detalls @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Data de creació @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Per defecte - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Contingut - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Data modificació @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Data afegit @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Nom Arxiu @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Nom arxiu original @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Mida arxiu original @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Tipus mímic original @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Mida arxiu arxivat + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadades del document original @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadades del document arxivat @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Historial @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicats @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Detectats documents duplicats: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 A la brossa @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Desa i següent @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Desa i tanca @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Descarta @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document carregant... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Introdueix Contrasenya @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error recuperant les metadades @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Error carregant contingut: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document Actualitzat @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document actualitzat a . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Recarrega per descartar les edicions locals no desades i carregar la darrera versió remota. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Recarrega @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document recarregat amb els darrers reptes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document recarregat. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Següent document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Document Anterior @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Desar Document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Desa i tanca/següent @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error recuperant el contingut de la versió @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error recuperant els suggeriments. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" desat satisfactòriament. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error desant document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error guardant document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error esborrant document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Aquesta operació recrearà l'arxivat per aquest document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Els arxius arxivats seran regenerats amb les opcions actuals. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executant operació @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error descarregant document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Encaix Pàgina @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 Operació d'edició de PDF per "" començarà en segon pla. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error en executar l'edició del PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Entra la contrasenya actual abans d'intentar treure-la. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executant l'operació de treure contrasenya @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Impressió fallida. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error carregant document per imprimir. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Error al carregar tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reseteja filtres / selecció @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Obrer el primer [seleccionat] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Pàgina anterior @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Pàgina següent @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Vista "" desada correctament. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Error desant vista "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Vista "" creada correctament. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Vista "" creada correctament, però no s'ha pogut actualitzar la configuració de visibilitat. @@ -13266,11 +13370,19 @@ Divideix als codis de barres + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 IA Activada @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Tingues en compte implicacions de privadesa a l'hora d'habilitar les funcions d'IA, especialment amb models remots. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Backend d'incrustació LLM @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Model d'incrustació LLM + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 Punt final d'incrustació de LLM @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 Mida del fragment d'incrustació de LLM @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 Mida del context de LLM @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 Backend de LLM @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 Model LLM @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 Clau API LLM @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 Punt final LLM @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 Idioma de sortida de LLM @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Idioma que s'utilitzarà per als suggeriments d'IA generats. Quan no està definit, els suggeriments d'IA utilitzen l'idioma de visualització de l'usuari si està definit explícitament. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Anterior @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Acabar diff --git a/src-ui/src/locale/messages.cs_CZ.xlf b/src-ui/src/locale/messages.cs_CZ.xlf index 12fabf898..7f87ad023 100644 --- a/src-ui/src/locale/messages.cs_CZ.xlf +++ b/src-ui/src/locale/messages.cs_CZ.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Zavřít - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Předchozí Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Následující Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Vybrat měsíc Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Vybrat rok Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Předchozí měsíc Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Následující měsíc «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 První Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Předchozí Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Následující Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Poslední @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Hodin MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuty Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Zvýšení počtu hodin Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Snížení počtu hodin Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Zvýšení počtu minut @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Snížení počtu minut @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekundy @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Zvýšení počtu sekund @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Snížení počtu sekund @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Zavřít @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automaticky odstranit štítky doručené pošty při uložení + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automaticky vyžadovat návrhy pro dokumenty ve schránce @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 Pokud není zaškrtnuto, je nutné návrhy vyžádat pomocí tlačítka „Navrhnout“. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Zobrazit náhled dokumentu během načítání @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Vestavěná pole k zobrazení: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Zrušte zaškrtnutí polí pro jejich skrytí na stránce s podrobnostmi o dokumentu. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Hromadné úpravy @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Zobrazit potvrzovací dialogy @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Aplikovat při zavření @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Editor PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Výchozí režim úprav @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Povolit poznámky @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Výchozí oprávnění @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Nastavení se vztahuje na tento uživatelský účet a na objekty (štítky, pravidla pošty apod.) vytvořené prostřednictvím webového rozhraní. Tato nastavení se nevztahují na dokumenty. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Výchozí vlastník @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Výchozí oprávnění k zobrazení @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Výchozí oprávnění k úpravě @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Zpracovávání dokumentu @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Zobrazit oznámení, když jsou zjištěny nové dokumenty @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Zobrazit oznámení při úspěšném dokončení zpracování dokumentu @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Zobrazit oznámení, když zpracování dokumentu selže @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Potlačit oznámení na nástěnce @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Toto potlačí všechny zprávy o stavu zpracování dokumentu na nástěnce. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Použít systémový jazyk @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Použít formát data jazyka zobrazení @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Sériové číslo archivu @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Nastavení byla úspěšně uložena. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Nastavení byla úspěšně uložena. Pro použití některých změn je vyžadováno opětovné načtení. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Znovu načíst nyní @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Odstranit ochranu heslem @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Vytvořit nechráněnou kopii nebo nahradit existující soubor. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Spustit @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Náhled @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Typ @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Navrhnout @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Zobrazit návrhy @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Typy dokumentů - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Strana + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Obsah + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Další @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Podrobnosti @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Vytvořeno @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Výchozí - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Obsah - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Datum úpravy @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Datum přidání @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Název souboru @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Původní název souboru @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Původní kontrolní součet SHA256 @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Původní velikost souboru @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Původní typ mime @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archivní kontrolní součet SHA256 @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Velikost souboru archivu + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadata původního dokumentu @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadata archivovaného dokumentu @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Historie @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Zjištěny duplicitní dokumenty: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 V koši @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Uložit a další @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Uložit a zavřít @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Zrušit @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Načítání dokumentu... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Zadejte heslo @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Chyba při načítání metadat @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Při načítání obsahu došlo k chybě: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Další dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Předchozí dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Uložit dokument @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Uložit a zavřít/další @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Chyba při načítání návrhů. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokument „“ úspěšně uložen. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Chyba při ukládání dokumentu @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Chyba při mazání dokumentu @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Tato operace trvale obnoví archivní soubor pro tento dokument. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Archivní soubor bude znovu vytvořen s aktuálním nastavením. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Chyba při provádění operace @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Chyba při stahování dokumentu @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Přizpůsobení stránky @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Chyba při provádění operace editace PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Zadejte aktuální heslo před pokusem o jeho odstranění. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Chyba při provádění operace odstranění hesla @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Tisk selhal. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Chyba při načítání dokumentu pro tisk. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Došlo k chybě při načítání tiff: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Resetovat filtry / výběr @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Otevřít první [vybraný] dokument @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Předchozí stránka @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Další stránka @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Zobrazení "" bylo úspěšně uloženo. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Nepodařilo se uložit pohled „“. @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Zobrazení "" bylo úspěšně vytvořeno. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Pohled „“ úspěšně vytvořen, nepodařilo se ale aktualizovat nastavení viditelnosti. @@ -13265,11 +13369,19 @@ Rozdělení podle čárových kódů štítků + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI povoleno @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Při aktivaci funkcí umělé inteligence zvažte dopady na ochranu osobních údajů, zejména pokud používáte vzdálený model. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Backend pro vkládání LLM @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Model vkládání LLM + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 Koncový bod vkládání LLM @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 Velikost bloku vkládání LLM @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 Velikost kontextu LLM @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 Backend LLM @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 Model LLM @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 Klíč API LLM @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 Koncový bod LLM @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 Výstupní jazyk LLM @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Jazyk, který se má použít pro návrhy generované AI. Pokud není nastaveno, návrhy AI použijí jazyk zobrazení uživatele, je-li explicitně nastaven. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Čawsový limit žádosti LLM @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Časový limit v sekundách pro žádosti LLM. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Předchozí @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Konec diff --git a/src-ui/src/locale/messages.da_DK.xlf b/src-ui/src/locale/messages.da_DK.xlf index 35cdfd4c1..e124c50d4 100644 --- a/src-ui/src/locale/messages.da_DK.xlf +++ b/src-ui/src/locale/messages.da_DK.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Luk - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Forrige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Næste Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Vælg måned Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Vælg år Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Forrige måned Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Næste måned «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Første Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Forrige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Næste Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Sidste @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Timer MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutter Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Forøg timer Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Reducer timer Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Forøg minutter @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Reducer minutter @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunder @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Forøg sekunder @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Reducer sekunder @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Luk @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Masse redigering @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Vis bekræftelsesdialoger @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Anvend ved lukning @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Enable notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Default Owner @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Default Edit Permissions @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Dokumentbehandling @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Vis notifikationer når nye dokumenter registreres @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Vis notifikationer når dokumentbehandling er fuldført @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Vis notifikationer når dokumentbehandling fejler @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Undertryk notifikationer på betjeningspanelet @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Dette vil undertrykke alle meddelelser om dokumentbehandlingsstatus på betjeningspanelet. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Benyt systemsprog @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Benyt datoformat for visningssprog @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Arkiv serienummer @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Settings were saved successfully. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Settings were saved successfully. Reload is required to apply some changes. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Reload now @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Side + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Indhold + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Næste @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detaljer @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Oprettelsesdato @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Default - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Indhold - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Ændringsdato @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Tilføjelsesdato @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Filnavn for medie @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Original filename @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Original filstørrelse @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Original mimetype @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Arkiv filstørrelse + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Original dokumentmetadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Arkiveret dokumentmetadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Gem & næste @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Forkast @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Indtast adgangskode @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Visning "" er gemt. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Visning "" er oprettet. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Forrige @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 End diff --git a/src-ui/src/locale/messages.de_CH.xlf b/src-ui/src/locale/messages.de_CH.xlf index 4a5ffe4ec..89de7547a 100644 --- a/src-ui/src/locale/messages.de_CH.xlf +++ b/src-ui/src/locale/messages.de_CH.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Schliessen - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Vorherige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Nächste Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Monat auswählen Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Jahr auswählen Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Vorheriger Monat Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Nächster Monat «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Erste Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Vorherige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Nächste Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Letzte @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stunden MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuten Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stunden erhöhen Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stunden verringern Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minuten erhöhen @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minuten verringern @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunden @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunden erhöhen @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunden verringern @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Schliessen @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Posteingangs-Tag(s) beim Speichern automatisch entfernen + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Dokumenten-Miniaturansicht beim Laden anzeigen @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Integrierte Felder anzeigen: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Felder deaktivieren, um sie auf der Dokumentendetailseite auszublenden. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Massenbearbeitung @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Bestätigungsdialoge anzeigen @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Anwenden beim Schliessen @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF-Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Standard-Bearbeitungsmodus @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Notizen aktivieren @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Standardberechtigungen @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Standardeigentümer @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Standard-Anzeigeberechtigungen @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Standard-Bearbeitungsberechtigungen @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Dokumentverarbeitung @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Benachrichtigungen anzeigen, wenn neue Dokumente erkannt werden @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Benachrichtigungen anzeigen, wenn die Dokumentenverarbeitung erfolgreich abgeschlossen wurde @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Benachrichtigungen anzeigen, wenn die Dokumentenverarbeitung fehlgeschlagen ist @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Unterdrücke Benachrichtigungen auf der Startseite @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Dadurch werden alle Benachrichtigungen über die Dokumentenverarbeitung auf der Startseite unterdrückt. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Systemsprache verwenden @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Datumsformat der Anzeigesprache verwenden @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archiv-Seriennummer @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Einstellungen wurden erfolgreich gespeichert. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Einstellungen wurden erfolgreich gespeichert. Es ist erforderlich, die Seite neu zu laden, um einige Änderungen zu übernehmen. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Jetzt neu laden @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Kennwortschutz entfernen @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Ungeschützte Kopie erstellen oder bestehende Datei ersetzen. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Starten @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Vorschau @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Typ @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Vorschlagen @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Vorschläge anzeigen @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Keine neuen Vorschläge @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Dokumenttypen - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Seite + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Inhalt + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Weiter @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Details @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Ausstellungsdatum @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Standard - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Inhalt - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Geändert am @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Hinzugefügt am @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media-Dateiname @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Ursprünglicher Dateiname @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Dateigrösse Original @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 MIME-Typ Original @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Dateigrösse Archiv + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadaten Original @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadaten Archiv @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Verlauf @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Doppelte Dokumente erkannt: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 Im Papierkorb @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Speichern & weiter @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Speichern & schliessen @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Verwerfen @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Dokument wird geladen... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Kennwort eingeben @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Fehler beim Abrufen der Metadaten @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Fehler beim Laden des Inhalts: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Dokument aktualisiert @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Dokument aktualisiert am . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Neu laden, um lokale ungespeicherte Änderungen zu verwerfen und aktuellste gespeicherte Version zu laden. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Neu laden @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Dokument mit den neuesten Änderungen neu geladen. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Dokument neu geladen. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Nächstes Dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Vorheriges Dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Dokument speichern @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Speichern und schliessen / weiter @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Fehler beim Abrufen des Versionsinhalts @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Fehler beim Abrufen der Vorschläge. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokument „“ erfolgreich gespeichert. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Fehler beim Speichern des Dokuments @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Fehler beim Löschen des Dokuments @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Dieser Vorgang wird die Archivdatei dieses Dokuments unwiderruflich neu erstellen. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Die Archivdatei wird mit den aktuellen Einstellungen neu generiert. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Fehler beim Ausführen der Aktion @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Fehler beim Herunterladen des Dokuments @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Seite einpassen @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Fehler beim Ausführen der PDF-Bearbeitung @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Bitte geben Sie das aktuelle Kennwort ein, bevor Sie versuchen, es zu entfernen. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Fehler beim Entfernen des Kennworts @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Drucken fehlgeschlagen. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Fehler beim Laden des Dokuments für den Druck. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Fehler beim Laden des TIFF: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Filter / Auswahl zurücksetzen @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Erstes [ausgewähltes] Dokument öffnen @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Vorherige Seite @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Nächste Seite @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Ansicht „“ erfolgreich gespeichert. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Fehler beim Speichern der Ansicht „“. @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Ansicht „“ erfolgreich erstellt. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Ansicht „“ wurde erfolgreich erstellt, die Sichtbarkeitseinstellungen konnten jedoch nicht aktualisiert werden. @@ -13265,11 +13369,19 @@ Mithilfe von Tag-Barcodes aufteilen + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 KI aktiviert @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Berücksichtigen Sie die Auswirkungen auf die Privatsphäre der Benutzer, wenn Sie KI-Funktionen aktivieren, insbesondere wenn Sie ein nicht lokales Modell verwenden. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Einbettungs-Backend @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM-Einbettungsmodell + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM-Backend @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM-Modell @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API-Schlüssel @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM-Endpunkt @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Zurück @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Ende diff --git a/src-ui/src/locale/messages.de_DE.xlf b/src-ui/src/locale/messages.de_DE.xlf index 44c3443c2..14dd96799 100644 --- a/src-ui/src/locale/messages.de_DE.xlf +++ b/src-ui/src/locale/messages.de_DE.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Schließen - - Slide of + + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Folie von + Folie von Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Vorherige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Nächste Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Monat auswählen Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Jahr auswählen Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Vorheriger Monat Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Nächster Monat «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Erste Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Vorherige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Nächste Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Letzte @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stunden MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuten Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stunden erhöhen Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stunden verringern Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minuten erhöhen @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minuten verringern @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunden @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunden erhöhen @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunden verringern @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Schließen @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -565,37 +565,37 @@ Lesen Sie die Dokumentation zu dieser Einstellung - + This value overrides , which is set outside Paperless. src/app/components/admin/config/config.component.html 35 - This value overrides , which is set outside Paperless. + Dieser Wert überschreibt , der außerhalb von Paperless festgelegt ist. - + is set outside Paperless. Enter a value here to override it. src/app/components/admin/config/config.component.html 37 - is set outside Paperless. Enter a value here to override it. + ist außerhalb von Paperless festgelegt. Geben Sie hier einen Wert ein, um ihn zu überschreiben. - + Use the externally configured value src/app/components/admin/config/config.component.html 42 - Use the externally configured value + Den extern konfigurierten Wert verwenden - + Reset to external src/app/components/admin/config/config.component.html 43 - Reset to external + Auf extern zurücksetzen Reset @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1129,13 +1129,13 @@ Benutze schlanke Seitenleiste (nur Symbole) - + Sidebar items to show: src/app/components/admin/settings/settings.component.html 115,116 - Sidebar items to show: + Anzuzeigende Elemente in der Seitenleiste: Dark mode @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,27 +1397,59 @@ Posteingangs-Tag(s) beim Speichern automatisch entfernen - + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Standard für Vorschläge + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Beides + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + Nur ML + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + Nur KI + + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 - Automatically request suggestions for inbox documents + Automatische Vorschläge für Posteingangsdokumente anfordern If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 - If un-checked, suggestions must be requested via the Suggest button. + Wenn diese Option nicht aktiviert ist, müssen Vorschläge über die Schaltfläche Vorschläge angefordert werden. Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Dokumenten-Miniaturansicht beim Laden anzeigen @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Integrierte Felder anzeigen: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Felder deaktivieren, um sie auf der Dokumentendetailseite auszublenden. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Massenbearbeitung @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Bestätigungsdialoge anzeigen @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Anwenden beim Schließen @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF-Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Standard-Bearbeitungsmodus @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Notizen aktivieren @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,23 +1629,23 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Standardberechtigungen - + Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 - Die Einstellungen gelten für dieses Benutzerkonto in Bezug auf Objekte (Tags, E-Mail-Regeln usw.), die über die Weboberfläche erstellt wurden. Diese Einstellungen gelten nicht für Dokumente. + Die Einstellungen gelten für dieses Benutzerkonto in Bezug auf Objekte (Tags, E-Mail-Regeln usw.), die über die Weboberfläche erstellt wurden. Diese Einstellungen gelten nicht für Dokumente. Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Standardeigentümer @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Standard-Anzeigeberechtigungen @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Standard-Bearbeitungsberechtigungen @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Dokumentverarbeitung @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Benachrichtigungen anzeigen, wenn neue Dokumente erkannt werden @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Benachrichtigungen anzeigen, wenn die Dokumentenverarbeitung erfolgreich abgeschlossen wurde @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Benachrichtigungen anzeigen, wenn die Dokumentenverarbeitung fehlgeschlagen ist @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Unterdrücke Benachrichtigungen auf der Startseite @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Dadurch werden alle Benachrichtigungen über die Dokumentenverarbeitung auf der Startseite unterdrückt. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Systemsprache verwenden @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Datumsformat der Anzeigesprache verwenden @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archiv-Seriennummer @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Einstellungen wurden erfolgreich gespeichert. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Einstellungen wurden erfolgreich gespeichert. Es ist erforderlich, die Seite neu zu laden, um einige Änderungen zu übernehmen. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Jetzt neu laden @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -2849,13 +2881,13 @@ Massenlöschung - + Apply AI Suggestions src/app/components/admin/tasks/tasks.component.ts 104 - KI-Vorschläge anwenden + KI-Vorschläge anwenden Scheduled @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -3893,7 +3925,7 @@ Zusatzfelder - + Share links src/app/components/app-frame/app-frame.component.html @@ -3907,7 +3939,7 @@ src/app/components/manage/share-links/share-links.component.html 2,3 - Share Links + Freigabelinks Administration @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Kennwortschutz entfernen @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Ungeschützte Kopie erstellen oder bestehende Datei ersetzen. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Starten @@ -4531,7 +4563,7 @@ src/app/components/common/confirm-dialog/rotate-confirm-dialog/rotate-confirm-dialog.component.html 19 - Im Uhrzeigersinn Rotieren + Im Uhrzeigersinn rotieren Note that only PDFs will be rotated. @@ -4799,7 +4831,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 12 - Clear created relative date + Erstelltes relatives Datum löschen Relative dates @@ -4819,7 +4851,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 37 - Clear created from date + Erstelltes von Datum löschen From @@ -4839,7 +4871,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 47 - Open created from date picker + Erstellte von Datumsauswahl öffnen Clear created to date @@ -4847,7 +4879,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 61 - Clear created to date + Erstellte bis Datumsauswahl löschen To @@ -4867,7 +4899,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 71 - Open created to date picker + Erstellte bis Datumsauswahl öffnen Added @@ -4899,7 +4931,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 89 - Clear added relative date + Erstelltes relatives Datum löschen Clear added from date @@ -4907,7 +4939,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 114 - Clear added from date + Hinzugefügt von Datum löschen Open added from date picker @@ -4915,7 +4947,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 124 - Open added from date picker + Hinzugefügt von Datumsauswahl öffnen Clear added to date @@ -4923,7 +4955,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 138 - Clear added to date + Hinzugefügt bis Datum löschen Open added to date picker @@ -4931,7 +4963,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 148 - Open added to date picker + Hinzugefügt bis Datumsauswahl öffnen now @@ -5837,13 +5869,13 @@ Fehler beim Abrufen der Korrespondenten - + Error retrieving document types src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts 195 - Error retrieving document types + Fehler beim Abrufen der Dokumenttypen Create new mail rule @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Vorschau @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Typ @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Keine Vorschläge @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Vorschlagen @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Vorschläge anzeigen @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Keine neuen Vorschläge @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Dokumenttypen - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, one {}=1 {1 existierender Wert unten vorgeschlagen} other { existierende Werte unten vorgeschlagen}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Vorschlagsoptionen + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Standardmäßig nicht verwenden + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Vorschlagen mit: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + KI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Seite + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Inhalt + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Inhalt kopieren + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Weiter @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Details @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Ausstellungsdatum @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Standard - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Inhalt - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Geändert am @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Hinzugefügt am @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media-Dateiname @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Ursprünglicher Dateiname @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256-Prüfsumme @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Dateigröße Original @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 MIME-Typ Original @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archiv SHA256-Prüfsumme @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Dateigröße Archiv + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadaten Original @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadaten Archiv @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notizen @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Verlauf @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplikate @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Doppelte Dokumente erkannt: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 Im Papierkorb @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Speichern & weiter @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Speichern & schließen @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Verwerfen @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Dokument wird geladen... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Kennwort eingeben @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Fehler beim Abrufen der Metadaten @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Fehler beim Laden des Inhalts: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Dokument aktualisiert @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Dokument aktualisiert am . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Neu laden, um lokale ungespeicherte Änderungen zu verwerfen und aktuellste gespeicherte Version zu laden. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Neu laden @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Dokument mit den neuesten Änderungen neu geladen. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Dokument neu geladen. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Nächstes Dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Vorheriges Dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Dokument speichern @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Speichern und schließen / weiter @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Fehler beim Abrufen des Versionsinhalts @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,39 +9725,39 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 Sie haben ungespeicherte Änderungen am Inhalt dieser Version. - + Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 - Switching versions will discard them. + Beim Versionswechsel werden diese verworfen. - + Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 - Discard and switch + Verwerfen und wechseln - + Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 - Save and switch + Speichern und wechseln Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Fehler beim Abrufen der Vorschläge. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokument „“ erfolgreich gespeichert. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Fehler beim Speichern des Dokuments „“ @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Fehler beim Speichern des Dokuments @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Möchten Sie das Dokument „“ wirklich in den Papierkorb verschieben? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Fehler beim Löschen des Dokuments @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Dieser Vorgang wird die Archivdatei dieses Dokuments unwiderruflich neu erstellen. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Die Archivdatei wird mit den aktuellen Einstellungen neu generiert. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Erneute Verarbeitung für „“ wird im Hintergrund gestartet. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Fehler beim Ausführen der Aktion @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Fehler beim Herunterladen des Dokuments @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Seite einpassen @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 Der Teilungsvorgang für „“ wird im Hintergrund gestartet. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Fehler beim Ausführen der PDF-Bearbeitung @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Bitte geben Sie das aktuelle Kennwort ein, bevor Sie versuchen, es zu entfernen. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Kennwortentfernung für „" wird im Hintergrund gestartet. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Fehler beim Entfernen des Kennworts @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Drucken fehlgeschlagen. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Fehler beim Laden des Dokuments für den Druck. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Fehler beim Laden des TIFF: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Filter / Auswahl zurücksetzen @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Erstes [ausgewähltes] Dokument öffnen @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Vorherige Seite @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Nächste Seite @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Ansicht „“ erfolgreich gespeichert. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Fehler beim Speichern der Ansicht „“. @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Ansicht „“ erfolgreich erstellt. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Ansicht „“ wurde erfolgreich erstellt, die Sichtbarkeitseinstellungen konnten jedoch nicht aktualisiert werden. @@ -12400,7 +12504,7 @@ Fehlerdetails anzeigen - + Expired src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html @@ -12410,7 +12514,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 40,41 - Expired + Abgelaufen Copy share link @@ -12454,7 +12558,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html 164,165 - Share link bundles pagination + Freigabelink-Pakete Seitennummerierung Failed to load share link bundles. @@ -12504,29 +12608,29 @@ Fehler beim Anfordern des Neuaufbaus. - + No document share links currently exist. src/app/components/manage/share-links/share-link-list/share-link-list.component.html 7,8 - No document share links currently exist. + Derzeit gibt es keine Dokumentenfreigabe-Links. - + Document src/app/components/manage/share-links/share-link-list/share-link-list.component.html 15,16 - Document + Dokument - + Delete share link src/app/components/manage/share-links/share-link-list/share-link-list.component.html 75,76 - Delete share link + Freigabelink löschen Share links pagination @@ -12534,39 +12638,39 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 104,105 - Share links pagination + Freigabelinks-Seitennummerierung - + Failed to load share links. src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 105 - Failed to load share links. + Fehler beim Laden des Freigabelinks. - + Error retrieving share links. src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 107 - Error retrieving share links. + Fehler beim Abrufen des Freigabelinks. - + Share link deleted. src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 154 - Share link deleted. + Freigabelink gelöscht. - + Error deleting share link. src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 159 - Error deleting share link. + Fehler beim Löschen des Freigabelinks. Manage public links to individual documents and document bundles. @@ -12582,15 +12686,15 @@ src/app/components/manage/share-links/share-links.component.html 18,19 - Document links + Dokumentenlinks - + Bundles src/app/components/manage/share-links/share-links.component.html 26,27 - Bundles + Pakete Use workflows to customize the behavior of Paperless-ngx when events 'trigger' a workflow. @@ -13265,11 +13369,19 @@ Mithilfe von Tag-Barcodes aufteilen + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Barcode-Inhalt speichern + AI Enabled src/app/data/paperless-config.ts - 335 + 342 KI aktiviert @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Berücksichtigen Sie die Auswirkungen auf die Privatsphäre der Benutzer, wenn Sie KI-Funktionen aktivieren, insbesondere wenn Sie kein lokales Modell verwenden. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Einbettungs-Backend @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM-Einbettungsmodell + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Einbettungs-API-Schlüssel + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Wird für Einbettungen genutzt, wenn gesetzt, ansonsten wird der LLM API-Schlüssel verwendet. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM-Einbettungsendpunkt @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM-Einbettungschunkgröße @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM-Kontextgröße @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM-Backend @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM-Modell @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API-Schlüssel @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM-Endpunkt @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM-Ausgabesprache @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Sprache, die für KI-Vorschläge verwendet werden soll. Wenn sie nicht gesetzt ist, verwenden KI-Vorschläge die Anzeigesprache des Benutzers, sofern diese explizit festgelegt ist. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM-Anfrage Zeitüberschreitung @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Zeiltimit in Sekunden für LLM-Anfragen. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Zurück @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Ende diff --git a/src-ui/src/locale/messages.el_GR.xlf b/src-ui/src/locale/messages.el_GR.xlf index d36ba5f03..80a5d8d1c 100644 --- a/src-ui/src/locale/messages.el_GR.xlf +++ b/src-ui/src/locale/messages.el_GR.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Κλείσιμο - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Προηγούμενο Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Επόμενο Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Επιλογή μήνα Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Επιλογή έτους Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Προηγούμενος μήνας Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Επόμενος μήνας «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Πρώτο Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Προηγούμενο Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Επόμενο Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Τελευταίο @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Ώρες MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ΜΜ Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Λεπτά Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Προσαύξηση ωρών Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Μείωση ωρών Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Προσαύξηση λεπτών @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Μείωση λεπτών @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Δευτερόλεπτα @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Προσαύξηση δευτερολέπτων @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Μείωση δευτερολέπτων @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Κλείσιμο @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Αυτόματη αφαίρεση ετικετών εισερχομένων κατά την αποθήκευση @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Μαζική επεξεργασία @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Εμφάνιση διαλόγων επιβεβαίωσης @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Εφαρμογή στο κλείσιμο @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Ενεργοποίηση σημειώσεων @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Προεπιλεγμένα δικαιώματα @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Προεπιλεγμένος Ιδιοκτήτης @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Προεπιλεγμένα Δικαιώματα Προβολής @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Προεπιλεγμένα Δικαιώματα Επεξεργασίας @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Επεξεργασία εγγράφων @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Εμφάνιση ειδοποιήσεων όταν εντοπίζονται νέα έγγραφα @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Εμφάνιση ειδοποιήσεων όταν η επεξεργασία εγγράφου ολοκληρώνεται με επιτυχία @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Εμφάνιση ειδοποιήσεων όταν η επεξεργασία του εγγράφου αποτυγχάνει @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Καταστολή ειδοποιήσεων στο ταμπλό @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Αυτό θα καταστείλει όλα τα μηνύματα σχετικά με την κατάσταση επεξεργασίας εγγράφων στο ταμπλό. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Χρήση γλώσσας συστήματος @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Χρησιμοποιήστε τη μορφή ημερομηνίας της γλώσσας εμφάνισης @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Αρχειοθέτηση σειριακού αριθμού @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Οι ρυθμίσεις αποθηκεύτηκαν επιτυχώς. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Οι ρυθμίσεις αποθηκεύτηκαν με επιτυχία. Απαιτείται επαναφόρτωση για να εφαρμοστούν κάποιες αλλαγές. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Επαναφόρτωση τώρα @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Προεπισκόπηση @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Τύπος @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Τύποι Εγγράφων - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Σελίδα + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Περιεχόμενο + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Επόμενο @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Λεπτομέρειες @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Ημερομηνία δημιουργίας @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Προεπιλογή - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Περιεχόμενο - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Ημερομηνία τροποποίησης @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Ημερομηνία προσθήκης @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Όνομα αρχείου πολυμέσων @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Πρωτότυπο όνομα αρχείου @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Αρχικό μέγεθος αρχείου @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Αρχικός τύπος mime @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Μέγεθος αρχείου αρχειοθέτησης + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Πρωτότυπα μεταδεδομένα εγγράφου @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Αρχειοθετημένα μεταδεδομένα εγγράφου @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Αποθήκευση & επόμενο @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Αποθήκευση & κλείσιμο @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Απόρριψη @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Εισαγωγή Κωδικού Πρόσβασης @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Σφάλμα ανάκτησης μεταδεδομένων @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Παρουσιάστηκε σφάλμα κατά τη φόρτωση του περιεχομένου: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Σφάλμα στην ανάκτηση προτάσεων. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Σφάλμα αποθήκευσης του εγγράφου @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Σφάλμα διαγραφής εγγράφου @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Σφάλμα εκτέλεσης λειτουργίας @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Η προβολή "" αποθηκεύτηκε επιτυχώς. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Η προβολή "" δημιουργήθηκε επιτυχώς. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Προηγ. @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Τέλος diff --git a/src-ui/src/locale/messages.es_ES.xlf b/src-ui/src/locale/messages.es_ES.xlf index 663ec6c44..df7bf55f8 100644 --- a/src-ui/src/locale/messages.es_ES.xlf +++ b/src-ui/src/locale/messages.es_ES.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Cerrar - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Anterior Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Siguiente Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Seleccionar mes Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Seleccionar año Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Mes anterior Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Mes siguiente «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Primero Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Anterior Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Siguiente Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Último @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Horas MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutos Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Incrementar horas Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Disminuir horas Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrementar minutos @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Disminuir minutos @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Segundos @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrementar segundos @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Disminuir segundos @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Cerrar @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Quitar automáticamente etiqueta(s) de la bandeja de entrada al guardar + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Mostrar la miniatura del documento durante la carga @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Editor multiple @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Mostrar diálogos de confirmación @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Aplicar al cerrar @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Editor de PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Habilitar notas @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Permisos por defecto @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Propietario por defecto @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Permisos de visualización por defecto @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Permisos de edición por defecto @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Procesado de documentos @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Mostrar notificaciones cuando nuevos documentos sean borrados @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Mostrar notificaciones cuando el procesado se complete satisfactoriamente @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Mostrar notificaciones cuando el procesado falle @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 No mostrar notificaciones en el panel de control @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Esto suprimirá todos los mensajes de estado de procesamiento en el panel de control. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Usar idioma del sistema @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Usar formato de fechas del idioma seleccionado @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Número de serie del archivo @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Los ajustes se han guardado correctamente. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Los ajustes se han guardado correctamente. Es necesario recargar para aplicar algunos cambios. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Recargar ahora @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Eliminar protección por contraseña @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Crear una copia sin protección o reemplazar el archivo existente. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Inicio @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Vista previa @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tipo @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Tipos de documentos - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Página + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Contenido + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Siguiente @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detalles @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Fecha de creación @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Por defecto - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Contenido - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Fecha de modificación @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Fecha de subida @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Nombre del fichero @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Nombre del archivo original @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Tamaño del fichero original @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Tipo MIME original @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Tamaño del archivo + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadatos originales @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadatos archivados @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Historial @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Guardar y continuar @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Guardar & cerrar @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Descartar @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Cargando documento... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Introducir contraseña @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error al recuperar los metadatos @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Se ha producido un error al cargar el contenido: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Documento siguiente @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Documento anterior @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Guardar documento @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Guardar y cerrar / siguiente @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error al recuperar las sugerencias. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Documento "" guardado correctamente. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error al guardar el documento @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error al eliminar documento @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Esta operación recreará permanentemente el archivo de archivo para este documento. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 El archivo se regenerará con la configuración actual. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error al ejecutar la operación @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error al descargar el documento @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Ajuste de página @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error al ejecutar la operación de edición PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Se ha producido un error al cargar el tif: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Restablecer filtros / selección @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Abrir primero documento [seleccionado] @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Página anterior @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Página siguiente @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Ver "" guardado satisfactoriamente. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 No se pudo guardar la vista "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Ver "" creado satisfactoriamente. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Anterior @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Fin diff --git a/src-ui/src/locale/messages.et_EE.xlf b/src-ui/src/locale/messages.et_EE.xlf index 9f7aa75df..d0bdda6cf 100644 --- a/src-ui/src/locale/messages.et_EE.xlf +++ b/src-ui/src/locale/messages.et_EE.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Close - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Previous Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Next Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Select month Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Select year Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Previous month Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Next month «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 First Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Previous Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Next Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Last @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Hours MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutes Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Increment hours Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Decrement hours Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment minutes @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement minutes @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Seconds @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment seconds @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement seconds @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Close @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Bulk editing @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Show confirmation dialogs @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Apply on close @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Enable notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Default Owner @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Default Edit Permissions @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Document processing @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when new documents are detected @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when document processing completes successfully @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Show notifications when document processing fails @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Suppress notifications on dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about document processing status on the dashboard. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Use system language @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Use date format of display language @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archive serial number @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Settings were saved successfully. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Settings were saved successfully. Reload is required to apply some changes. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Reload now @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Page + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Content + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Next @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Details @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Date created @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Default - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Content - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Date modified @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Date added @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media filename @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Original filename @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Original file size @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Original mime type @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archive file size + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Original document metadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Archived document metadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Save & next @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Discard @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Enter Password @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Prev @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 End diff --git a/src-ui/src/locale/messages.fa_IR.xlf b/src-ui/src/locale/messages.fa_IR.xlf index 8ea966ac5..678582610 100644 --- a/src-ui/src/locale/messages.fa_IR.xlf +++ b/src-ui/src/locale/messages.fa_IR.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 نزدیک - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 قبلی Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 طرف دیگر Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 ماه را انتخاب کنید Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 سال را انتخاب کنید Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 ماه قبل Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 ماه بعد «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 " » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 اولی Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 قبلی Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 طرف دیگر Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 آخرین @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ساعت MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 مگنی Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 دقایقی Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ساعات افزایشی Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ساعات کاهش Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 چند دقیقه افزایشی @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 دقیقه کاهش @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 ثانیه @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 ثانیه های افزایشی @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 ثانیه کاهش @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 نزدیک @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ به طور خودکار برچسب (های) صندوق ورودی را در ذخیره حذف کنید + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 نمایش تصویر کوچک سند در هنگام بارگیری @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 ویرایش فله @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 گفتگوی تأیید را نشان دهید @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 از نزدیک اقدام کنید @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 یادداشت ها را فعال کنید @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 مجوزهای پیش فرض @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 صاحب پیش فرض @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 مجوزهای نمایش پیش فرض @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 مجوزهای ویرایش پیش فرض @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 پردازش سند @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 هنگام شناسایی اسناد جدید اعلان ها را نشان دهید @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 هنگامی که پردازش اسناد با موفقیت انجام می شود ، اعلان ها را نشان دهید @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 هنگام عدم موفقیت پردازش اسناد ، اعلان ها را نشان دهید @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 اعلان ها را در داشبورد سرکوب کنید @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 این همه پیام های مربوط به وضعیت پردازش اسناد را در داشبورد سرکوب می کند. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 از زبان سیستم استفاده کنید @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 از قالب تاریخ زبان نمایش استفاده کنید @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 شماره سریال بایگانی @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 تنظیمات با موفقیت ذخیره شدند. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 تنظیمات با موفقیت ذخیره شدند. بارگیری مجدد برای اعمال برخی از تغییرات لازم است. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 اکنون بارگذاری مجدد @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 پیش نمایش @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + نوع @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ انواع اسناد - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ صفحه + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + محتوا + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 طرف دیگر @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 جزئیات @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 تاریخ ایجاد شده @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ پیش فرض - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - محتوا - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 تاریخ اصلاح شده @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 تاریخ اضافه شده @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 نام رسانه @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 نام اصلی @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 اندازه پرونده اصلی @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 نوع اصلی تقلید @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 اندازه پرونده بایگانی + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 ابرداده سند اصلی @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 ابرداده سند بایگانی شده @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 تاریخ @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Save & next @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 دور کردن @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 بارگیری سند ... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 رمز ورود را وارد کنید @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 خطا در بازیابی ابرداده @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 سند بعدی @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 سند قبلی @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 سند را ذخیره کنید @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 ذخیره و بسته / بعدی @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 خطای بازیابی پیشنهادات. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 سند ذخیره خطا @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 خطای حذف سند @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 این عملیات دائمی پرونده بایگانی را برای این سند بازآفرینی می کند. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 پرونده بایگانی با تنظیمات فعلی دوباره تولید می شود. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 عملیات اجرای خطا @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 سند بارگیری خطا @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 صفحه مناسب @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 تنظیم مجدد فیلترها / انتخاب @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 اولین سند [انتخاب شده] را باز کنید @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 صفحه قبلی @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 صفحه بعدی @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 سعادت @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 پایان diff --git a/src-ui/src/locale/messages.fi_FI.xlf b/src-ui/src/locale/messages.fi_FI.xlf index 71dd0fade..72e231872 100644 --- a/src-ui/src/locale/messages.fi_FI.xlf +++ b/src-ui/src/locale/messages.fi_FI.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Sulje - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Edellinen Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Seuraava Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Valitse kuukausi Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Valitse vuosi Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Edellinen kuukausi Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Seuraava kuukausi «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Ensimmäinen Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Edellinen Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Seuraava Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Viimeinen @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Tuntia MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuuttia Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Lisää tunteja Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Pienennä tunteja Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Lisää minuutteja @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Pienennä minuutteja @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekuntia @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Lisäys sekunteina @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Vähennys sekunteina @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Sulje @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Massamuokkaus @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Näytä vahvistukset @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Tallenna suljettaessa @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Ota muistiinpanot käyttöön @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Oletusoikeudet @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Oletusomistaja @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Oletusarvoiset katseluoikeudet @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Oletusarvoiset muokkausoikeudet @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Asiakirjan käsittely @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Näytä ilmoitukset kun uusia asiakirjoja havaitaan @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Näytä ilmoitukset, kun asiakirjan käsittely valmistuu onnistuneesti @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Näytä ilmoitukset kun asiakirjan käsittely epäonnistuu @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Älä näytä ilmoituksia koontinäytöllä @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Tämä estää koontinäytöllä kaikki viestit, jotka koskevat asiakirjojen käsittelyn tilaa. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Käytä järjestelmän kieltä @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Käytä näyttökielen päivämäärämuotoa @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Arkistointisarjanumero @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Asetukset tallennettiin onnistuneesti. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Asetukset on tallennettu onnistuneesti. Uudelleenlataus vaaditaan joidenkin muutosten käyttöönottamiseksi. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Lataa uudelleen @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Esikatsele @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tyyppi @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Asiakirjatyypit - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Sivu + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Sisältö + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Seuraava @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Tarkemmat tiedot @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Luontipäivä @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Oletusarvo - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Sisältö - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Muokkauspäivämäärä @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Lisäyspäivämäärä @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Median tiedostonimi @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Alkuperäinen tiedoston nimi @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Alkuperäinen tiedostokoko @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Alkuperäinen mime-tyyppi @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Arkistoidun tiedostokoko + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Alkuperäisen asiakirjan metatiedot @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Arkistoidun asiakirjan metatiedot @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Historia @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Tallenna & Lopeta @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Tallenna ja sulje @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Hylkää @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Asiakirja latautuu... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Syötä salasana @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Virhe haettaessa metatietoja @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Sisällön lataamisessa tapahtui virhe: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Seuraava asiakirja @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Edellinen asiakirja @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Tallenna asiakirja @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Tallenna ja sulje / seuraava @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Virhe ehdotuksia noutaessa. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Asiakirja "" tallennettu onnistuneesti. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Virhe tallennettaessa asiakirjaa @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Virhe asiakirjaa poistaessa @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Virhe toimintoa suoritettaessa @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Sivun sovitus @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Tulostus epäonnistui. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Nollaa suodattimet / valinta @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Edellinen sivu @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Seuraava sivu @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Näkymä "" tallennettu onnistuneesti. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Näkymä "" luotu onnistuneesti. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Edellinen @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Loppu diff --git a/src-ui/src/locale/messages.fr_FR.xlf b/src-ui/src/locale/messages.fr_FR.xlf index b4574d234..72a0bbf1e 100644 --- a/src-ui/src/locale/messages.fr_FR.xlf +++ b/src-ui/src/locale/messages.fr_FR.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Fermer - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Diapositive sur + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Précédent Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Suivant Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Sélectionner le mois Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Sélectionner l'année Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Mois précédent Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Mois suivant «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Premier Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Précédent Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Suivant Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Dernier @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Heures MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutes Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Incrémenter les heures Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Décrémenter les heures Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrémenter les minutes @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Décrémenter les minutes @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Secondes @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrémenter les secondes @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Décrémenter les secondes @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Fermer @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatiquement supprimer le(s) étiquette(s) réception lors d'une sauvegarde + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Afficher la miniature du document pendant le chargement @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Champs prédéfinis à afficher : @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Décochez les champs pour les masquer dans la page de détails du document. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Édition en masse @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Afficher les messages de confirmation @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Appliquer lors de la fermeture @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Éditeur PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Mode d'édition par défaut @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Activer les notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Droits d'accès par défaut @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Les paramètres s'appliquent à ce compte utilisateur pour les objets (Tags, Règles de Mail, etc.) créés via l'interface web. Ces paramètres ne s'appliquent pas aux documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Propriétaire par défaut @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Autorisations de consultation par défaut @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Autorisations de modification par défaut @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Traitement de documents @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Afficher des notifications lorsque de nouveaux documents sont détectés @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Afficher des notifications lorsque le traitement des documents se termine avec succès @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Afficher des notifications en cas d'échec du traitement des documents @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Supprimer les notifications du tableau de bord @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Cela supprimera tous les messages liés au traitement de documents sur le tableau de bord. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Utiliser la langue du système @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Utiliser le format de date de la langue d'affichage @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Numéro de série d'archivage (NSA) @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Les paramètres ont été enregistrés avec succès. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Les paramètres ont été enregistrés avec succès. Un rechargement est nécessaire pour appliquer certains changements. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Recharger maintenant @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Retirer la protection par mot de passe @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Créer une copie non protégée ou remplacer le fichier existant. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Démarrer @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Prévisualisation @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Aucune suggestion @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggérer @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Afficher les suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Aucune suggestion @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Types de document - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Page + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Contenu + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Suivant @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Détails @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Date de création @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Par défaut - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Contenu - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Date de modification @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Date d'ajout @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Nom de fichier du média @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Nom du fichier d'origine @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Somme de contrôle SHA256 de l'original @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Taille du fichier original @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Type MIME de l'original @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Somme de contrôle SHA256 de l'archive @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Taille du fichier archivé + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Métadonnées du document original @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Métadonnées du document archivé @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Historique @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Documents en double détectés : @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 Dans la corbeille @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Enregistrer & suivant @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Enregister & fermer @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Abandonner @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Chargement du document… @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Saisir le mot de passe @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Erreur lors de la récupération des métadonnées @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Une erreur s'est produite lors du chargement du contenu : @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document a été mis à jour @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document a été mis à jour à . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Recharger pour refuser vos changements locaux non sauvegardés et charger la dernière version en ligne. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Recharger @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Documents rechargés avec les derniers changements. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document rechargé. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Document suivant @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Document précédent @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Enregistrer le document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Sauvegarder et fermer / suivant @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Erreur de récupération du contenu de la version @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Erreur lors de la récupération des suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document «  » enregistré avec succès. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Erreur lors de la sauvegarde du document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Erreur lors de la sauvegarde du document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Voulez-vous vraiment déplacer le document «  » vers la corbeille ? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Erreur lors de la suppression du document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Cette action recréera définitivement le fichier d'archive pour ce document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Le fichier d'archive va être régénéré avec les paramètres actuels. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Erreur lors de l'exécution de l'opération @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Erreur lors du téléchargement du document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Ajustement de la page @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Erreur lors de l’exécution de l’opération de modification du PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Veuillez saisir le mot de passe actuel avant d'essayer de le supprimer. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Erreur lors de la suppression du mot de passe @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Impression échouée. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Erreur lors du chargement du document pour impression. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Une erreur s’est produite lors du chargement du tiff : @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Réinitialiser les filtres / la sélection @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Ouvrir le premier document [sélectionné] @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Page précédente @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Page suivante @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Vue "" enregistrée avec succès. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Impossible d'enregistrer la vue "". @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Vue « » créée avec succès. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13265,11 +13369,19 @@ Diviser sur les codes à barres d'étiquettes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 IA activée @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Considérez les implications sur la confidentialité lors de l'activation des fonctionnalités IA, en particulier si vous utilisez un modèle distant. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Model @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Modèle d'embeddings + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 Point de terminaison de l'intégration LLM @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 Backend LLM @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 Modèle LLM @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 Clé d'API LLM @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 Langue de sortie LLM @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Langue à utiliser pour les suggestions d'IA générées. Lorsqu'elle n'est pas définie, les suggestions d'IA utilisent la langue d'affichage de l'utilisateur si elle est explicitement définie. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Délai d'attente des requêtes LLM @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Délai d'attente en secondes pour les requêtes LLM. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Préc. @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Terminer diff --git a/src-ui/src/locale/messages.he_IL.xlf b/src-ui/src/locale/messages.he_IL.xlf index d2af80832..fbc27c310 100644 --- a/src-ui/src/locale/messages.he_IL.xlf +++ b/src-ui/src/locale/messages.he_IL.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 סגור - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 הקודם Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 הבא Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 בחירת חודש Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 בחר שנה Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 חודש קודם Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 חודש הבא «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 ראשון Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 קודם Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 הבא Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 אחרון @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 שש Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 שעות MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 חח Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 דקות Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 הגדלת שעות Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 הקטנת שעות Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 הגדלת דקות @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 הקטנת דקות @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 שש @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 שניות @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 הגדלת שניות @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 הקטנת שניות @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 סגירה @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ הסר אוטומטית את תג(י) תיבת הדואר הנכנס בעת שמירה + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 הצג תמונת מסמך ממוזערת בזמן טעינה @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 שדות מובנים שיוצגו: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 בטל סימון של שדות כדי להסתיר אותם בדף פרטי המסמך. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 עריכה כמותית @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 הצג חלונות לאישור @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 החל בסגירה @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 עורך PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 מצב עריכה ברירת מחדל @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 הפעל הערות @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 הרשאות ברירת מחדל @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 בעלים מקורי @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 הרשאות ברירת מחדל עבור צפיה בקובץ @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 הרשאות ברירת מחדל עבור קובץ @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 עיבוד מסמך @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 הצג התראה כאשר זוהו מסמכים חדשים @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 הצג התראה כאשר עיבוד מסמך הסתיים בהצלחה @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 הצג התראה כאשר עיבוד מסמך נכשל @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 העלם התראות בעמוד הבקרה @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 ביצוע פעולה זו תעלים את כל ההודעות על סטטוס עיבוד מסמך בעמוד הבקרה. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 השתמש בשפת המערכת @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 השתמש בפורמט תאריך המתאים לשפה הנבחרת @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 מספר סידורי בארכיון @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 ההגדרות נשמרו בהצלחה @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 ההגדרות נשמרו בהצלחה. נדרשת טעינה מחדש כדי להחיל שינויים מסוימים. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 טען מחדש כעת @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 הסר את הגנת הסיסמה @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 צור עותק ללא סיסמה או החלף את הקובץ הקיים. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 התחל @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 תצוגה מקדימה @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + סוג @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ סוגי מסמכים - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ דף + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + תוכן + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 הבא @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 פרטים @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 תאריך יצירה @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ ברירת המחדל - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - תוכן - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 תאריך שינוי @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 תאריך הוספה @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 שם קובץ המסמך @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 שם קובץ מקורי @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 גודל הקובץ המקורי @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 סוג ה-mime המקורי @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 גודל הקובץ בארכיון + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 מטא-נתונים של המסמך המקורי @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 מטא-נתונים של המסמך בארכיון @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 היסטוריה @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 שמור & הבא @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 שמור & סגור @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 בטל @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 מסמך נטען... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 הזן סיסמה @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 שגיאה באחזור נתונים @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 ארעה שגיאה בטעינת התוכן: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 המסמך הבא @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 המסמך הקודם @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 שמירת מסמך @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 שמירה וסגירה / הבא @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 שגיאה באחזור הצעות. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 המסמך "" נשמר בהצלחה. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 שגיאה בשמירת מסמך @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 שגיאה במחיקת מסמך @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 פעולה זו תבצע יצירה מחדש של קובץ הארכיון למסמך זה @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 קובץ הארכיון יווצר מחדש עם ההגדרות הנוכחיות. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 שגיאת הרצה @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 שגיאה בעת הורדת מסמך @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 התאם תצוגה לרוחב הדף @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 אירעה שגיאה בעת ביצוע פעולת הסרת הסיסמה @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 הדפסה נכשלה. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 אירעה שגיאה בעת טעינת המסמך להדפסה. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 שגיאה בעת טעינת קובץ tiff: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 איפוס סינון / בחירה @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 פתח את המסמך הראשון [הנבחר] @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 עמוד קודם @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 עמוד הבא @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 תצוגה "" נשמרה בהצלחה. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 כישלון בעת שמירת תצוגה "". @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 תצוגה "" נוצרה בהצלחה. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 התצוגה "" נוצרה בהצלחה, אך לא ניתן היה לעדכן את הגדרות הנראות. @@ -13265,11 +13369,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 הקודם @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 סיום diff --git a/src-ui/src/locale/messages.hi_IN.xlf b/src-ui/src/locale/messages.hi_IN.xlf index d30c6e390..65ee67be6 100644 --- a/src-ui/src/locale/messages.hi_IN.xlf +++ b/src-ui/src/locale/messages.hi_IN.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 बंद - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 पिछला Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 अगला Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 महीना चुनिए Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 वर्ष चुनें Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 पिछला महीना Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 अगला महीना «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 पहला Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 पिछला Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 अगला Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 अंतिम @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 घंटे MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 मिनट Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Increment hours Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Decrement hours Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment minutes @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement minutes @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 सेकंड @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment seconds @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement seconds @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 बंद @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Bulk editing @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Show confirmation dialogs @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Apply on close @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Enable notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Default Owner @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Default Edit Permissions @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Document processing @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when new documents are detected @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when document processing completes successfully @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Show notifications when document processing fails @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Suppress notifications on dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about document processing status on the dashboard. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Use system language @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Use date format of display language @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archive serial number @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Settings were saved successfully. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Settings were saved successfully. Reload is required to apply some changes. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Reload now @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Page + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Content + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 अगला @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Details @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Date created @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Default - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Content - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Date modified @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Date added @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media filename @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Original filename @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Original file size @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Original mime type @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archive file size + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Original document metadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Archived document metadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Save & next @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Discard @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Enter Password @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Prev @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 समाप्त diff --git a/src-ui/src/locale/messages.hr_HR.xlf b/src-ui/src/locale/messages.hr_HR.xlf index 8feac49c9..f16abf4e6 100644 --- a/src-ui/src/locale/messages.hr_HR.xlf +++ b/src-ui/src/locale/messages.hr_HR.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Zatvori - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slika od Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Prethodno Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Sljedeće Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Odaberi mjesec Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Odaberi godinu Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Prethodni mjesec Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Sljedeći mjesec «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Prvi Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Prethodni Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Sljedeći Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Zadnji @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Sati MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minute Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Povećanje sati Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Smanjenje sati Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Povečanje minuta @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Smanjenje minuta @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunde @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Povečanje sekundi @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Smanjenje sekundi @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Zatvori @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -571,7 +571,7 @@ src/app/components/admin/config/config.component.html 35 - This value overrides , which is set outside Paperless. + Ova vrijednost premošćuje , koji je konfiguriran izvan Paperlessa. is set outside Paperless. Enter a value here to override it. @@ -579,7 +579,7 @@ src/app/components/admin/config/config.component.html 37 - is set outside Paperless. Enter a value here to override it. + je konfiguriran izvan Paperlessa. Unesite vrijednost ovdje ako je želite premostiti. Use the externally configured value @@ -587,7 +587,7 @@ src/app/components/admin/config/config.component.html 42 - Use the externally configured value + Koristi vanjsku vrijednost Reset to external @@ -595,7 +595,7 @@ src/app/components/admin/config/config.component.html 43 - Reset to external + Vrati na vanjsku vrijednost Reset @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1135,7 +1135,7 @@ src/app/components/admin/settings/settings.component.html 115,116 - Sidebar items to show: + Prikaz u bočnoj traci: Dark mode @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,27 +1397,59 @@ Automatski uklonite oznake pristigle pošte prilikom spremanja + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Zadana vrijednost prijedloga + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Oba + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + Samo ML + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + Samo AI + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 - Automatically request suggestions for inbox documents + Automatski prijedlozi za ulaznu poštu If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 - If un-checked, suggestions must be requested via the Suggest button. + Ako nije označeno, prijedlozi se moraju zatražiti putem gumba Prijedlozi. Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Prikaži minijaturu dokumenta tijekom učitavanja @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Ugrađena polja za prikaz: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Odznačite polja da ih sakrijete na stranici detalja dokumenta. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Zbirno uređivanje @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Prikaži dijaloške okvire za potvrdu @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Primjeni pri zatvaranju @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Uređivač @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Zadani način uređivanja @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Omogući bilješke @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Zadane ovlasti @@ -1605,15 +1637,15 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 - Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. + Postavke se primjenjuju na ovaj korisnički račun za objekte (oznake, pravila e-pošte itd.) stvorene putem web sučelja. Ove se postavke ne primjenjuju na dokumente. Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Zadani vlasnik @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Zadane ovlasti pregledavanja @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Zadane ovlasti uređivanja @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Procesuiranje dokumenata @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Prikaži obavijest kada se otkriju novi dokumenti @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Prikaži obavijesti kada se obrada dokumenta uspješno završi @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Prikaži obavijesti kada obrada dokumenta ne uspije @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Spriječi obavijesti na nadzornoj ploči @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Ovo će potisnuti sve poruke o statusu obrade dokumenta na nadzornoj ploči. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Koristite jezik sustava @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Koristite format datuma jezika prikaza @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Serijski broj pohrane @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Postavke su uspješno spremljene. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Postavke su uspješno spremljene. Za primjenu nekih promjena potrebno je ponovno učitavanje. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Ponovno učitaj sada @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2203,7 +2235,7 @@ src/app/components/admin/tasks/tasks.component.html 16 - Dismiss all + Odbaci sve All @@ -2287,7 +2319,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 21 - Clear search + Izbriši pretraživanje Search tasks @@ -2295,7 +2327,7 @@ src/app/components/admin/tasks/tasks.component.html 92,93 - Search tasks + Pretraživanje zadataka Reset filters @@ -2619,7 +2651,7 @@ src/app/components/admin/tasks/tasks.component.html 207 - View task details + Prikaži detalje zadatka Dismiss @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -2855,7 +2887,7 @@ src/app/components/admin/tasks/tasks.component.ts 104 - Apply AI Suggestions + Upotrijebi prijedloge umjetne inteligencije Scheduled @@ -2983,7 +3015,7 @@ src/app/components/admin/tasks/tasks.component.ts 352 - Confirm Dismiss All + Potvrdi odbacivanje Dismiss all tasks? @@ -2991,7 +3023,7 @@ src/app/components/admin/tasks/tasks.component.ts 353 - Dismiss all tasks? + Odbaci sve zadatke? Success. New document id created @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3751,7 +3783,7 @@ src/app/components/app-frame/app-frame.component.html 42 - User menu + Korisnički izbornik Logged in as @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -3907,7 +3939,7 @@ src/app/components/manage/share-links/share-links.component.html 2,3 - Share links + Dijeljene veze Administration @@ -3983,7 +4015,7 @@ src/app/components/app-frame/app-frame.component.html 403 - Configure update checking + Omogući provjeru ažuriranja Sidebar views updated @@ -4227,7 +4259,7 @@ src/app/data/saved-view-icons.ts 21 - Chat + Razgovor Message @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4347,7 +4379,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 8,9 - Root document: + Izvorni dokument: Versions (oldest first): @@ -4355,7 +4387,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 16,17 - Versions (oldest first): + Verzije (od najstarije): {VAR_PLURAL, plural, =1 {One page} other { pages}} @@ -4375,7 +4407,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 40,41 - Current version + Trenutna verzija Drag to reorder. @@ -4383,7 +4415,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 47,48 - Drag to reorder. + Povucite za promjenu redoslijeda Documents: @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Ukloni zaštitu lozinkom @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -4507,7 +4539,7 @@ src/app/components/common/confirm-dialog/reprocess-confirm-dialog/reprocess-confirm-dialog.component.html 16,17 - Use remote OCR + Koristi udaljeni OCR Sends the document to the configured remote OCR service, which may incur costs. @@ -4515,7 +4547,7 @@ src/app/components/common/confirm-dialog/reprocess-confirm-dialog/reprocess-confirm-dialog.component.html 17,18 - Sends the document to the configured remote OCR service, which may incur costs. + Šalje dokument vanjskom OCR servisu (mogući dodatni troškovi). Rotate counterclockwise @@ -4523,7 +4555,7 @@ src/app/components/common/confirm-dialog/rotate-confirm-dialog/rotate-confirm-dialog.component.html 9 - Rotate counterclockwise + Rotiraj ulijevo Rotate clockwise @@ -4531,7 +4563,7 @@ src/app/components/common/confirm-dialog/rotate-confirm-dialog/rotate-confirm-dialog.component.html 19 - Rotate clockwise + Rotiraj udesno Note that only PDFs will be rotated. @@ -4623,7 +4655,7 @@ src/app/components/common/input/date/date.component.html 16 - Open date picker + Odabir datuma Today @@ -4747,7 +4779,7 @@ src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html 154 - Remove query + Obriši upit Any @@ -4791,7 +4823,7 @@ src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html 196 - Remove expression + Obriši izraz Clear created relative date @@ -4799,7 +4831,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 12 - Clear created relative date + Ukloni relativni datum izrade Relative dates @@ -4819,7 +4851,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 37 - Clear created from date + Ukloni početni datum izrade From @@ -4839,7 +4871,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 47 - Open created from date picker + Otvori kalendar (datum izrade "od") Clear created to date @@ -4847,7 +4879,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 61 - Clear created to date + Ukloni početni datum izrade To @@ -4867,7 +4899,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 71 - Open created to date picker + Otvori kalendar (datum izrade "do") Added @@ -4899,7 +4931,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 89 - Clear added relative date + Ukloni relativni datum izrade Clear added from date @@ -4907,7 +4939,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 114 - Clear added from date + Ukloni početni datum izrade Open added from date picker @@ -4915,7 +4947,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 124 - Open added from date picker + Otvori kalendar (datum dodavanja "od") Clear added to date @@ -4923,7 +4955,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 138 - Clear added to date + Ukloni datum dodavanja "do" Open added to date picker @@ -4931,7 +4963,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 148 - Open added to date picker + Otvori kalendar (datum dodavanja "do") now @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Predpregled @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7280,7 +7312,7 @@ src/app/components/common/input/color/color.component.html 7 - Open color picker + Otvori izbornik boja Choose a random color @@ -7300,7 +7332,7 @@ src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html 64 - Remove custom field + Ukloni prilagođena polja Invalid date. @@ -7364,7 +7396,7 @@ src/app/components/common/input/document-link/document-link.component.html 52,53 - Unavailable + Nedostupno Search for documents @@ -7408,7 +7440,7 @@ src/app/components/common/input/entries/entries.component.html 16 - Remove entry + Uklonite unos Upload @@ -7461,7 +7493,7 @@ src/app/components/common/input/select/select.component.html 41 - Remove item + Ukloni stavku Private @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Vrsta @@ -8277,7 +8313,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html 68,69 - Share link + Podijeli vezu Copy link @@ -8443,15 +8479,15 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 - No suggestions + Bez prijedloga Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Predloži @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Prikaži prijedloge @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Nema novih prijedloga @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Vrste dokumenata - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Stranica + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Sadržaj + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Sljedeće @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detalji @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Datum izrade @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Zadano - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Sadržaj - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Datum izmjene @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Datum dodavanja @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Naziv datoteke @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Izvorni naziv datoteke @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Izvorna veličina datoteke @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Izvorna MIME vrsta @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Veličina arhivirane datoteke + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Izvorni meta podaci dokumenta @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Meta podaci arhiviranog dokumenta @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Povijest @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Otkriveni duplikati dokumenata: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 U smeću @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Spremi & sljedeći @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Spremi & zatvori @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Odbaci @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Dokument se učitava... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Unesi lozinku @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Greška pri dohvaćanju metapodataka @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Došlo je do pogreške prilikom učitavanja sadržaja: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Dokument je ažuriran @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Dokument je ažuriran u . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Učitajte ponovo da odbacite lokalne nespremljene izmjene i učitate najnoviju udaljenu verziju. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Učitaj ponovo @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Dokument učitan ponovo s najnovijim izmjenama. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Dokument učitan ponovo. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Sljedeći dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Prethodni dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Spremi dokument @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Spremi i zatvori / sljedeći @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Greška pri dohvaćanju sadržaja verzije @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,39 +9725,39 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 - You have unsaved changes to the content of this version. + Sadržaj ove verzije sadrži nespremljene promjene. Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 - Switching versions will discard them. + Promjena verzije odbacuje nespremljene promjene. Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 - Discard and switch + Odbaci i promijeni Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 - Save and switch + Spremi i promijeni Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Greška pri dohvaćanju prijedloga. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokument "" uspješno spremljen. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Greška pri spremanju dokumenta @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Greška pri brisanju dokumenta @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Ova operacija će trajno ponovo kreirati arhivsku datoteku za ovaj dokument. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Arhivska datoteka će se ponovo generirati s trenutnim postavkama. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Greška pri izvršavanju operacije @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Greška pri preuzimanju dokumenta @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Prilagodi stranicu @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Greška pri izvršavanju operacije uređivanja PDF-a @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Unesite trenutnu lozinku prije pokušaja uklanjanja. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Greška pri izvršavanju operacije uklanjanja lozinke @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Ispis nije uspio. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Greška pri učitavanju dokumenta za ispis. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Došlo je do greške pri učitavanju TIFF-a: @@ -10051,7 +10155,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.ts 329 - Error adding existing document as a version + Dodavanje postojećeg dokumenta kao verzije nije uspjelo Toggle document metadata @@ -10059,7 +10163,7 @@ src/app/components/document-detail/metadata-collapse/metadata-collapse.component.html 3 - Toggle document metadata + Preklopi metapodatke dokumenta Edit: @@ -10159,7 +10263,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 1026 - Merge as versions + Spoji u verzije istog dokumenta Create a share link bundle @@ -10469,7 +10573,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 1027 - The selected documents will become versions of the root document. + Odabrani dokumenti postat će verzije glavnog dokumenta. Documents merged as versions. @@ -10477,7 +10581,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 1042 - Documents merged as versions. + Dokumenti spojeni kao verzije. Custom fields updated. @@ -10555,7 +10659,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 8,9 - thumbnail + sličica Filter by tag @@ -10591,7 +10695,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 95,96 - Created: + Kreirano: Added: @@ -10607,7 +10711,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 96,97 - Added: + Dodano: Modified: @@ -10623,7 +10727,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 97,98 - Modified: + Izmijenjeno: {VAR_PLURAL, plural, =1 {1 page} other { pages}} @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Resetiraj filtere / odabir @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Otvori prvi [odabrani] dokument @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Prethodna stranica @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Sljedeća stranica @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Prikaz "" uspješno spremljen. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Spremanje prikaza "" nije uspjelo. @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Prikaz "" uspješno kreiran. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Prikaz "" uspješno kreiran, ali nije moguće ažurirati postavke vidljivosti. @@ -11131,7 +11235,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 208 - Duplicates + Duplikati Custom fields (Deprecated) @@ -11195,7 +11299,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 252 - exist + postoji do not exist @@ -11203,7 +11307,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 256 - do not exist + he postoji Correspondent: @@ -11275,7 +11379,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 343 - Without duplicates + Bez duplikata With duplicates @@ -11283,7 +11387,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 344 - With duplicates + Sa duplikatima Custom fields query @@ -11359,7 +11463,7 @@ src/app/components/manage/saved-views/saved-views.component.html 21 - Icon + Ikona Show in sidebar @@ -12231,7 +12335,7 @@ src/app/components/manage/mail/processed-mail-dialog/processed-mail-dialog.component.html 2,3 - Processed Mail for + Obrađena e-pošta za No processed email messages found. @@ -12247,7 +12351,7 @@ src/app/components/manage/mail/processed-mail-dialog/processed-mail-dialog.component.html 29 - Select all processed email messages + Odaberi sve obrađene mailove Received @@ -12287,7 +12391,7 @@ src/app/components/manage/saved-views/saved-views.component.html 46,47 - Permissions + Dopuštenja za Documents page size @@ -12411,7 +12515,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 40,41 - Expired + Isteklo Copy share link @@ -12455,7 +12559,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html 164,165 - Share link bundles pagination + Paginacija poveznica za dijeljenje Failed to load share link bundles. @@ -12511,7 +12615,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 7,8 - No document share links currently exist. + Trenutačno ne postoji nijedna poveznica za dijeljenje dokumenta. Document @@ -12519,7 +12623,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 15,16 - Document + Dokument Delete share link @@ -12543,7 +12647,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 105 - Failed to load share links. + Učitavanje linkova za dijeljenje nije uspjelo. Error retrieving share links. @@ -12551,7 +12655,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 107 - Error retrieving share links. + Greška pri dohvaćanju dijeljenih poveznica. Share link deleted. @@ -12559,7 +12663,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 154 - Share link deleted. + Dijeljena poveznica izbrisana. Error deleting share link. @@ -12567,7 +12671,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 159 - Error deleting share link. + Greška pri brisanju linka za dijeljenje. Manage public links to individual documents and document bundles. @@ -12583,7 +12687,7 @@ src/app/components/manage/share-links/share-links.component.html 18,19 - Document links + Veze na dokumente Bundles @@ -13266,11 +13370,19 @@ Podijeli na barkodom oznaka + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI omogućen @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Razmotrite implikacije na privatnost pri omogućavanju AI funkcija, posebno ako koristite udaljeni model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM embedding pozadina @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM embedding model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM embedding krajnja točka @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 Veličina LLM embedding bloka @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 Veličina LLM konteksta @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM pozadina @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API ključ @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM krajnja točka @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM izlazni jezik @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Jezik za generirane AI prijedloge. Ako nije postavljeno, AI prijedlozi koriste korisnikov jezik prikaza ako je eksplicitno postavljen. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,9 +13510,9 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 - Timeout in seconds for LLM requests. + LLM timeout (sekunde) Archive @@ -13404,7 +13532,7 @@ src/app/data/saved-view-icons.ts 5 - Bank + Banka Basket @@ -13412,7 +13540,7 @@ src/app/data/saved-view-icons.ts 6 - Basket + Košarica Bell @@ -13420,7 +13548,7 @@ src/app/data/saved-view-icons.ts 7 - Bell + Zvonce Bookmark @@ -13428,7 +13556,7 @@ src/app/data/saved-view-icons.ts 8 - Bookmark + Bilješka Boxes @@ -13436,7 +13564,7 @@ src/app/data/saved-view-icons.ts 9 - Boxes + Pretinci Briefcase @@ -13444,7 +13572,7 @@ src/app/data/saved-view-icons.ts 10 - Briefcase + Dokumenti Building @@ -13452,7 +13580,7 @@ src/app/data/saved-view-icons.ts 11 - Building + Zgrada Calculator @@ -13460,7 +13588,7 @@ src/app/data/saved-view-icons.ts 12 - Calculator + Kalkulator Calendar @@ -13468,7 +13596,7 @@ src/app/data/saved-view-icons.ts 13 - Calendar + Kalendar Camera @@ -13476,7 +13604,7 @@ src/app/data/saved-view-icons.ts 14 - Camera + Kamera Checklist @@ -13484,7 +13612,7 @@ src/app/data/saved-view-icons.ts 17 - Checklist + Kontrolna lista Cash @@ -13492,7 +13620,7 @@ src/app/data/saved-view-icons.ts 20 - Cash + Gotovina Check @@ -13500,7 +13628,7 @@ src/app/data/saved-view-icons.ts 22 - Check + Provjeri Clipboard @@ -13508,7 +13636,7 @@ src/app/data/saved-view-icons.ts 23 - Clipboard + Međuspremnik Clock @@ -13516,7 +13644,7 @@ src/app/data/saved-view-icons.ts 24 - Clock + Sat Credit card @@ -13524,7 +13652,7 @@ src/app/data/saved-view-icons.ts 25 - Credit card + Kreditna kartica Envelope @@ -13532,7 +13660,7 @@ src/app/data/saved-view-icons.ts 27 - Envelope + Omotnica Warning @@ -13540,7 +13668,7 @@ src/app/data/saved-view-icons.ts 30 - Warning + Upozorenje File @@ -13548,7 +13676,7 @@ src/app/data/saved-view-icons.ts 33 - File + Datoteka Checked file @@ -13556,7 +13684,7 @@ src/app/data/saved-view-icons.ts 36 - Checked file + Provjerena datoteka Locked file @@ -13564,7 +13692,7 @@ src/app/data/saved-view-icons.ts 41 - Locked file + Zaključana datoteka Medical file @@ -13572,7 +13700,7 @@ src/app/data/saved-view-icons.ts 46 - Medical file + Zdravstveni karton Person file @@ -13580,7 +13708,7 @@ src/app/data/saved-view-icons.ts 51 - Person file + Osobni karton Spreadsheet @@ -13588,7 +13716,7 @@ src/app/data/saved-view-icons.ts 56 - Spreadsheet + Proračunska tablica Text file @@ -13596,7 +13724,7 @@ src/app/data/saved-view-icons.ts 59 - Text file + Tekstualna datoteka Files @@ -13604,7 +13732,7 @@ src/app/data/saved-view-icons.ts 60 - Files + Datoteke Filter @@ -13612,7 +13740,7 @@ src/app/data/saved-view-icons.ts 62 - Filter + Filter Gear @@ -13620,7 +13748,7 @@ src/app/data/saved-view-icons.ts 63 - Gear + Postavke Globe @@ -13628,7 +13756,7 @@ src/app/data/saved-view-icons.ts 64 - Globe + Globe Hash @@ -13636,7 +13764,7 @@ src/app/data/saved-view-icons.ts 65 - Hash + Hash Heart @@ -13644,7 +13772,7 @@ src/app/data/saved-view-icons.ts 66 - Heart + Srce House @@ -13652,7 +13780,7 @@ src/app/data/saved-view-icons.ts 67 - House + Dom Inbox @@ -13660,7 +13788,7 @@ src/app/data/saved-view-icons.ts 68 - Inbox + Ulazna pošta Journals @@ -13668,7 +13796,7 @@ src/app/data/saved-view-icons.ts 69 - Journals + Zapisnici Task list @@ -13676,7 +13804,7 @@ src/app/data/saved-view-icons.ts 70 - Task list + Lista zadataka Newspaper @@ -13684,7 +13812,7 @@ src/app/data/saved-view-icons.ts 71 - Newspaper + Časopis Attachment @@ -13692,7 +13820,7 @@ src/app/data/saved-view-icons.ts 72 - Attachment + Privitak People @@ -13700,7 +13828,7 @@ src/app/data/saved-view-icons.ts 73 - People + Osobe Person @@ -13708,7 +13836,7 @@ src/app/data/saved-view-icons.ts 74 - Person + Osoba Printer @@ -13716,7 +13844,7 @@ src/app/data/saved-view-icons.ts 75 - Printer + Pisač Receipt @@ -13724,7 +13852,7 @@ src/app/data/saved-view-icons.ts 76 - Receipt + Račun Safe @@ -13732,7 +13860,7 @@ src/app/data/saved-view-icons.ts 77 - Safe + Sef Shop @@ -13740,7 +13868,7 @@ src/app/data/saved-view-icons.ts 80 - Shop + Tgovina Stack @@ -13748,7 +13876,7 @@ src/app/data/saved-view-icons.ts 81 - Stack + Stack Stars @@ -13756,7 +13884,7 @@ src/app/data/saved-view-icons.ts 82 - Stars + Zvijezde Tag @@ -13764,7 +13892,7 @@ src/app/data/saved-view-icons.ts 83 - Tag + Oznaka Telephone @@ -13772,7 +13900,7 @@ src/app/data/saved-view-icons.ts 85 - Telephone + Telefon Truck @@ -13780,7 +13908,7 @@ src/app/data/saved-view-icons.ts 86 - Truck + Obrada Barcode @@ -13788,7 +13916,7 @@ src/app/data/saved-view-icons.ts 87 - Barcode + Bar-kod Wallet @@ -13796,7 +13924,7 @@ src/app/data/saved-view-icons.ts 88 - Wallet + Novčanik Processing @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Prethodno @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Kraj diff --git a/src-ui/src/locale/messages.hu_HU.xlf b/src-ui/src/locale/messages.hu_HU.xlf index c36cb91ee..be51367f0 100644 --- a/src-ui/src/locale/messages.hu_HU.xlf +++ b/src-ui/src/locale/messages.hu_HU.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Bezár - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Előző Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Következő Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Válassza ki a hónapot Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Év kiválasztása Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Előző hónap Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 A következő hónapban «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 "" « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 " » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 " »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 "" First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Első Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Előző Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Következő Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Last @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Órák MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Percek Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Növekvő órák Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Órák csökkentése Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Növekvő percek @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Percek csökkentése @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Másodpercek @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Növekvő másodpercek @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Másodpercek csökkentése @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Bezár @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Bejövő cimkék automatikus eltüntetése mentéskor + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Dokumentum kis képének mutatás betöltéskor @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Beépített mezők megjelenítése: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 A mezők jelölését törölje, hogy azok ne jelenjenek meg a dokumentum részleteinek oldalán. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Tömeges szerkesztés @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Megerősítő párbeszédpanelek megjelenítése @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Alkalmazás lezáráskor @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF szerkesztő @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Alapértelmezett szerkesztési mód @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Jegyzetek engedélyezése @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Alapértelmezett engedélyek @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Alapértelmezett tulajdonos @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Alapértelmezett nézeti engedélyek @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Alapértelmezett szerkesztési engedélyek @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Dokumentumfeldolgozás @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Értesítések megjelenítése új dokumentumok észlelésekor @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Értesítések megjelenítése a dokumentum feldolgozásának sikeres befejezésekor @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Értesítések megjelenítése, ha a dokumentum feldolgozása sikertelen @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Értesítések elnyomása a irányítópulton @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Ez elnyomja a dokumentum feldolgozási állapotára vonatkozó összes üzenetet az irányítópulton. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Rendszernyelv használata @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 A megjelenítési nyelv dátumformátumának használata @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archívum sorszáma @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 A beállítások sikeresen mentésre kerültek. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 A beállítások sikeresen mentésre kerültek. Egyes módosítások alkalmazásához újratöltés szükséges. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Újratöltés most @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Jelszóvédelem eltávolítása @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Hozzon létre egy nem védett másolatot, vagy cserélje ki a meglévő fájlt. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Indítás @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Előnézet @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Típus @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Dokumentumtípusok - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Oldal + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Tartalom + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Következő @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Részletek @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Létrehozás dátuma @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Alapértelmezett - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Tartalom - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Módosított dátum @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Hozzáadás dátuma @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Média fájlnév @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Eredeti fájlnév @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Eredeti fájlméret @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Eredeti mime típus @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archivált fájl mérete + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Eredeti dokumentum metaadatai @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Archivált dokumentum metaadatok @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Előzmények @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Mentés & következő @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Mentés & bezárás @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Eldob @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Dokumentum betöltése... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Jelszó megadása @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Hiba a metaadatok lekérdezésében @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Hiba történt a tartalom betöltése során: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Következő dokumentum @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Előző dokumentum @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Dokumentum mentése @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Mentés és bezárás / következő @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Hiba a javaslatok lekérdezésében. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 "" sikeresen elmentve. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Dokumentum mentési hiba @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Hiba a dokumentum törlésében @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Ez a művelet véglegesen újragenerálja a dokumentum archív fájlját. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Az archív fájl újragenerálódik majd a jelenlegi beállításokkal. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Hiba a művelet végrehajtásában @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Hiba a dokumentum letöltésekor @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Oldal illesztése @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Hiba a PDF szerkesztése közben @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Hiba tiff betöltésekor: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Szűrők / kiválasztás alaphelyzetbe @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Első [kiválasztott] dokumentum megnyitása @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Előző oldal @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Következő oldal @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Nézet "" sikeresen mentve. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 "" nézet mentése sikertelen. @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Nézet "" sikeresen létrehozva. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Előző @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Vége diff --git a/src-ui/src/locale/messages.id_ID.xlf b/src-ui/src/locale/messages.id_ID.xlf index 271bb9af0..ec502025a 100644 --- a/src-ui/src/locale/messages.id_ID.xlf +++ b/src-ui/src/locale/messages.id_ID.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Tutup - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Sebelumnya Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Selanjutnya Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Pilih bulan Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Pilih tahun Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Bulan sebelumnya Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Bulan depan «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Pertama Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Sebelumnya Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Selanjutnya Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Terahkir @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Jam MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Menit Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Penambahan jam Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Pengurangan jam Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Penambahan menit @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Pengurangan menit @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Detik @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Penambahan detik @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Pengurangan detik @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Tutup @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Secara otomatis menghapus tag kotak masuk saat menyimpan + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Tampilkan gambar mini dokumen saat proses pemuatan @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Pengeditan massal @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Tampilkan dialog konfirmasi @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Terapkan setelah ditutup @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Editor PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Aktifkan catatan @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Izin bawaan @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Pemilik Bawaan @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Izin Tampilan Bawaan @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Izin Pengeditan Bawaan @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Memproses dokumen @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Tampilkan notifikasi saat dokumen baru terdeteksi @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Tampilkan notifikasi saat dokumen berhasil diproses @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Tampilkan notifikasi saat dokumen gagal diproses @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Jangan Tampilkan Notifikasi pada dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Ini akan menyembunyikan semua pesan tentang status pemrosesan dokumen di dasbor. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Gunakan bahasa sistem @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Gunakan format tanggal dari bahasa yang digunakan @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Nomor serial arsip @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Pengaturan berhasil disimpan. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Pengaturan berhasil disimpan. Muat ulang diperlukan untuk menerapkan beberapa perubahan. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Muat ulang sekarang @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Mulai @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Pratinjau @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Jenis @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Tipe Dokumen - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Halaman + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Konten + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Selanjutnya @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Rincian @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Tanggal dibuat @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Bawaan - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Konten - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Tanggal dimodifikasi @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Tanggal ditambahkan @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Nama Berkas Media @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Nama file asli @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Ukuran file asli @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Jenis mime asli @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Ukuran file arsip + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadata dokumen asli @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadata dokumen arsip @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Riwayat @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Simpan & lanjut @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Simpan & tutup @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Batalkan @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Memuat dokumen... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Masukan Kata Sandi @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Kesalahan saat mendapatkan metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Terjadi kesalahan saat memuat konten: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Dokumen berikutnya @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Dokumen sebelumnya @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Simpan dokumen @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Simpan dan tutup / lanjut @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Gagal mengambil saran. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokumen "" berhasil disimpan. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Kesalahan saat menyimpan dokumen @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Kesalahan saat menghapus dokumen @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Tindakan ini akan membuat ulang file arsip dokumen secara permanen. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 File arsip akan dibuat ulang dengan pengaturan saat ini. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Gagal menjalankan operasi @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Gagal mengunduh dokumen @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Sesuaikan halaman @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Gagal menjalankan proses edit PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Pencetakan gagal. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error memuat dokumen untuk dicetak. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Terjadi kesalahan saat memuat tiff: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filter / pilihan @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Buka dokumen [terpilih] pertama @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Halaman sebelumnya @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Halaman berikutnya @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Tampilan "" berhasil disimpan. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Gagal menyimpan tampilan "". @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Tampilan "" berhasil dibuat. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13265,11 +13369,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Sebelumnya @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Akhir diff --git a/src-ui/src/locale/messages.it_IT.xlf b/src-ui/src/locale/messages.it_IT.xlf index 630005ce5..2962583a1 100644 --- a/src-ui/src/locale/messages.it_IT.xlf +++ b/src-ui/src/locale/messages.it_IT.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Chiudi - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Diapositiva di + Diapositiva of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Precedente Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Successivo Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Seleziona il mese Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Seleziona anno Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Mese precedente Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Il prossimo mese «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Primo Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Precedente Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Successivo Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Ultimo @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Ore MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuti Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Aumenta ore Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Diminuisci ore Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Aumenta minuti @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrementa minuti @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Secondi @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Aumenta secondi @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrementa secondi @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Chiudi @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Rimuovi automaticamente i tag della posta in arrivo al salvataggio + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + I suggerimenti sono predefiniti su + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Entrambi + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + Solo ML + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + Solo IA + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Richiedi automaticamente suggerimenti per i documenti in arrivo @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 Se deselezionato, i suggerimenti devono essere richiesti tramite il pulsante Suggerisci. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Mostra la miniatura del documento durante il caricamento @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Campi integrati da mostrare: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Deseleziona i campi per nasconderli nella pagina dei dettagli del documento. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Modifica in blocco @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Mostra dialoghi di conferma @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Applica in chiusura @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Editor PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Modalità di modifica predefinita @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Abilita note @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Autorizzazioni predefinite @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Le impostazioni si applicano a questo account utente per oggetti (Tag, Regole postali, ecc.) creati tramite l'interfaccia utente web. Queste impostazioni non sono applicabili ai documenti. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Proprietario predefinito @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Autorizzazioni di visualizzazione predefinite @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Autorizzazioni di modifica predefinite @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Elaborazione del documento @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Notifica quando vengono trovati nuovi documenti @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Notifica quando l'elaborazione del documento viene completata con successo. @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Notifica quando l'elaborazione del documento fallisce @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Non mostrare notifiche nella dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Verranno interrotte tutte le notifiche nella dashboard riguardo lo stato dell'elaborazione dei documenti. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Usa lingua di sistema @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Usa il formato data della lingua @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Numero seriale di archivio @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Le impostazioni sono state salvate correttamente. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Le impostazioni sono state salvate correttamente. Per applicare alcune modifiche è necessario ricaricare. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Ricarica ora @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Rimuovi la protezione con password @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Crea una copia non protetta o sostituisci il file esistente. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Avvia @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Anteprima @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tipo @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Nessun suggerimento @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggerisci @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Mostra suggerimenti @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Nessun nuovo suggerimento @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Tipi di documento - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, one {}=1 {1 valore esistente suggerito sotto} other { valori esistenti suggeriti sotto}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Opzioni di suggerimento + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Nessun valore predefinito in uso + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggerisci utilizzando: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + IA Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Pagina + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Contenuto + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Avanti @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Dettagli @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Data creazione @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Predefinito - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Contenuto - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Data modifica @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Data aggiunta @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Nome file @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Nome file originale @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Checksum SHA256 originale @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Dimensione file originale @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Tipo mime originale @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Checksum SHA256 dell'archivio @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Dimensione file archivio + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadati del documento originale @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadati del documento archiviato @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Note @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Cronologia @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicati @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Documenti duplicati rilevati: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 Nel cestino @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Salva e vai al prossimo @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Salva e chiudi @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Scarta @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Caricamento documento in corso... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Inserisci password @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Errore durante il recupero dei metadati @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Si è verificato un errore durante il caricamento del contenuto: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Il documento è stato aggiornato @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Il documento è stato aggiornato alle . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Ricarica per eliminare le modifiche locali non salvate e caricare la versione remota più recente. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Ricarica @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Documento ricaricato con le ultime modifiche. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Documento ricaricato. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Documento successivo @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Documento precedente @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Salva documento @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Salva e chiudi / avanti @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Errore durante il recupero del contenuto della versione @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 Hai modifiche non salvate al contenuto di questa versione. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Cambiare le versioni li scarterà. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Scarta e cambia @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Salva e cambia @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Errore durante il recupero dei suggerimenti. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Documento "" salvato correttamente. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Errore durante il salvataggio del documento "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Errore durante il salvataggio del documento @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Vuoi davvero spostare il documento "" nel cestino? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Errore durante l'eliminazione del documento @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Questa operazione ricreerà in modo permanente il file di archivio per questo documento. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Il file di archivio verrà rigenerato con le impostazioni correnti. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 L'operazione di rielaborazione per "" inizierà in background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Errore durante l'esecuzione dell'operazione @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Errore durante il download del documento @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Adatta alla pagina @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 L'operazione di modifica PDF per "" inizierà in background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Errore durante l'esecuzione dell'operazione di modifica PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Inserisci la password corrente prima di tentare di rimuoverla. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 L'operazione di rimozione della password per "" inizierà in background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Errore durante l'esecuzione dell'operazione di rimozione della password @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Stampa non riuscita. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Errore durante il caricamento del documento per la stampa. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Si è verificato un errore durante il caricamento del tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Azzera filtri / selezione @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Apri il primo documento [selezionato] @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Pagina precedente @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Pagina successiva @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 La vista "" è stata salvata. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Impossibile salvare la visualizzazione "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 La vista "" è stata creata. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 La vista "" è stata creata correttamente, ma non è stato possibile aggiornare le impostazioni di visibilità. @@ -13266,11 +13370,19 @@ Dividi su codici a barre dei tag + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 IA abilitata @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Considera le implicazioni sulla privacy quando abiliti le funzionalità di IA, soprattutto se utilizzi un modello remoto. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Backend di embedding LLM @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Modello di embedding LLM + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + Chiave API per embedding LLM + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Utilizzato per gli embedding se impostato, in caso contrario viene impiegata la chiave API dell'LLM. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 Endpoint di integrazione LLM @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 Dimensione del blocco di incorporamento LLM @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 Dimensione del contesto LLM @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 Backend LLM @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 Modello LLM @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 Chiave API LLM @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 Endpoint LLM @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 Lingua di output LLM @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Lingua da utilizzare per i suggerimenti generati dall'IA. Se non specificata, i suggerimenti dell'IA utilizzano la lingua di visualizzazione dell'utente, qualora sia impostata esplicitamente. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Timeout della richiesta LLM @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in secondi per le richieste LLM. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Prec @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Fine diff --git a/src-ui/src/locale/messages.ja_JP.xlf b/src-ui/src/locale/messages.ja_JP.xlf index 64641c72e..1abf6b304 100644 --- a/src-ui/src/locale/messages.ja_JP.xlf +++ b/src-ui/src/locale/messages.ja_JP.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 閉じる - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 前へ Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 次へ Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 月を選択 Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 西暦を選択 Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 前月 Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 翌月 «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 先頭ページ Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 前へ Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 次へ Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 最終ページ @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 時 MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 分 Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 時の増加 Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 時の減少 Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 分の増加 @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 分の減少 @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 秒 @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 秒の増加 @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 秒の減少 @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 閉じる @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ 保存時に受信トレイタグを自動的に削除する + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 読込中にドキュメントのサムネイルを表示する @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 一括編集 @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 確認ダイアログを表示する @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 閉じるときに適用 @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 メモを有効にする @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 デフォルト権限 @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 デフォルトの所有者 @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 デフォルトの表示権限 @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 デフォルトの編集権限 @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 ドキュメントの処理 @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 新しいドキュメントが検出されたときに通知を表示する @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 ドキュメント処理が正常に完了したときに通知を表示する @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 ドキュメント処理が失敗したときに通知を表示する @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 ダッシュボードでの通知を抑制する @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 これにより、ドキュメント処理ステータスに関するすべてのメッセージがダッシュボードに表示されなくなります。 @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 システム言語を使用する @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 表示言語の日付書式を使用する @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 アーカイブ番号 @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 設定は正常に保存されました @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 設定は正常に保存されました。変更を適用するには再読み込みが必要です。 @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 今すぐ再読み込み @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 プレビュー @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + タイプ @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ ドキュメントタイプ - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ ページ + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + 内容 + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 次のドキュメント @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 詳細 @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 作成日 @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ 既定 - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - 内容 - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 更新日 @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 追加日 @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 メディアファイル名 @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 元のファイル名 @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 元のファイルサイズ @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 元の MIME タイプ @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 アーカイブのファイルサイズ + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 元のドキュメントのメタデータ @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 アーカイブされたドキュメントのメタデータ @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 履歴 @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 保存して次へ @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 保存して閉じる @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 破棄 @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 ドキュメントを読み込んでいます... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 パスワードを入力 @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 メタデータの取得に失敗しました @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 コンテンツ: の読み込み中にエラーが発生しました @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 次のドキュメント @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 前のドキュメント @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 ドキュメントを保存 @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 保存して閉じる / 次へ @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 提案の取得に失敗しました @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 ドキュメント「」が正常に保存されました。 @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 ドキュメントの保存に失敗しました @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 ドキュメントの削除に失敗しました @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 この操作により、このドキュメントのアーカイブファイルが永続的に再作成されます。 @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 アーカイブファイルは現在の設定で再生成されます。 @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 操作の実行に失敗しました @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 ドキュメントのダウンロードに失敗しました @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 ページに合わせる @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 TIFFの読み込み中にエラーが発生しました: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 フィルター/選択をリセット @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 最初の [selected] ドキュメントを開く @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 前のページ @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 次のページ @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 ビュー "" は正常に保存されました @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 ビュー " " を保存できませんでした。 @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 ビュー "" は正常に作成されました @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13265,11 +13369,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 前へ @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 終了 diff --git a/src-ui/src/locale/messages.ko_KR.xlf b/src-ui/src/locale/messages.ko_KR.xlf index e10e6cff6..88a3cd15a 100644 --- a/src-ui/src/locale/messages.ko_KR.xlf +++ b/src-ui/src/locale/messages.ko_KR.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 닫기 - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 이전 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 다음 Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 월 선택 Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 연도 선택 Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 지난달 Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 다음 달 «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 처음 Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 이전 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 다음 Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 마지막 @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 시 Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 시간 MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 분 Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 시간 증가 Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 감소 시간 Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 분 단위 증가 @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 분 감소 @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 초 @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 초 단위 증가 @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 초 단위로 감소 @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 닫기 @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ 저장 시 받은 편지함 태그 자동 제거 + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 문서 로딩 중 썸네일 표시 @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 대량 편집중 @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 종료 확인 대화 상자 @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 적용 후 닫기 @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF 편집기 @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 메모 활성화 @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 기본 권한 @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 기본 소유자 @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 기본 열람 권한 @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 기본 편집 권한 @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 문서 처리중 @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 새 문서가 감지되면 알림 표시 @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 문서 처리가 성공적으로 완료되면 알림 표시 @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 문서 처리 실패 시 알림 표시 @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 대시보드에서 알림 표시 안 함 @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 이렇게 하면 대시보드에서 문서 처리 상태에 대한 모든 메시지가 표시되지 않습니다. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 시스템 언어 사용 @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 표시 중인 언어의 날짜 포맷 사용 @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 보관 일련 번호 @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 성공적으로 설정이 저장되었습니다 @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 설정이 성공적으로 저장되었습니다. 일부 변경 사항을 적용하려면 새로 고침이 필요합니다. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 지금 새로 고침 @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 미리보기 @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + 타입 @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ 문서 타입 - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ 페이지 + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + 내용 + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 다음 @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 세부 사항 @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 작성 날짜 @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ 기본값 - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - 내용 - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 수정 날짜 @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 추가된 날짜 @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 미디어 파일명 @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 원본 파일명 @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 원본 파일 사이즈 @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 원본 MIME 타입 @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 파일 사이즈 기록 + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 원본 문서 메타데이터 @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 문서 메타데이터 기록됨 @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 이력 @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 저장 후 다음 @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 저장 후 닫기 @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 폐기 @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 문서 로딩 중... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 비밀번호 입력 @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 메타데이터를 가져오는데 실패하였습니다. @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 콘텐츠를 로드하는 동안 오류가 발생했습니다: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 다음 문서 @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 이전 문서 @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 문서 저장 @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 저장 및 닫기 / 다음 @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 추천을 가져오는데 실패하였습니다. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 문서 ""가 성공적으로 저장되었습니다. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 문서를 저장하는데 오류가 발생하였습니다. @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 문서 삭제 오류 @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 이 작업을 수행하면 이 문서의 아카이브 파일이 영구적으로 다시 생성됩니다. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 아카이브 파일은 현재 설정으로 다시 생성됩니다. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 작업 수행중 오류가 발생하였습니다. @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 문서 다운로드 중 오류 발생 @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 페이지 맞춤 @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 인쇄 실패. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 tiff를 로드하는 동안 오류가 발생했습니다: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 필터/선택 항목 재설정 @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 첫번째 [선택한] 문서 열기 @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 이전 페이지 @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 다음 페이지 @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 뷰가 성공적으로 저장되었습니다. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 뷰가 성공적으로 생성되었습니다. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 이전 @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 끝내기 diff --git a/src-ui/src/locale/messages.lb_LU.xlf b/src-ui/src/locale/messages.lb_LU.xlf index efc304a1d..b2f75cfaf 100644 --- a/src-ui/src/locale/messages.lb_LU.xlf +++ b/src-ui/src/locale/messages.lb_LU.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Zoumaachen - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Zréck Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Weider Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Mount auswielen Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Joer auswielen Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Mount virdrun Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Nächste Mount «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Ufank Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Zréck Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Weider Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Schluss @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stonnen MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutten Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stonnen eropsetzen Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stonnen erofsetzen Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minutten erhéijen @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minutten erofsetzen @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekonnen @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekonnen eropsetzen @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekonnen erofsetzen @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Zoumaachen @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Massebeaarbechtung @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Bestätegungsmessagë weisen @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Späichere beim Zoumaachen @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Enable notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Standardberechtegungen @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Standardbesëtzer @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Standard-Usiichtsberechtegungen @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Standard-Beaarbechtungsberechtegungen @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Dokumenteveraarbechtung @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Notifikatiounen uweise wann nei Dokumenter detektéiert ginn @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Notifikatiounen uweise wann d'Dokumentveraarbechtung erfollegräich ofgeschloss ass @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Notifikatiounen uweise wann d'Dokumenteveraarbechtung feelschléit @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Notifikatiounen op der Startsäit ënnerdrécken @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Doduerch ginn all Messagen iwwer Dokumenteveraarbechtung op der Startsäit ënnerdréckt. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Systemsprooch benotzen @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Datumsformat vun der Sprooch vum Interface notzen @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archiv-Seriennummer @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Astellungen erfollegräich gespäichert. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Astellungen erfollegräich gespäichert. Nei lueden ass néideg fir verschidden Ännerungen ze applizéieren. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Elo nei lueden @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Säit + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Inhalt + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Weider @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detailer @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Erstellungsdatum @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Virdefinéiert - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Inhalt - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Verännert um @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Dobäigesat um @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Dateinumm vum Mediefichier @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Original Dateinumm @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Dateigréisst vum Original @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Urspréngleche MIME-Typ @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archiv-Dateigréisst + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadate vum Original-Dokument @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadate vum Archiv-Dokument @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Späicheren a weider @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Verwerfen @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Passwuert aginn @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Usiicht "" gouf erfollegräich gespäichert. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Vue "" gouf erfollegräich erstallt. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Vir @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Enn diff --git a/src-ui/src/locale/messages.lt_LT.xlf b/src-ui/src/locale/messages.lt_LT.xlf index f7e7586ee..dcf901808 100644 --- a/src-ui/src/locale/messages.lt_LT.xlf +++ b/src-ui/src/locale/messages.lt_LT.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Uždaryti - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Ankstesnis Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Kitas Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Pasirinktas mėnuo Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Pasirinkti metus Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Ankstesnis mėnuo Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Kitas mėnuo «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Pirmas Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Ankstesnis Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Kitas Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Paskutinis @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Valandos MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutės Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Padidinti valandas Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Sumažinti valandas Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Padidinti minutes @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sumažinti minutes @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekundės @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Padidinti sekundes @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sumažinti sekundes @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Uždaryti @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Bulk editing @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Apply on close @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Įjungti užrašus @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Numatytasis savininkas @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Numatytieji redagavimo leidimai @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Document processing @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when new documents are detected @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when document processing completes successfully @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Show notifications when document processing fails @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Suppress notifications on dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about document processing status on the dashboard. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Naudoti sistemos kalbą @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Naudoti rodomos kalbos datos formatą @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archyvo serijinis numeris @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Settings were saved successfully. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Settings were saved successfully. Reload is required to apply some changes. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Perkrauti dabar @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tipas @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Page + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Turinys + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Kitas @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Išsamiau @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Sukūrimo data @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Numatytasis - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Turinys - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Pakeitimo data @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Pridėta data @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Medijos bylos pavadinimas @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Originalus bylos pavadinimas @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Originalus bylos pavadinimas @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Originalus MIME tipas @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archyvo bylos dydis + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Originalaus dokumento metaduomenys @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Archyvuotų dokumentų metaduomenys @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Istorija @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Save & next @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Atmesti @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Įveskite slaptažodį @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Kitas dokumentas @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Ankstesnis dokumentas @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Išsaugoti dokumentą @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Ankstesnis @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Baigti diff --git a/src-ui/src/locale/messages.lv_LV.xlf b/src-ui/src/locale/messages.lv_LV.xlf index 6ecf75401..658d8e571 100644 --- a/src-ui/src/locale/messages.lv_LV.xlf +++ b/src-ui/src/locale/messages.lv_LV.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Aizvērt - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Iepriekšējais Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Nākamais Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Izvēlieties mēnesi Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Izvēlieties gadu Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Iepriekšējais mēnesis Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Nākamais mēnesis «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Pirmā Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Iepriekšējā Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Nākamā Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Pēdējā @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Stundas MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minūtes Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Palielināt stundas Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Samazināt stundas Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Palielināt minūtes @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Samazināt minūtes @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekundes @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Palielināt sekundes @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Samazināt sekundes @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Aizvērt @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Bulk editing @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Show confirmation dialogs @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Apply on close @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Ieslēgt piezīmes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Noklusētās atļaujas @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Noklusētais īpašnieks @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Noklusētās skata atļaujas @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Noklusētās rediģēšanas atļaujas @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Dokumenta apstrāde @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when new documents are detected @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when document processing completes successfully @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Show notifications when document processing fails @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Suppress notifications on dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about document processing status on the dashboard. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Izmantot sistēmas valodu @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Use date format of display language @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archive serial number @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Iestatījumi sekmīgi saglabāti. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Settings were saved successfully. Reload is required to apply some changes. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Reload now @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tips @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Dokumentu veidi - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Lapa + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Saturs + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Nākamā @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Sīkāka informācija @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Izveides datums @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Noklusējuma - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Saturs - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Labošanas datums @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Pievienošanas datums @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media filename @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Original filename @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Original file size @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Original mime type @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Arhīva faila izmērs + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Original document metadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Arhivētā dokumenta metadati @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Save & next @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Discard @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Enter Password @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Iepriekšējais @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Beigas diff --git a/src-ui/src/locale/messages.mk_MK.xlf b/src-ui/src/locale/messages.mk_MK.xlf index 347892e0f..0afdd093b 100644 --- a/src-ui/src/locale/messages.mk_MK.xlf +++ b/src-ui/src/locale/messages.mk_MK.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Close - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Previous Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Next Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Select month Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Select year Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Previous month Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Next month «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 First Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Previous Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Next Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Last @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Hours MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutes Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Increment hours Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Decrement hours Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment minutes @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement minutes @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Seconds @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment seconds @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement seconds @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Close @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Bulk editing @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Show confirmation dialogs @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Apply on close @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Enable notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Default Owner @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Default Edit Permissions @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Document processing @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when new documents are detected @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when document processing completes successfully @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Show notifications when document processing fails @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Suppress notifications on dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about document processing status on the dashboard. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Use system language @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Use date format of display language @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archive serial number @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Settings were saved successfully. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Settings were saved successfully. Reload is required to apply some changes. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Reload now @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Page + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Content + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Next @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Details @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Date created @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Default - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Content - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Date modified @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Date added @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media filename @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Original filename @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Original file size @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Original mime type @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archive file size + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Original document metadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Archived document metadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Save & next @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Discard @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Enter Password @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Prev @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 End diff --git a/src-ui/src/locale/messages.ms_MY.xlf b/src-ui/src/locale/messages.ms_MY.xlf index 8aa964f49..578f7fb96 100644 --- a/src-ui/src/locale/messages.ms_MY.xlf +++ b/src-ui/src/locale/messages.ms_MY.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Close - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Previous Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Next Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Select month Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Select year Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Previous month Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Next month «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 First Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Previous Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Next Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Last @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Hours MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutes Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Increment hours Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Decrement hours Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment minutes @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement minutes @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Seconds @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Increment seconds @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrement seconds @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Close @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Bulk editing @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Show confirmation dialogs @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Apply on close @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Enable notes @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Default Owner @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Default Edit Permissions @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Document processing @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when new documents are detected @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when document processing completes successfully @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Show notifications when document processing fails @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Suppress notifications on dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about document processing status on the dashboard. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Use system language @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Use date format of display language @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archive serial number @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Settings were saved successfully. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Settings were saved successfully. Reload is required to apply some changes. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Reload now @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Preview @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Page + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Content + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Next @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Details @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Date created @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Default - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Content - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Date modified @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Date added @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media filename @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Original filename @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Original file size @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Original mime type @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archive file size + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Original document metadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Archived document metadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Save & next @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Save & close @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Discard @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Enter Password @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Prev @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 End diff --git a/src-ui/src/locale/messages.nl_NL.xlf b/src-ui/src/locale/messages.nl_NL.xlf index 07b47e628..632a113e0 100644 --- a/src-ui/src/locale/messages.nl_NL.xlf +++ b/src-ui/src/locale/messages.nl_NL.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Sluiten - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Vorige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Volgende Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Selecteer maand Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Jaar selecteren Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Vorige maand Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Volgende maand «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Eerste Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Vorige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Volgende Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Laatste @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 UU Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Uren MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuten Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Uren verhogen Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Uren verlagen Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minuten verhogen @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minuten verlagen @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Seconden @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Seconden verhogen @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Seconden verlagen @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Sluiten @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Verwijder inbox label(s) automatisch bij opslaan + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Document thumbnail tonen tijdens het laden @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Ingebouwde velden weer te geven: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Velden uitvinken om te verbergen op de pagina met documentgegevens. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Massabewerking @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Toon dialoogvenster ter bevestiging @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Toepassen bij het sluiten @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF-editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Standaard bewerkingsmodus @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Notities inschakelen @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Standaard rechten @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Standaard eigenaar @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Standaard weergaverechten @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Standaard bewerkingsrechten @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Verwerking van documenten @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Toon meldingen wanneer nieuwe documenten worden gedetecteerd @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Toon een melding wanneer documenten met succes zijn verwerkt @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Toon meldingen wanneer het verwerken van documenten faalt @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Onderdruk meldingen op het dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Dit verbergt alle statusberichten op het dashboard die met het verwerken van documenten te maken hebben. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Gebruik de systeemtaal @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Datumopmaak van weergavetaal gebruiken @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Archief serienummer @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Instellingen zijn succesvol opgeslagen. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Instellingen zijn succesvol opgeslagen. Herladen is vereist om sommige wijzigingen toe te passen. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Nu herladen @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Verwijder wachtwoordbeveiliging @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Maak een niet-beveiligde kopie aan of vervang het bestaande bestand. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Begin @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Voorbeeld @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggesties @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Suggesties tonen @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Geen nieuwe suggesties @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Documenttypes - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Pagina + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Inhoud + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Volgende @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Details @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Aanmaakdatum @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Standaard - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Inhoud - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Wijzigingsdatum @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Datum toegevoegd @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media bestandsnaam @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Originele bestandsnaam @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Originele bestandsgrootte @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Oorspronkelijke mime-type @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archief bestandsgrootte + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Originele document metadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Gearchiveerde document metadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Geschiedenis @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Dubbele documenten gevonden: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In prullenbak @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Opslaan & volgende @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Opslaan & sluiten @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Negeren @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document laden... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Wachtwoord invoeren @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Fout bij ophalen metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Er is een fout opgetreden bij het laden van de inhoud: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Het document is bijgewerkt @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Volgend document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Vorig document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Document opslaan @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Opslaan en sluiten/volgende @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Fout bij ophalen suggesties. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" succesvol opgeslagen. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Fout bij opslaan document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Fout bij verwijderen document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Met deze bewerking wordt het gearchiveerde bestand voor dit document permanent opnieuw gemaakt. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Het gearchiveerde bestand wordt opnieuw gegenereerd met de huidige instellingen. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Fout bij uitvoeren bewerking @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Fout bij downloaden document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Pagina passend maken @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Fout tijdens het bewerken van PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Voer het huidige wachtwoord in voordat je het verwijdert. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Fout bij het verwijderen van wachtwoord @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Printen mislukt. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Fout bij laden van document voor printen. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Fout bij het laden van tiff: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selectie @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open het eerste [geselecteerde] document @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Vorige pagina @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Volgende pagina @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" met succes opgeslagen. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Fout bij het opslaan van weergave "". @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" met succes gemaakt. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13265,11 +13369,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Vorige @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Einde diff --git a/src-ui/src/locale/messages.no_NO.xlf b/src-ui/src/locale/messages.no_NO.xlf index 5aa788329..980141d00 100644 --- a/src-ui/src/locale/messages.no_NO.xlf +++ b/src-ui/src/locale/messages.no_NO.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Lukk - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Skyv av + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Forrige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Neste Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Velg en måned Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Velg år Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Forrige måned Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Neste måned «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Først Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Forrige Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Neste Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Siste @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Timer MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutter Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Økende timer Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Reduksjon i timer Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Økende minutter @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Reduksjon i minutter @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunder @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Tilleggstid i sekund @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Reduksjon sekunder @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Lukk @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Fjern innboks-merke(er) automatisk ved lagring + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Vis miniatyrbilde under lasting @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Innebygde felter å vise: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Fjern avkryssingsfelt for å skjule dem på siden for dokumentdetaljer. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Bulk redigering @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Vis bekreftelsesdialoger @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Bruk ved lukking @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF-redigeringsprogram @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Standard redigeringsmodus @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Aktiver notater @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Standardtillatelser @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Innstillinger gjelder denne brukerkontoen for objekter (Etiketter, postregler, etc.) som er opprettet via web-grensesnittet. Disse innstillingene gjelder ikke for dokumenter. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Standard eier @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Standard visningstillatelser @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Standard redigeringstillatelser @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Dokumentbehandling @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Vis varsler når nye dokumenter oppdages @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Vis varsler når dokumentbehandling er fullført @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Vis varsler når dokumentbehandlingen mislykkes @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Skjul varsler på dashbordet @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Dette vil skjule alle meldinger om dokumentbehandlingsstatus på dashbordet. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Bruk systemspråk @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Bruk datoformat for visningsspråk @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Arkiver serienummer @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Innstillingene ble lagret. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Innstillingene ble lagret. Siden må lastes inn på nytt for å ta i bruk alle endringer. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Oppfrisk nå @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Fjern passordbeskyttelse @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Opprett en ubeskyttet kopi eller erstatte den eksisterende filen. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Forhåndsvis @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Type @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Ingen forslag @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Foreslå @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Vis forslag @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Ingen nye tittelforsforslag @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Dokumenttyper - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, one {}=1 {1 eksisterende verdi foreslått under} other { eksisterende verdier foreslått under}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Side + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Innhold + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Neste @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detaljer @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Dato opprettet @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Standard - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Innhold - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Dato endret @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Dato lagt til @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media filnavn @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Opprinnelig filnavn @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Opprinnelig MD5-sjekksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Opprinnelig filstørrelse @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Opprinnelig mimetype @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Lagret MD5-sjekksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Arkivstørrelse + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Opprinnelig dokumentmetadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Arkivert dokumentmetadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notater @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Historikk @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplikater @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplikate dokumenter oppdaget: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 I papirkurven @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Lagre & Avslutt @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Lagre & Lukk @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Forkast @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Dokument laster... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Skriv inn passord @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Feil ved henting av metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Det oppstod en feil ved lasting av innhold: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Dokumentet ble oppdatert @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Dokumentet ble oppdatert på . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Last på nytt for å forkaste dine lokale ulagrede redigeringer og last den nyeste eksterne versjonen. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Last på nytt @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Dokumentet lastet på nytt med siste endringer. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Dokument lastet på nytt. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Neste dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Forrige dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Lagre dokument @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Lagre og lukk / neste @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Feil ved henting av versjonsinnhold @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Feil ved henting av forslag. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokument "" ble lagret. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Feil ved lagring av dokument "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Feil ved lagring av dokument @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Ønsker du virkelig å flytte dokumentet "" til papirkurven? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Feil ved sletting av dokumentet @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Denne operasjonen vil permanent gjenskape arkivfilen for dette dokumentet. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Arkivfilen vil bli generert på nytt med de nåværende innstillingene. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Ny import for "" vil begynne i bakgrunnen. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Feil under utføring av oppgaven @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Feil ved nedlasting av dokument @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Tilpass siden @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF redigering for "" vil begynne i bakgrunnen. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Feil under utføring av PDF-redigering @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Skriv inn nåværende passord før du prøver å fjerne det. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 PDF redigering for "" vil begynne i bakgrunnen. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Feil under fjerning av passord @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Utskrift mislyktes. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Feil ved lasting av dokument for utskrift. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 En feil oppstod under lasting av tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Tilbakestill filtre / utvalg @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Åpne første [selected] dokument @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Forrige side @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Neste side @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Visning "" ble lagret. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Kan ikke lagre visning "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Visning "" ble opprettet. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Se "" opprettet vellykket, men klarte ikke oppdatere synlighetsinnstillinger. @@ -13266,11 +13370,19 @@ Del på merkets strekkode + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 KI aktivert @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Ta hensyn til personvernimplikasjoner ved aktivering av KI-funksjoner, spesielt hvis du bruker en ekstern modell. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM-innebyggingsmotor @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM innebygd modell + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Innebygd endepunkt @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM-innebyggingings blokkstørrelse @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM-kontekststørrelse @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM-motor @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM modell @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API-nøkkel @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM endepunkt @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM-utdataspråk @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Språk som skal brukes for genererte KI forslag. Når upasset, bruker KI forslag brukerens visningsspråk dersom det er angitt eksplisitt. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Tidsavbrudd for LTM-forespørsel @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Tidsavbrudd i sekunder for LSM-forespørsler. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Forrige @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Slutt diff --git a/src-ui/src/locale/messages.pl_PL.xlf b/src-ui/src/locale/messages.pl_PL.xlf index 5f0849c9e..21cbd1c42 100644 --- a/src-ui/src/locale/messages.pl_PL.xlf +++ b/src-ui/src/locale/messages.pl_PL.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Zamknij - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Poprzedni Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Następny Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Wybierz miesiąc Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Wybierz rok Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Poprzedni miesiąc Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Następny miesiąc «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Pierwszy Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Poprzedni Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Następny Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Ostatni @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 GG Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Godziny MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuty Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Zwiększ godziny Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Zmniejsz godziny Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Zwiększ minuty @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Zmniejsz minuty @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekundy @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Zwiększa sekundy @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Zmniejsz sekundy @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Zamknij @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatyczne usuwanie znacznika(ów) przy zapisywaniu + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Pokaż miniaturkę dokumentu podczas ładowania @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Wbudowane pola do wyświetlenia: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Odznacz pola, aby ukryć je na stronie szczegółów dokumentu. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Edycja grupowa @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Używaj dialogów potwierdzenia @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Zamknięcie zapisuje zmiany @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Edytor dokumentu PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Domyślny tryb edycji @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Włącz notatki @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Domyślnie uprawnienia @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Domyślny Właściciel @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Domyślne uprawnienia do przeglądania @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Domyślne uprawnienia do edycji @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Przetwarzanie dokumentów @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Pokaż powiadomienia, gdy zostaną wykryte nowe dokumenty @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Pokaż powiadomienia, gdy przetwarzanie dokumentu zakończy się pomyślnie @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Pokaż powiadomienia, gdy przetwarzanie dokumentu nie powiedzie się @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Wyłącz powiadomienia na pulpicie @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Wyłącz pokazywanie wszystkich wiadomości o statusie przetwarzania dokumentów na pulpicie. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Użyj języka systemowego @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Użyj formatu daty według wyświetlanego języka @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Numer seryjny archiwum @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Ustawienia zapisane pomyślnie. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Ustawienia zostały pomyślnie zapisane. Przeładowanie jest wymagane do zastosowania zmian. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Załaduj ponownie @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Usuń ochronę hasłem @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Utwórz kopię bez zabezpieczenia lub zastąp istniejący plik. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Rozpocznij @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Podgląd @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Typ @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Zaproponuj @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Pokaż sugestie @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Brak nowych sugestii @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Typy dokumentów - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Strona + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Zawartość + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Następny @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Szczegóły @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Data utworzenia @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Domyślne - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Zawartość - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Data modyfikacji @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Data dodania @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Nazwa pliku @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Oryginalna nazwa pliku @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Rozmiar oryginalnego pliku @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Typ mime oryginału @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Rozmiar pliku archiwalnego + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadane oryginalnego dokumentu @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadane zarchiwizowanego dokumentu @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Historia @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Wykryto duplikat dokumentów: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 W koszu @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Zapisz & następny @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Zapisz & zamknij @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Porzuć zmiany @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Ładowanie dokumentu... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Wprowadź hasło @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Błąd podczas pobierania metadanych @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Wystąpił błąd podczas ładowania zawartości: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Dokument został zaktualizowany @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Dokument został zaktualizowany w . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Załaduj ponownie, aby odrzucić lokalne niezapisane zmiany i załadować najnowszą wersję zdalną. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Przeładuj @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Dokument ponownie załadowany z najnowszymi zmianami. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Dokument został przeładowany. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Następny dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Poprzedni dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Zapisz dokument @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Zapisz i zamknij / następny @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Błąd podczas pobierania zawartości wersji @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Błąd podczas pobierania sugestii. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokument "" zapisany pomyślnie. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Błąd podczas zapisywania dokumentu @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Błąd usuwania dokumentu @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Ta operacja spowoduje trwałe odtworzenie pliku archiwum dla tego dokumentu. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Plik archiwum zostanie ponownie wygenerowany z bieżącymi ustawieniami. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Błąd podczas wykonywania operacji @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Błąd pobierania dokumentu @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Dopasuj do strony @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Błąd podczas edycji dokumentu PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Proszę wprowadzić aktualne hasło przed próbą jego usunięcia. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Błąd podczas operacji usuwania hasła @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Błąd drukowania. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Błąd ładowania dokumentu do wydruku. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Wystąpił błąd podczas ładowania pliku TIFF: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Resetowanie filtrów/wyboru @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Otwórz pierwszy [wybrany] dokument @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Poprzednia strona @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Następna strona @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Widok "" został zapisany. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Nie udało się zapisać widoku "". @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Widok "" został utworzony pomyślnie. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Widok "" utworzono pomyślnie, ale nie można zaktualizować ustawień widoczności. @@ -13265,11 +13369,19 @@ Podział na kody kreskowe tagów + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI włączone @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Rozważ kwestie związane z prywatnością podczas włączania funkcji sztucznej inteligencji, szczególnie w przypadku korzystania z modelu zdalnego. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Usługa do analizy treści dokumentów @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Model do analizy treści dokumentów + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 Usługa sztucznej inteligencji @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 Model sztucznej inteligencji @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 Klucz dostępu do usługi AI @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 Adres usługi AI @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Poprzedni @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Koniec diff --git a/src-ui/src/locale/messages.pt_BR.xlf b/src-ui/src/locale/messages.pt_BR.xlf index a29a2c049..8958aff65 100644 --- a/src-ui/src/locale/messages.pt_BR.xlf +++ b/src-ui/src/locale/messages.pt_BR.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Fechar - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Anterior Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Próximo Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Selecione o mês Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Selecione o ano Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Mês anterior Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Próximo mês «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Primeiro Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Anterior Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Próximo Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Último @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Horas MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutos Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Acrescentar horas Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Deduzir horas Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Acrescentar minutos @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Deduzir minutos @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Segundos @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Acrescentar segundos @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Deduzir segundos @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Fechar @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Remover automaticamente etiquetas de caixa de entrada ao salvar + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Mostrar miniatura do documento durante o carregamento @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Edição em massa @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Mostrar janelas de confirmação @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Aplicar ao fechar @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Editor de PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Habilitar notas @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Permissões Padrão @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Proprietário padrão @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Permissões de visualização padrão @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Permissões de edição padrão @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Processamento de documentos @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Exibir notificações quando novos documentos forem detectados @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Exibir notificações quando o processamento de um documento concluir com sucesso @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Exibir notificações quando o processamento de um documento falhar @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Não exibir notificações no painel de controle @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Isso esconderá todas as mensagens sobre o status de processamento de documentos no painel de controle. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Usar idioma do sistema @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Usar formato de data do idioma de exibição @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Número de série de arquivamento @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 As configurações foram salvas com sucesso. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 As configurações foram salvas com sucesso. É necessário recarregar para aplicar algumas alterações. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Recarregar agora @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remover a proteção por senha @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Crie uma cópia sem proteção ou substitua o arquivo existente. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Iniciar @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Pré-visualizar @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7846,6 +7878,10 @@ Erro ao enviar documentos por e-mail src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tipo @@ -8444,7 +8480,7 @@ Erro ao enviar documentos por e-mail No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Sem sugestões @@ -8452,7 +8488,7 @@ Erro ao enviar documentos por e-mail Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Sugerir @@ -8460,7 +8496,7 @@ Erro ao enviar documentos por e-mail Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Exibir sugestões @@ -8468,7 +8504,7 @@ Erro ao enviar documentos por e-mail No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Sem sugestões novas @@ -8476,7 +8512,7 @@ Erro ao enviar documentos por e-mail Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8484,13 +8520,53 @@ Erro ao enviar documentos por e-mail Tipos de documentos - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9104,6 +9180,10 @@ Erro ao enviar documentos por e-mail Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9118,6 +9198,30 @@ Erro ao enviar documentos por e-mail Página + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Conteúdo + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9254,7 +9358,7 @@ Erro ao enviar documentos por e-mail src/main.ts - 469 + 473 Próximo @@ -9262,7 +9366,7 @@ Erro ao enviar documentos por e-mail Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detalhes @@ -9270,7 +9374,7 @@ Erro ao enviar documentos por e-mail Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Data de criação @@ -9278,7 +9382,7 @@ Erro ao enviar documentos por e-mail Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9286,19 +9390,11 @@ Erro ao enviar documentos por e-mail Padrão - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Conteúdo - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9310,7 +9406,7 @@ Erro ao enviar documentos por e-mail Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Data de modificação @@ -9318,7 +9414,7 @@ Erro ao enviar documentos por e-mail Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Data de adição @@ -9326,7 +9422,7 @@ Erro ao enviar documentos por e-mail Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Nome do arquivo @@ -9334,7 +9430,7 @@ Erro ao enviar documentos por e-mail Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Nome do arquivo original @@ -9342,7 +9438,7 @@ Erro ao enviar documentos por e-mail Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Checksum original SHA256 @@ -9350,7 +9446,7 @@ Erro ao enviar documentos por e-mail Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Tamanho do arquivo original @@ -9358,7 +9454,7 @@ Erro ao enviar documentos por e-mail Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Tipo mime original @@ -9366,7 +9462,7 @@ Erro ao enviar documentos por e-mail Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Arquivar checksum SHA256 @@ -9374,15 +9470,23 @@ Erro ao enviar documentos por e-mail Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Tamanho arquivado + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadados do documento original @@ -9390,7 +9494,7 @@ Erro ao enviar documentos por e-mail Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadados do documento arquivado @@ -9398,7 +9502,7 @@ Erro ao enviar documentos por e-mail Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notas @@ -9406,7 +9510,7 @@ Erro ao enviar documentos por e-mail History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Histórico @@ -9414,7 +9518,7 @@ Erro ao enviar documentos por e-mail Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicados @@ -9422,7 +9526,7 @@ Erro ao enviar documentos por e-mail Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Documentos duplicados detectados: @@ -9430,7 +9534,7 @@ Erro ao enviar documentos por e-mail In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 Em lixo @@ -9438,7 +9542,7 @@ Erro ao enviar documentos por e-mail Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Salvar & próximo @@ -9446,7 +9550,7 @@ Erro ao enviar documentos por e-mail Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Salvar & Fechar @@ -9454,7 +9558,7 @@ Erro ao enviar documentos por e-mail Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Descartar @@ -9462,7 +9566,7 @@ Erro ao enviar documentos por e-mail Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Carregando documentos... @@ -9470,7 +9574,7 @@ Erro ao enviar documentos por e-mail Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Digite a senha @@ -9478,7 +9582,7 @@ Erro ao enviar documentos por e-mail Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Erro ao recuperar metadados @@ -9486,11 +9590,11 @@ Erro ao enviar documentos por e-mail An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Ocorreu um erro ao carregar o conteúdo: @@ -9498,7 +9602,7 @@ Erro ao enviar documentos por e-mail Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Documento Atualizado @@ -9506,7 +9610,7 @@ Erro ao enviar documentos por e-mail Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 O documento foi atualizado em . @@ -9514,7 +9618,7 @@ Erro ao enviar documentos por e-mail Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Recarregue para descartar suas edições locais não salvas e carregar a última versão remota. @@ -9522,7 +9626,7 @@ Erro ao enviar documentos por e-mail Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Recarregar @@ -9530,7 +9634,7 @@ Erro ao enviar documentos por e-mail Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Documento recarregado com as últimas alterações. @@ -9538,7 +9642,7 @@ Erro ao enviar documentos por e-mail Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Documento recarregado. @@ -9546,7 +9650,7 @@ Erro ao enviar documentos por e-mail Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Próximo documento @@ -9554,7 +9658,7 @@ Erro ao enviar documentos por e-mail Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Documento anterior @@ -9562,7 +9666,7 @@ Erro ao enviar documentos por e-mail Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9574,7 +9678,7 @@ Erro ao enviar documentos por e-mail Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Salvar documento @@ -9582,7 +9686,7 @@ Erro ao enviar documentos por e-mail Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Salvar e fechar / próximo @@ -9590,7 +9694,7 @@ Erro ao enviar documentos por e-mail Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Erro ao carregar o conteúdo da versão @@ -9598,7 +9702,7 @@ Erro ao enviar documentos por e-mail Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9622,7 +9726,7 @@ Erro ao enviar documentos por e-mail You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9630,7 +9734,7 @@ Erro ao enviar documentos por e-mail Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9638,7 +9742,7 @@ Erro ao enviar documentos por e-mail Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9646,7 +9750,7 @@ Erro ao enviar documentos por e-mail Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9654,7 +9758,7 @@ Erro ao enviar documentos por e-mail Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Erro ao recuperar sugestões. @@ -9662,11 +9766,11 @@ Erro ao enviar documentos por e-mail Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Documento "" salvo com sucesso. @@ -9674,7 +9778,7 @@ Erro ao enviar documentos por e-mail Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Erro ao salvar o documento "" @@ -9682,7 +9786,7 @@ Erro ao enviar documentos por e-mail Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Erro ao salvar documento @@ -9690,7 +9794,7 @@ Erro ao enviar documentos por e-mail Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Você realmente deseja mover o documento ""? @@ -9698,7 +9802,7 @@ Erro ao enviar documentos por e-mail Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9710,7 +9814,7 @@ Erro ao enviar documentos por e-mail Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Erro ao apagar documento @@ -9718,7 +9822,7 @@ Erro ao enviar documentos por e-mail Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9730,7 +9834,7 @@ Erro ao enviar documentos por e-mail This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Essa operação irá recriar permanentemente o arquivo para este documento. @@ -9738,7 +9842,7 @@ Erro ao enviar documentos por e-mail The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Os arquivos serão re-gerados com as configurações atuais. @@ -9746,7 +9850,7 @@ Erro ao enviar documentos por e-mail Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 A operação de reprocessamento de "" começará em segundo plano. @@ -9754,7 +9858,7 @@ Erro ao enviar documentos por e-mail Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Erro ao executar a operação de divisão @@ -9762,7 +9866,7 @@ Erro ao enviar documentos por e-mail Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Erro ao baixar o documento @@ -9770,7 +9874,7 @@ Erro ao enviar documentos por e-mail Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Ajustar à Página @@ -9778,7 +9882,7 @@ Erro ao enviar documentos por e-mail PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 A operação de edição de PDF para "" começará em segundo plano. @@ -9786,7 +9890,7 @@ Erro ao enviar documentos por e-mail Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Erro ao executar a operação de divisão @@ -9794,7 +9898,7 @@ Erro ao enviar documentos por e-mail Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Digite a senha atual antes de tentar removê-la. @@ -9802,7 +9906,7 @@ Erro ao enviar documentos por e-mail Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 A operação de remoção de senha para "" começará em segundo plano. @@ -9810,7 +9914,7 @@ Erro ao enviar documentos por e-mail Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Erro ao executar operação de remoção de senha @@ -9818,7 +9922,7 @@ Erro ao enviar documentos por e-mail Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Impressão falhou. @@ -9826,7 +9930,7 @@ Erro ao enviar documentos por e-mail Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Erro ao carregar o documento para impressão. @@ -9834,11 +9938,11 @@ Erro ao enviar documentos por e-mail An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Ocorreu um erro ao carregar tiff: @@ -10742,7 +10846,7 @@ Erro ao enviar documentos por e-mail src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10758,7 +10862,7 @@ Erro ao enviar documentos por e-mail src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11042,7 +11146,7 @@ Erro ao enviar documentos por e-mail Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Redefinir filtros / seleção @@ -11050,7 +11154,7 @@ Erro ao enviar documentos por e-mail Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Abrir o primeiro documento [selected] @@ -11058,7 +11162,7 @@ Erro ao enviar documentos por e-mail Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Página anterior @@ -11066,7 +11170,7 @@ Erro ao enviar documentos por e-mail Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Próxima página @@ -11074,7 +11178,7 @@ Erro ao enviar documentos por e-mail View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Visualização "" salva com sucesso. @@ -11082,7 +11186,7 @@ Erro ao enviar documentos por e-mail Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Falha ao salvar a view "". @@ -11090,7 +11194,7 @@ Erro ao enviar documentos por e-mail View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Visualização "" criada com sucesso. @@ -11098,7 +11202,7 @@ Erro ao enviar documentos por e-mail View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13267,11 +13371,19 @@ Erro ao enviar documentos por e-mail Dividir por códigos de barras de etiquetas + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 IA habilitada @@ -13279,7 +13391,7 @@ Erro ao enviar documentos por e-mail Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Considere implicações de privacidade ao habilitar recursos de Inteligência, especialmente se estiver usando um modelo remoto. @@ -13287,7 +13399,7 @@ Erro ao enviar documentos por e-mail LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Backend de embeddings do LLM @@ -13295,15 +13407,31 @@ Erro ao enviar documentos por e-mail LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Modelo de embedding do LLM + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 Endpoint de embedding do LLM @@ -13311,7 +13439,7 @@ Erro ao enviar documentos por e-mail LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 Tamanho do Chunk de embedding do LLM @@ -13319,7 +13447,7 @@ Erro ao enviar documentos por e-mail LLM Context Size src/app/data/paperless-config.ts - 372 + 387 Tamanho do Contexto do LLM @@ -13327,7 +13455,7 @@ Erro ao enviar documentos por e-mail LLM Backend src/app/data/paperless-config.ts - 379 + 394 Backend do LLM @@ -13335,7 +13463,7 @@ Erro ao enviar documentos por e-mail LLM Model src/app/data/paperless-config.ts - 387 + 402 Modelo do LLM @@ -13343,7 +13471,7 @@ Erro ao enviar documentos por e-mail LLM API Key src/app/data/paperless-config.ts - 394 + 409 API Key do LLM @@ -13351,7 +13479,7 @@ Erro ao enviar documentos por e-mail LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 Endpoint do LLM @@ -13359,7 +13487,7 @@ Erro ao enviar documentos por e-mail LLM Output Language src/app/data/paperless-config.ts - 408 + 423 Idioma de Saída do LLM @@ -13367,7 +13495,7 @@ Erro ao enviar documentos por e-mail Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Idioma a ser usado para sugestões geradas por IA. Quando não definido, as sugestões de IA usam o idioma de exibição do usuário, se definido explicitamente. @@ -13375,7 +13503,7 @@ Erro ao enviar documentos por e-mail LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Tempo limite da requisição LLM @@ -13383,7 +13511,7 @@ Erro ao enviar documentos por e-mail Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Tempo limite em segundos para requisições LLM. @@ -14539,7 +14667,7 @@ Erro ao enviar documentos por e-mail Prev src/main.ts - 468 + 472 Anterior @@ -14547,7 +14675,7 @@ Erro ao enviar documentos por e-mail End src/main.ts - 470 + 474 Fim diff --git a/src-ui/src/locale/messages.pt_PT.xlf b/src-ui/src/locale/messages.pt_PT.xlf index 00a9b2045..67d847b4c 100644 --- a/src-ui/src/locale/messages.pt_PT.xlf +++ b/src-ui/src/locale/messages.pt_PT.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Fechar - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Anterior Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Seguinte Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Selecionar mês Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Selecionar ano Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Mês anterior Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Mês seguinte «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Primeiro Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Anterior Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Seguinte Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Último @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Horas MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutos Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Incrementar horas Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Diminuir horas Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrementar minutos @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Diminuir minutos @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Segundos @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrementar segundos @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Diminuir segundos @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Fechar @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automaticamente remover etiqueta(s) da caixa de entrada ao guardar + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Mostrar miniatura do documento durante o carregamento @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Edição em massa @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Mostrar janelas de confirmação @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Aplicar ao fechar @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Ativar notas @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Permissões predefinidas @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Proprietário Padrão @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Permissões de Visualização Padrão @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Permissões Padrão de Edição @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Processamento de documentos @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Exibir notificações quando novos documentos forem detectados @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Exibir notificações quando o processamento de um documento concluir com sucesso @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Mostrar notificações quando o processamento de um documento falhar @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Não mostrar notificações no dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Isso esconderá todas as mensagens sobre o status de processamento de documentos no painel de controle. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Usar linguagem do sistema @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Usar formato de data da linguagem de exibição @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Número de série de arquivamento @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 As configurações foram guardadas com sucesso. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Configurações atualizadas com sucesso. O recarregamento da página é necessário para aplicar algumas alterações. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Recarregar agora @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Pré-Visualizar @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tipo @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Tipo de Documento - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Página + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Conteúdo + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Seguinte @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detalhes @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Data de criação @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Padrão - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Conteúdo - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Data de modificação @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Data de adição @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Nome do ficheiro @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Nome original do ficheiro @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Tamanho do ficheiro original @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Tipo mime original @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Tamanho do arquivo + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadados do documento original @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadados do documento arquivado @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Guardar & próximo @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Gravar e fechar @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Descartar @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Introduzir Palavra-Passe @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Erro ao obter os metadados @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Ocurreu um erro ao carregar o conteúdo: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Erro ao obter sugestões. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Erro ao gravar documento @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Visualização "" guardado com sucesso. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Visualização "" criada com sucesso. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Ant @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Fim diff --git a/src-ui/src/locale/messages.ro_RO.xlf b/src-ui/src/locale/messages.ro_RO.xlf index 40c30a71e..408469ab2 100644 --- a/src-ui/src/locale/messages.ro_RO.xlf +++ b/src-ui/src/locale/messages.ro_RO.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Închide - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Anterior Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Următor Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Selectați luna Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Selectați anul Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Luna precedentă Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Luna următoare «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Primul Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Anteriorul Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Următor Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Ultima @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Ore MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minute Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Incrementare ore Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Decrementare oră Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrementare minute @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrementare minute @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Secunde @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Incrementare secunde @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Decrementare secunde @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Închide @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Elimină automat eticheta (etichetele) Inbox la salvare + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Afișare miniatură document în timpul încărcării @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Editare în bloc @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Afișare dialoguri de confirmare @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Aplică la ieșire @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Editor PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Activați notițe @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Permisiuni implicite @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Deținător implicit @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Permisiuni de vizualizare implicite @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Permisiuni de Editare Implicite @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Procesarea documentelor @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Arată notificări atunci când sunt detectate documente noi @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Arată notificări atunci când procesarea documentului se termină cu succes @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Arată notificări atunci când procesarea documentului eșuează @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Ascunde notificările pe tabloul de bord @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Această setare va opri mesajele despre procesarea documentelor pe tabloul de bord. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Utilizați limba sistemului @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Folosiți formatul datei corespunzător limbii de afișare @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Număr serial în arhivă @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Setările au fost salvate cu succes. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Setările au fost salvate cu succes. Reîncărcarea este necesară pentru a aplica unele modificări. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Reîncarcă acum @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Elimină protecția prin parolă @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Creează o copie neprotejată sau înlocuiește fișierul existent. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Pornire @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Previzualizare @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tip @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Sugerează @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Arată sugestii @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Nicio sugestie nouă @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Tipuri de documente - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Pagina + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Conținut + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Următor @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detalii @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Data creării @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Implicit - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Conținut - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Data ultimei modificări @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Data adăugării @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Numele fișierului media @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Numele original al fișierului @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Dimensiunea fișierului original @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Tip MIME original @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Mărimea arhivei + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadatele documentului original @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadatele documentului arhivat @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Istoric @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Salvează și continuă @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Salvează & închide @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Renunță @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Se încarcă documentul... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Introdu Parola @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Eroare la preluarea metadatelor @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 A apărut o eroare la încărcarea conținutului: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Următorul document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Documentul anterior @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Salvează documentul @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Salvează și închide / următorul @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Eroare la preluarea sugestiilor. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Documentul "salvat cu succes. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Eroare la salvarea documentului @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Eroare la ștergerea documentului @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Această operație va recrea definitiv fișierul arhivă pentru acest document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Fişierul arhivă va fi re-generat cu setările curente. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Eroare la executarea operațiunii @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Eroare la descărcarea documentului @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Potrivire pagină @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Eroare la executarea operaţiei de editare PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Te rugăm să introduci parola curentă înainte de a încerca să o elimini. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Eroare la executarea operaţiei de eliminare a parolei @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Imprimare eșuată. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Eroare la încărcarea documentului pentru imprimare. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 S-a produs o eroare la încărcarea tiff-ului: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Resetare filtre / selecţie @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Deschide primul document [selectat] @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Pagina precedentă @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Pagina următoare @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Vizualizarea "" a fost salvată. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Nu s-a putut salva vizualizarea "". @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Vizualizarea "" a fost creată. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13265,11 +13369,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 IA activat @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Luați în considerare implicațiile confidențialității atunci când activați funcțiile AI, în special dacă folosiți un model de la distanță. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Backend Pentru Încorporare LLM @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Modelul de Încorporare LLM + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 Backend-ul LLM @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 Model LLM @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 Cheie API LLM @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 Endpoint LLM @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Anterior @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Sfârșit diff --git a/src-ui/src/locale/messages.ru_RU.xlf b/src-ui/src/locale/messages.ru_RU.xlf index 8c35d5ff7..83e7f02c5 100644 --- a/src-ui/src/locale/messages.ru_RU.xlf +++ b/src-ui/src/locale/messages.ru_RU.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Закрыть - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Слайд из + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Предыдущий Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Следующий Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Выберите месяц Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Выберите год Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Предыдущий месяц Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Следующий месяц «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Первый Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Предыдущий Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Следующий Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Последний @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ЧЧ Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Часы MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Минуты Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Увеличить часы Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Уменьшить часы Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Увеличить минуты @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Уменьшить минуты @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 СС @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Секунды @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Увеличить секунды @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Уменьшить секунды @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Закрыть @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Автоматически удалять входящие этикетки при сохранении + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Автоматически запрашивать советы ИИ для входящих @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 Если выключено, советы можно запросить с помощью кнопки "Советы ИИ". @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Показывать эскиз документа во время загрузки @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Встроенные поля для показа: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Снимите флажок, чтобы скрыть поля на странице сведений о документе. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Массовое редактирование @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Показывать диалоги подтверждения @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Применить при закрытии @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Редактор PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Режим редактирования по умолчанию @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Включить заметки @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Права по умолчанию @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Настройки применяются к этой учетной записи пользователя для объектов (теги, правила почты и т. п.), созданных через веб-интерфейс. Эти настройки не применяются к документам. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Владелец по умолчанию @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Разрешения на просмотр по умолчанию @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Разрешения на редактирование по умолчанию @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Обработка документа @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Показывать уведомления при обнаружении новых документов @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Показывать уведомления, когда обработка документа успешна @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Показывать уведомления, когда обработка документа не удалась @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Спрятать уведомления на главной @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Это отключит все сообщения о статусе обработки документов на главной. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Использовать язык системы @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Использовать формат даты, соответствующий языку @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Архивный номер (АН) @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Настройки успешно сохранены. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Настройки успешно сохранены. Для применения некоторых изменений необходимо перезагрузить. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Перезагрузить @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Удалить защиту паролем @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Создание незащищенной копии или замена существующего файла. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Пуск @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Предпросмотр @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Тип @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Нет рекомендаций @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Советы ИИ @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Показать рекомендации @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Нет новых предложений @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Типы документов - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {одно существующее значение предлагается} other { существующих значений предлагается}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Страница + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Содержимое + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Следующий @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Детали @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Дата создания @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ По умолчанию - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Содержимое - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Дата изменения @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Дата добавления @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Имя файла @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Исходное имя файла @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Оригинальная контрольная сумма SHA256 @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Размер оригинального файла @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Оригинальный MIME тип @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Архивная контрольная сумма SHA256 @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Размер архива + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Метаданные оригинального документа @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Метаданные архивного документа @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Примечания @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 История @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Дубликаты @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Обнаружены дубликаты документов: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 В Корзине @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Сохранить & следующий @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Сохранить & закрыть @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Отменить @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Документ загружается... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Введите пароль @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Ошибка при получении метаданных @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Произошла ошибка при загрузке контента: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Документ обновлен @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Документ был обновлен в . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Перезагрузите, чтобы отменить локальные несохраненные изменения и загрузить последнюю удаленную версию. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Перезагрузка @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Документ перезагружен с последними изменениями. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Документ перезагружен. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Следующий документ @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Предыдущий документ @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Сохранить документ @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Сохранить и закрыть / далее @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Ошибка при получении содержимого версии @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 У вас есть несохраненные изменения в содержимом этой версии. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Переключение версий удалит их. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Отменить и переключить @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Сохранить и переключить @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Ошибка при получении предложений. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Документ "" успешно сохранён. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Ошибка при сохранении документа "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Ошибка при сохранении документа @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Вы действительно хотите переместить документ "" в корзину? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Ошибка удаления документа @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Это действие перезапишет файл архива для этого документа. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Файл архива будет сгенерирован с текущими настройками. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Переобработка "" начнется в фоновом режиме. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Ошибка при выполнении операции @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Ошибка скачивания документа @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Вместить страницу @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 Редактирование PDF для "" начнется в фоновом режиме. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Ошибка при выполнении операции редактирования PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Пожалуйста, введите текущий пароль перед попыткой его удаления. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Операция удаления пароля для "" начнется в фоновом режиме. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Ошибка при выполнении операции удаления пароля @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Печать не удалась. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Ошибка загрузки документа для печати. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Произошла ошибка при загрузке tiff: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Сбросить фильтры / выбор @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Открыть первый [выбранный] документ @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Предыдущая страница @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Следующая страница @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Представление "" успешно сохранено. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Не удалось сохранить представление "". @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Представление "" успешно создано. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Просмотр "" успешно создан, но не удалось обновить настройки видимости. @@ -13265,11 +13369,19 @@ Разделить на штрихкоды тегов + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 ИИ включен @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 При включении функций ИИ, особенно при использовании удалённой модели, следует учитывать последствия для конфиденциальности. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Бэкенд встраивания LLM @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Модель встраивания LLM + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + API-ключ для LLM встраивания + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Используется для встраивания, если установлено, в противном случае используется API-ключ LLM. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 Конечная точка встраивания LLM @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 Размер кучи встраивания LLM @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 Размер контекста LLM @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 Бэкенд LLM @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 Модель LLM @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 API-ключ LLM @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 Конечная точка LLM @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 Язык выдачи LLM @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Язык для сгенерированных ИИ предложений. Когда отключено, ИИ использует язык пользователя, если он явно установлен. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Таймаут запроса LLM @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Тайм-аут в секундах для LLM запросов. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Пред @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Конец diff --git a/src-ui/src/locale/messages.sk_SK.xlf b/src-ui/src/locale/messages.sk_SK.xlf index 80a067bc5..14b303eee 100644 --- a/src-ui/src/locale/messages.sk_SK.xlf +++ b/src-ui/src/locale/messages.sk_SK.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Zavrieť - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Predchádzajúci Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Ďalší Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Vyberte mesiac Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Vyberte rok Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Predchádzajúci mesiac Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Nasledujúci mesiac «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Prvý Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Predchádzajúci Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Ďalší Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Posledný @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Hodín MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minúty Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Navýšiť hodiny Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Znížiť hodiny Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Navýšiť minúty @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Znížiť minúty @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekundy @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Navýšiť sekundy @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Znížiť sekundy @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Zavrieť @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -479,7 +479,7 @@ src/app/app.component.ts 201 - Attributes like tags, correspondents, document types, storage paths and custom fields can all be managed here. They can also be created from the document edit view. + Tu možno spravovať atribúty, ako sú štítky, korešpondenti, typy dokumentov, cesty k úložisku a vlastné polia. Možno ich vytvárať aj v zobrazení úpravy dokumentu. Manage e-mail accounts and rules for automatically importing documents. @@ -507,7 +507,7 @@ src/app/app.component.ts 225 - Tasks helps you track background work, what needs attention, and what recently completed. + Funkcia Úlohy vám pomáha sledovať prácu na pozadí, záležitosti vyžadujúce pozornosť a nedávno dokončené úlohy. Check out the settings for various tweaks to the web app. @@ -515,7 +515,7 @@ src/app/app.component.ts 233 - Check out the settings for various tweaks to the web app. + Pozrite si nastavenia rôznych vylepšení webovej aplikácie. Thank you! 🙏 @@ -555,7 +555,7 @@ src/app/components/admin/config/config.component.html 4,5 - Global app configuration options which apply to <strong>every</strong> user of this install of Paperless-ngx. Options can also be set using environment variables or the configuration file but the value here will always take precedence. + Globálne možnosti konfigurácie aplikácie, ktoré sa vzťahujú na <strong>každého</strong> používateľa tejto inštalácie Paperless-ngx. Možnosti možno nastaviť aj pomocou premenných prostredia alebo konfiguračného súboru, avšak tu uvedená hodnota bude mať vždy prednosť. Read the documentation about this setting @@ -563,7 +563,7 @@ src/app/components/admin/config/config.component.html 30 - Read the documentation about this setting + Prečítajte si dokumentáciu k tomuto nastaveniu. This value overrides , which is set outside Paperless. @@ -571,7 +571,7 @@ src/app/components/admin/config/config.component.html 35 - This value overrides , which is set outside Paperless. + Táto hodnota prepíše , ktorá je nastavená mimo Paperless. is set outside Paperless. Enter a value here to override it. @@ -579,7 +579,7 @@ src/app/components/admin/config/config.component.html 37 - is set outside Paperless. Enter a value here to override it. + je nastavené mimo aplikácie Paperless. Zadajte sem hodnotu, ak chcete toto nastavenie prepísať. Use the externally configured value @@ -587,7 +587,7 @@ src/app/components/admin/config/config.component.html 42 - Use the externally configured value + Použite externe nakonfigurovanú hodnotu. Reset to external @@ -595,7 +595,7 @@ src/app/components/admin/config/config.component.html 43 - Reset to external + Obnoviť na externé Reset @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1271,7 +1271,7 @@ src/app/components/admin/settings/settings.component.html 188 - 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. + Kontrola aktualizácií funguje tak, že sa prostredníctvom verejného rozhrania GitHub API zisťuje najnovšie vydanie, čím sa overuje dostupnosť novej verzie. Samotnú aktualizáciu aplikácie je však stále nutné vykonať manuálne. No tracking data is collected by the app in any way. @@ -1279,7 +1279,7 @@ src/app/components/admin/settings/settings.component.html 191,192 - No tracking data is collected by the app in any way. + Aplikácia žiadnym spôsobom nezhromažďuje žiadne údaje o sledovaní. Saved Views @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1323,7 +1323,7 @@ src/app/components/admin/settings/settings.component.html 201 - Show document counts in sidebar saved views + Zobraziť počty dokumentov pri uložených zobrazeniach na bočnom paneli Items per page @@ -1387,7 +1387,7 @@ src/app/components/admin/settings/settings.component.html 246,247 - Only applies to the Paperless-ngx PDF viewer. + Vzťahuje sa len na prehliadač PDF v aplikácii Paperless-ngx. Automatically remove inbox tag(s) on save @@ -1395,53 +1395,85 @@ src/app/components/admin/settings/settings.component.html 252 - Automatically remove inbox tag(s) on save + Automaticky odstrániť štítky doručenej pošty pri uložení + + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Predvolené nastavenie návrhov je + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Oboje + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + len ML + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + len AI Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 - Automatically request suggestions for inbox documents + Automaticky vyžiadať návrhy pre dokumenty v doručenej pošte If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 - If un-checked, suggestions must be requested via the Suggest button. + Ak políčko nie je začiarknuté, o návrhy treba požiadať pomocou tlačidla „Navrhnúť“. Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 - Show document thumbnail during loading + Zobraziť miniatúru dokumentu počas načítavania Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 - Built-in fields to show: + Vstavané polia na zobrazenie: Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 - Uncheck fields to hide them on the document details page. + Zrušením zaškrtnutia políčok ich skryjete na stránke s podrobnosťami o dokumente. Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Hromadné úpravy @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Zobrazovať potvrdzovacie okná @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Potvrdiť pri zavretí @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,15 +1513,15 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 - Default editing mode + Predvolený režim úprav Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Povoliť poznámky @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Predvolené povolenia @@ -1605,15 +1637,15 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 - Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. + Nastavenia sa pre tento používateľský účet vzťahujú na objekty (štítky, pravidlá pre poštu atď.) vytvorené prostredníctvom webového rozhrania. Tieto nastavenia sa nevzťahujú na dokumenty. Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Predvolený vlastník @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Predvolené povolenia na zobrazovanie @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Predvolené povolenia na úpravu @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Spracovanie dokumentu @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Zobraziť upozornenie keď je detekovaný nový dokument @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Zobraziť upozornenie keď sa dokončí spracovanie dokumentu @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Zobraziť upozornenie keď spracovanie dokumentu zlyhá @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Nezobrazovať upozornenia na hlavnom paneli @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Táto možnosť prestane zobrazovať upozornenia pri otvorenom hlavnom paneli. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Použiť jazyk systému @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Použiť formát dátumu zvoleného jazyka @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Sériové číslo archívu @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2003,13 +2035,13 @@ src/app/components/document-detail/document-detail.component.html 99,100 - Share Links + Odkazy pre zdieľanie Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Nastavenia boli úspešne uložené. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Nastavenia boli úspešne uložené. Aby sa prejavili zmeny, je potrebné znova načítať webstránku. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Načítať @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2179,7 +2211,7 @@ src/app/components/admin/tasks/tasks.component.html 4,5 - Tasks shows detailed information about document consumption and system tasks. + Sekcia Úlohy zobrazuje podrobné informácie o spracovaní dokumentov a systémových úlohách. Clear selection @@ -2319,7 +2351,7 @@ src/app/components/admin/tasks/tasks.component.html 122 - {VAR_PLURAL, plural, =1 {1 task} other { tasks}} + {VAR_PLURAL, plural, =1 {1 task} other { tasks}} Name @@ -2619,7 +2651,7 @@ src/app/components/admin/tasks/tasks.component.html 207 - View task details + Zobraziť podrobnosti úlohy Dismiss @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -2723,7 +2755,7 @@ src/app/components/admin/tasks/tasks.component.html 285,287 - No tasks match the current filters. + Žiadne úlohy nezodpovedajú aktuálnym filtrom. Result @@ -2755,7 +2787,7 @@ src/app/components/admin/tasks/tasks.component.ts 57 - Recently completed + Nedávno dokončené Consume File @@ -2855,7 +2887,7 @@ src/app/components/admin/tasks/tasks.component.ts 104 - Apply AI Suggestions + Použiť návrhy umelej inteligencie Scheduled @@ -2999,7 +3031,7 @@ src/app/components/admin/tasks/tasks.component.ts 412 - Success. New document id created + Úspešné. Vytvorené nové ID dokumentu . Duplicate of document # @@ -3011,7 +3043,7 @@ src/app/components/admin/tasks/tasks.component.ts 456 - Duplicate of document # + Kópia dokumentu č. Trash @@ -3035,7 +3067,7 @@ src/app/components/admin/trash/trash.component.html 4,5 - Manage trashed documents that are pending deletion. + Spravujte dokumenty v koši, ktoré čakajú na odstránenie. Restore selected @@ -3083,7 +3115,7 @@ src/app/components/admin/trash/trash.component.html 65,66 - days + dni Restore @@ -3247,7 +3279,7 @@ src/app/components/admin/trash/trash.component.html 96 - {VAR_PLURAL, plural, =1 {One document in trash} other { total documents in trash}} + {VAR_PLURAL, plural, =1 {Jeden dokument v koši} other { celkom dokumentov v koši}} Confirm delete @@ -3323,7 +3355,7 @@ src/app/components/admin/trash/trash.component.ts 91 - Document "" deleted + Dokument "" vymazaný Error deleting document "" @@ -3331,7 +3363,7 @@ src/app/components/admin/trash/trash.component.ts 98 - Error deleting document "" + Chyba pri mazaní dokumentu"" This operation will permanently delete the selected documents. @@ -3355,7 +3387,7 @@ src/app/components/admin/trash/trash.component.ts 125 - Document(s) deleted + Dokument(y) vymazané Error deleting document(s) @@ -3363,7 +3395,7 @@ src/app/components/admin/trash/trash.component.ts 132 - Error deleting document(s) + Chyba pri mazaní dokumentov Document "" restored @@ -3371,7 +3403,7 @@ src/app/components/admin/trash/trash.component.ts 145 - Document "" restored + Dokument "" obnovený Error restoring document "" @@ -3379,7 +3411,7 @@ src/app/components/admin/trash/trash.component.ts 156 - Error restoring document "" + Chyba pri obnovovaní dokumentu "" Document(s) restored @@ -3387,7 +3419,7 @@ src/app/components/admin/trash/trash.component.ts 168 - Document(s) restored + Dokument(y) obnovené Error restoring document(s) @@ -3395,7 +3427,7 @@ src/app/components/admin/trash/trash.component.ts 174 - Error restoring document(s) + Chyba pri obnovovaní dokumentov Users & Groups @@ -3419,7 +3451,7 @@ src/app/components/admin/users-groups/users-groups.component.html 4,5 - Create, delete and edit users and groups. + Vytvárať, odstraňovať a upravovať používateľov a skupiny Users @@ -3571,7 +3603,7 @@ src/app/components/admin/users-groups/users-groups.component.html 84,85 - No groups defined + Nie sú definované žiadne skupiny Password has been changed, you will be logged out momentarily. @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3679,7 +3711,7 @@ src/app/components/admin/users-groups/users-groups.component.ts 153 - Deleted user "" + Používateľ odstránený "" Error deleting user "". @@ -3687,7 +3719,7 @@ src/app/components/admin/users-groups/users-groups.component.ts 160 - Error deleting user "". + Chyba pri odstraňovaní používateľa „“. Saved group "". @@ -3727,7 +3759,7 @@ src/app/components/admin/users-groups/users-groups.component.ts 206 - Deleted group "" + Skupina odstránená "" Error deleting group "". @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -3907,7 +3939,7 @@ src/app/components/manage/share-links/share-links.component.html 2,3 - Share links + Odkazy pre zdieľanie Administration @@ -3991,7 +4023,7 @@ src/app/components/app-frame/app-frame.component.ts 480 - Sidebar views updated + Zobrazenia bočného panela aktualizované Error updating sidebar views @@ -3999,7 +4031,7 @@ src/app/components/app-frame/app-frame.component.ts 483 - Error updating sidebar views + Chyba pri aktualizácii bočného panela An error occurred while saving update checking settings. @@ -4187,7 +4219,7 @@ src/app/components/app-frame/global-search/global-search.component.ts 257 - Successfully updated object. + Objekt bol úspešne aktualizovaný. Error occurred saving object. @@ -4199,7 +4231,7 @@ src/app/components/app-frame/global-search/global-search.component.ts 260 - Error occurred saving object. + Pri ukladaní objektu došlo k chybe. Clear All @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4347,7 +4379,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 8,9 - Root document: + Koreňový dokument: Versions (oldest first): @@ -4355,7 +4387,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 16,17 - Versions (oldest first): + Verzie (najstaršia ako prvá): {VAR_PLURAL, plural, =1 {One page} other { pages}} @@ -4367,7 +4399,7 @@ src/app/components/common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component.html 28 - {VAR_PLURAL, plural, =1 {One page} other { pages}} + {VAR_PLURAL, plural, =1 {Jedna strana} other { strany}} Current version @@ -4399,7 +4431,7 @@ src/app/components/common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component.html 38,39 - Use metadata from: + Použiť metadáta z: Regenerate all metadata @@ -4407,7 +4439,7 @@ src/app/components/common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component.html 40,41 - Regenerate all metadata + Znovu vygenerovať všetky metadáta Try to include archive version in merge for non-PDF files @@ -4415,7 +4447,7 @@ src/app/components/common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component.html 48,49 - Try to include archive version in merge for non-PDF files + Pri zlučovaní skúste zahrnúť archívnu verziu pre súbory, ktoré nie sú vo formáte PDF. Delete original documents after successful merge @@ -4423,7 +4455,7 @@ src/app/components/common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component.html 52,53 - Delete original documents after successful merge + Po úspešnom zlúčení odstrániť pôvodné dokumenty Note that only PDFs will be included. @@ -4431,7 +4463,7 @@ src/app/components/common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component.html 55,57 - Note that only PDFs will be included. + Dbajte na to, že zahrnuté budú iba súbory PDF. Replace current document @@ -4439,7 +4471,7 @@ src/app/components/common/confirm-dialog/password-removal-confirm-dialog/password-removal-confirm-dialog.component.html 22,23 - Replace current document + Nahradiť aktuálny dokument Create new document @@ -4455,7 +4487,7 @@ src/app/components/common/confirm-dialog/password-removal-confirm-dialog/password-removal-confirm-dialog.component.html 43,44 - Copy metadata + Kopírovať metadáta Delete original @@ -4473,9 +4505,9 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 - Remove password protection + Odstrániť ochranu heslom? Create an unprotected copy or replace the existing file. @@ -4485,9 +4517,9 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 - Create an unprotected copy or replace the existing file. + Vytvorte nechránenú kópiu alebo nahraďte existujúci súbor. Start @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Štart @@ -4515,7 +4547,7 @@ src/app/components/common/confirm-dialog/reprocess-confirm-dialog/reprocess-confirm-dialog.component.html 17,18 - Sends the document to the configured remote OCR service, which may incur costs. + Odošle dokument do nakonfigurovanej vzdialenej služby OCR, čo môže byť spojené s poplatkami. Rotate counterclockwise @@ -4539,7 +4571,7 @@ src/app/components/common/confirm-dialog/rotate-confirm-dialog/rotate-confirm-dialog.component.html 25,27 - Note that only PDFs will be rotated. + Dbajte na to, že otočené budú iba súbory PDF. View @@ -4599,7 +4631,7 @@ src/app/components/manage/document-attributes/custom-fields/custom-fields.component.ts 85 - Saved field "". + Uložené pole "". Error saving field. @@ -4623,7 +4655,7 @@ src/app/components/common/input/date/date.component.html 16 - Open date picker + Otvorí výber dátumu Today @@ -4747,7 +4779,7 @@ src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html 154 - Remove query + Odstrániť položku Any @@ -4799,7 +4831,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 12 - Clear created relative date + Vymazať vytvorený relatívny dátum Relative dates @@ -4811,7 +4843,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 102,103 - Relative dates + Relatívne dátumy Clear created from date @@ -4819,7 +4851,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 37 - Clear created from date + Vymazať od dátumu vytvorenia From @@ -4839,7 +4871,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 47 - Open created from date picker + Otvorené z výberu dátumu Clear created to date @@ -4867,7 +4899,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 71 - Open created to date picker + Otvoriť výber dátumu vytvorenia Added @@ -4899,7 +4931,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 89 - Clear added relative date + Vymazať pridaný relatívny dátum Clear added from date @@ -4907,7 +4939,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 114 - Clear added from date + Vymazať dátum pridania od Open added from date picker @@ -4915,7 +4947,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 124 - Open added from date picker + Otvoriť výber dátumu pridania od Clear added to date @@ -4923,7 +4955,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 138 - Clear added to date + Vymazať dátum pridania do Open added to date picker @@ -4931,7 +4963,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 148 - Open added to date picker + Otvoriť výber dátumu pridania do now @@ -4947,7 +4979,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.ts 86 - Within 1 week + Do jedného týždňa Within 1 month @@ -4955,7 +4987,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.ts 91 - Within 1 month + Do jedného mesiaca Within 3 months @@ -4963,7 +4995,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.ts 96 - Within 3 months + Do troch mesiacov Within 1 year @@ -4971,7 +5003,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.ts 101 - Within 1 year + do jedného roka This year @@ -5127,7 +5159,7 @@ src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html 14,15 - Data type cannot be changed after a field is created + Po vytvorení poľa už nie je možné zmeniť jeho dátový typ. Add option @@ -5151,7 +5183,7 @@ src/app/components/common/edit-dialog/custom-field-edit-dialog/custom-field-edit-dialog.component.html 44 - 3-character currency code + Trojmiestny kód meny Use locale @@ -5403,7 +5435,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 27 - Stop further processing + Zastaviť ďalšie spracovávanie Stop processing further rules if this rule queues any document(s). @@ -5411,7 +5443,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 27 - Stop processing further rules if this rule queues any document(s). + Zastavte spracúvanie ďalších pravidiel, ak toto pravidlo zaradí do frontu nejaký dokument. Paperless will only process mails that match all of the criteria specified below. @@ -5519,7 +5551,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 52 - Include only files matching + Zahrnúť iba súbory zhodujúce sa Optional. Wildcards e.g. *.pdf or *invoice* allowed. Can be comma-separated list. Case insensitive. @@ -5539,7 +5571,8 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 53 - Exclude files matching + Vylúčiť súbory +zhodujúce sa Action @@ -5889,7 +5922,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Náhľad @@ -6259,7 +6292,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 139 - Relative to + Relatívne k Custom field @@ -6379,7 +6412,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 168 - Content matching algorithm + Algoritmus zhody obsahu Content matching pattern @@ -6881,7 +6914,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6950,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7878,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Typ @@ -8443,7 +8480,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8488,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8496,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8504,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8512,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8520,53 @@ Typy dokumentov - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9180,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9198,30 @@ Strana + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Obsah + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9358,7 @@ src/main.ts - 469 + 473 Ďalší @@ -9261,7 +9366,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Podrobnosti @@ -9269,7 +9374,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Vytvorené @@ -9277,7 +9382,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9390,11 @@ Predvolené - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Obsah - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9406,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Dátum úpravy @@ -9317,7 +9414,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Dátum pridania @@ -9325,7 +9422,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Názov súboru médií @@ -9333,7 +9430,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Originál - názov @@ -9341,7 +9438,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9446,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Originál - veľkosť @@ -9357,7 +9454,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Pôvodný MIME typ @@ -9365,7 +9462,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9470,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Archív - veľkosť + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metadáta originálu @@ -9389,7 +9494,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metadáta archívu @@ -9397,7 +9502,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9510,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9518,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9526,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9534,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9542,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Uložiť & nasledujúci @@ -9445,7 +9550,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Uložiť & zatvoriť @@ -9453,7 +9558,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Zahodiť @@ -9461,7 +9566,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9574,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Zadajte Heslo @@ -9477,7 +9582,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Chyba pri získavaní metadát @@ -9485,11 +9590,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Vyskytla sa chyba počas nahrávania obsahu: @@ -9497,7 +9602,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9610,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9618,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9626,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9634,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9642,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9650,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9658,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9666,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9678,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9686,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9694,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9702,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9726,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9734,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9742,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9750,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9758,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Chyba pri získavaní odporúčaní. @@ -9661,11 +9766,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9778,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9786,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Chyba pri ukladaní dokumentu @@ -9689,7 +9794,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9802,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9814,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Error deleting document @@ -9717,7 +9822,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9834,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9842,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9850,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9858,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9866,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9874,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9882,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9890,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9898,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9906,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9914,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9922,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9930,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9938,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10846,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10862,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11146,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11154,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11162,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11170,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11178,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Pohľad "" úspešne uložený. @@ -11081,7 +11186,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11194,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Pohľad "" úspešne vytvorený. @@ -11097,7 +11202,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13371,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13391,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13399,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13407,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13439,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13447,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13455,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13463,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13471,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13479,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13487,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13495,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13503,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13511,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14667,7 @@ Prev src/main.ts - 468 + 472 Predchádzajúci @@ -14546,7 +14675,7 @@ End src/main.ts - 470 + 474 Koniec diff --git a/src-ui/src/locale/messages.sl_SI.xlf b/src-ui/src/locale/messages.sl_SI.xlf index aa4b1519d..86950be67 100644 --- a/src-ui/src/locale/messages.sl_SI.xlf +++ b/src-ui/src/locale/messages.sl_SI.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Zapri - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Diapozitiv od + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Prejšnji Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Naslednji Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Izberi mesec Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Izberi leto Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Prejšnji mesec Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Naslednji mesec «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Prvi Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Prejšnji Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Naslednja Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Zadnji @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Ura MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuta Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Povečanje ur Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Zmanjšanje ur Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Povečanje minut @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Zmanjšanje minut @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunde @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Povečanje sekund @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Zmanjšanje sekund @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Zapri @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Samodejno odstrani vhodne oznake ob shranjevanju + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Samodejno zahtevaj predloge za dokumente v mapi Prejeto @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 Če polje ni označeno, je treba predloge zahtevati prek gumba Predlagaj. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Pokaži sličico dokumenta med nalaganjem @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Vgrajena polja za prikaz: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Počistite polja, da jih skrijete na strani s podrobnostmi dokumenta. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Množično urejanje @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Pokaži potrditvena okna @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Potrdite ob zaprtju @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Urejevalnik PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Privzeti način urejanja @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Vklopi zapiske @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Privzeta dovoljenja @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Nastavitve veljajo za ta uporabniški račun za objekte (oznake, pravila za pošto itd.), ustvarjene prek spletnega uporabniškega vmesnika. Te nastavitve ne veljajo za dokumente. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Privzeti lastnik @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Privzeta dovoljenja za vpogled @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Privzeta dovoljenja za urejanje @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Obdelava dokumentov @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Pokaži obvestila, ko so zaznani novi dokumenti @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Pokaži obvestila, ko se obdelava dokumenta uspešno zaključi @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Pokaži obvestila, ko obdelava dokumenta ne uspe @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Preprečite obvestila na pregledni strani @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 S tem bodo na plošči prekinjena vsa sporočila o stanju obdelave dokumentov. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Uporabi sistemski jezik @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Uporabite obliko datuma prikaznega jezika @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Arhivska serijska številka @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Nastavitve uspešno shranjene. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Nastavitve so bile uspešno shranjene. Za uveljavitev nekaterih sprememb je potreben ponovni zagon. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Ponovno zaženi @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Odstranite zaščito z geslom @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Ustvarite nezaščiteno kopijo ali zamenjajte obstoječo datoteko. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Začni @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Predogled @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tip @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Brez predlogov @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Predlagaj @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Prikaži predloge @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Brez predlogov za novele @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Vrste dokumentov - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 predlagana obstoječa vrednost spodaj} other { predlaganih obstoječih vrednosti spodaj}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Stran + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Vsebina + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Naslednji @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Podrobnosti @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Datum nastanka @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Privzeto - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Vsebina - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Datum spremembe @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Datum vnosa @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Ime medijske datoteke @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Izvirno ime datoteke @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Izvirna kontrolna vsota SHA256 @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Izvirna velikost datoteke @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Izvirna mime vrsta @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Arhivska kontrolna vsota SHA256 @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Velikost arhivske datoteke + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Izvirni metapodatki dokumenta @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Arhivirani metapodatki dokumenta @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Opombe @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Zgodovina @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Dvojniki @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Zaznani podvojeni dokumenti: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 V koš @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Shrani & naslednjo @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Shrani & zapri @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Zavrzi @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Nalaganje dokumenta... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Vnesi geslo @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Napaka pri pridobivanju metapodatkov @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Napaka pri nalaganju vsebine: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Dokument je bil posodobljen @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Dokument je bil posodobljen ob . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Ponovno naloži, da zavržeš lokalne neshranjene spremembe in naložiš najnovejšo oddaljeno različico. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Ponovno naloži @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Dokument je bil ponovno naložen z najnovejšimi spremembami. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Dokument je bil ponovno naložen. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Naslednji dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Prejšnji dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Shrani dokument @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Shrani in zapri / naprej @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Napaka pri pridobivanju vsebine različice @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 Imate neshranjene spremembe vsebine te različice. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Zamenjava različic jih bo zavrgla. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Zavrzi in zamenjaj @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Shrani in preklopi @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Napaka pri pridobivanju priporočil. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokument "" je bil uspešno shranjen. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Napaka pri shranjevanju dokumenta "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Napaka pri shranjevanju dokumenta @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Ali res želite premakniti dokument "" v koš? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Napaka pri brisanju dokumenta @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 To dejanje bo dokončno poustvarilo arhivsko datoteko za izbran dokument. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Arhivska datoteka bo poustvarjena s trenutnimi nastavitvami. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 V ozadju se bo začel postopek ponovne obdelave za "". @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Napaka pri izvajanju operacije @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Napaka pri prenosu dokumenta @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Prileganje strani @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 Urejanje PDF-ja za "" se bo začelo v ozadju. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Napaka pri urejanju PDF @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Preden poskusite odstraniti geslo, ga vnesite. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Operacija odstranitve gesla za "" se bo začela v ozadju. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Napaka pri izvajanju odstranitve gesla @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Tiskanje ni uspelo. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Napaka pri nalaganju dokumenta za tiskanje. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Pri nalaganju datoteke tiff je prišlo do napake: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Ponastavi filtre / izbor @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Odpri prvi [izbran] dokument @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Prejšnja stran @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Naslednja stran @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Pogled »" je uspešno shranjen. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Shranjevanje pogleda "" ni uspelo. @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Pogled »" je bil uspešno ustvarjen. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Pogled »« je bil uspešno ustvarjen, vendar nastavitev vidnosti ni bilo mogoče posodobiti. @@ -13266,11 +13370,19 @@ Razdelitev na črtne kode na etiketi + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 Umetna inteligenca omogočena @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Pri omogočanju funkcij umetne inteligence upoštevajte posledice za zasebnost, zlasti če uporabljate oddaljeni model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Vdelava LLM zaledja @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Model vdelave LLM + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + Ključ API za vdelave LLM + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Če je nastavljeno, se uporablja za vdelave; v nasprotnem primeru se uporabi ključ API-ja za LLM. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 Končna točka vdelave LLM @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 Velikost vdelanega kosa LLM @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 Velikost konteksta LLM @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 Zaledni sistem za LLM @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 Model LLM @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 Ključ API-ja LLM @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 Končna točka LLM @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 Izhodni jezik LLM @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Jezik, ki se uporablja za ustvarjene predloge umetne inteligence. Če ni nastavljen, predlogi umetne inteligence uporabljajo uporabnikov jezik prikaza, če je izrecno nastavljen. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Časovna omejitev zahteve LLM @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Časovna omejitev v sekundah za zahteve LLM. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Nazaj @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Konec diff --git a/src-ui/src/locale/messages.sq_AL.xlf b/src-ui/src/locale/messages.sq_AL.xlf index cc93d5455..a0ef42354 100644 --- a/src-ui/src/locale/messages.sq_AL.xlf +++ b/src-ui/src/locale/messages.sq_AL.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Mbylle - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 I mëparshëm Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Tjetër Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Zgjidh muajin Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Zgjidh vitin Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Muaji i mëparshëm Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Muaji tjetër «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 [SQ] «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 [SQ] « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 [SQ] » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 [SQ] »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 I pari Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 I mëparshëm Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Tjetër Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 I fundit @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 [SQ] HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Orët MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 [SQ] MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minutat Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Rrit orët Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Uli orët Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Rrit minutat @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Uli minutat @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 [SQ] SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekondat @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Rrit sekondat @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Uli sekondat @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Mbylle @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox etiketë(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show dokument thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Fushat e integruara për t'u shfaqur: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the dokument details faqe. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Redaktim në masë @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Shfaq dialogët e konfirmimit @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Apliko në mbyllje @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Redaktues PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Mënyra parazgjedhje e redaktimit @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Aktivizo shënimet @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Lejet parazgjedhje @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Cilësime apply to this përdorues llogari for objects (Etiketa, Email Rules, etc.) created via the web UI. These cilësime do not apply to dokumente. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Pronari parazgjedhje @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Lejet parazgjedhje të shikimit @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Lejet parazgjedhje të redaktimit @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Përpunimi i dokumenteve @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when new dokumente are detected @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when dokument processing completes successfully @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Show notifications when dokument processing fails @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Shtyp njoftimet në panel @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about dokument processing status on the dashboard. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Përdor gjuhën e sistemit @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Përdor formatin e datës së gjuhës së shfaqjes @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Numri serial i arkivit @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Shimet u ruajtën me sukses. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Cilësimet u ruajtën me sukses. Nevojitet ringarkim për të aplikuar disa ndryshime. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Ringarko tani @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Hiq mbrojtjen me fjalëkalim @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Krijo an unprotected copy or replace the existing skedar. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Fillo @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Parapamje @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Lloji @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Sugjero @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Shfaq sugjerimet @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Nuk ka novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Llojet e dokumenteve - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Faqe + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Përmbajtja + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Tjetër @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detaje @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Datë created @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Parazgjedhje - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Përmbajtja - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Datë modified @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Datë added @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Emri i skedarit të medias @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Origjinal filename @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Origjinal SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Origjinal skedar size @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Origjinal mime type @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Arkiv SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Arkiv skedar size + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Origjinal dokument metadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Të arkivuar dokument metadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Historiku @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate dokumente detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 Në kosh @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Ruaj & tjetër @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Ruaj & mbyll @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Hidh poshtë @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Dokumenti po ngarkohet... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Vendos fjalëkalimin @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Gabim gjatë marrjes së metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Ndodhi një gabim gjatë ngarkimit të përmbajtjes: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Dokumenti u përditësua @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Dokumenti u përditësua më . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Ringarko për të hedhur poshtë redaktimet lokale të paruajtura dhe për të ngarkuar versionin më të fundit nga serveri. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Ringarko @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Dokumenti u ringarkua me ndryshimet më të fundit. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Dokumenti u ringarkua. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Ruaj dokument @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Ruaj dhe mbyll / tjetër @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Gabim gjatë marrjes së version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Gabim gjatë marrjes së suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokument "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Gabim gjatë ruajtjes së dokument "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Gabim gjatë ruajtjes së dokument @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the dokument "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Gabim gjatë fshirjes së dokument @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Ky veprim do të permanently recreate the archive skedar for this dokument. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive skedar will be re-generated with the current cilësime. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Gabim executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Gabim downloading dokument @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Faqe Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Gabim executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current fjalëkalim before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Fjalëkalim removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Gabim executing fjalëkalim removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Printimi dështoi. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Gabim gjatë ngarkimit të dokument for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Ndodhi një gabim gjatë ngarkimit të TIFF: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Rivendos filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Hap first [selected] dokument @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous faqe @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next faqe @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Pamje "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Dështoi të save pamje "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Pamje "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Pamje "" created successfully, but could not update visibility cilësime. @@ -13266,11 +13370,19 @@ Ndaj sipas barkodeve të etiketave + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Aktivizuar @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Merrni parasysh ndikimet në privatësi kur aktivizoni veçoritë AI, sidomos nëse përdorni një model të largët. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Backend-i i embedding LLM @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Modeli i embedding LLM + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 Endpoint-i i embedding LLM @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 Madhësia e copës për embedding LLM @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 Madhësia e kontekstit LLM @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 Backend-i LLM @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 Modeli LLM @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 Çelësi API i LLM @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 Endpoint-i LLM @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Gjuha @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Gjuha to use for generated AI suggestions. When unset, AI suggestions use the përdorues's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Koha limit e kërkesës LLM @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Koha limit në sekonda për kërkesat LLM. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Mbrapa @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Fundi diff --git a/src-ui/src/locale/messages.sr_CS.xlf b/src-ui/src/locale/messages.sr_CS.xlf index 11cb38477..9bdd6cc92 100644 --- a/src-ui/src/locale/messages.sr_CS.xlf +++ b/src-ui/src/locale/messages.sr_CS.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Zatvori - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Prethodni Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Sledeći Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Odaberi mesec Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Odaberi godinu Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Prethodni mesec Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Naredni mesec «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Prvi Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Prethodni Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Sledeći Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Poslednji @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Časovi MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuta Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Povećaj sate Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Smanji sate Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Povećaj minute @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Smanji minute @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekundi @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Povećaj sekunde @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Smanji sekunde @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Zatvori @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatski uklonite oznaku(e) prijemnog sandučeta prilikom čuvanja + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Prikaz sličice dokumenta tokom učitavanja @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Ugrađena polja za prikaz: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Opozovite izbor polja da biste ih sakrili na stranici sa detaljima dokumenta. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Grupno uređivanje @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Prikaži dijaloge za potvrdu @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Primeni pri zatvaranju @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF uređivač @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Podrazumevani režim uređivanja @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Omogući beleške @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Podrazumevane dozvole @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Podrazumevani vlasnik @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Podrazumevane dozvole za prikaz @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Podrazumevane dozvole za uređivanje @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Obrada dokumenata @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Prikaži obaveštenja kada se otkriju novi dokumenti @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Prikaži obaveštenja kada se obrada dokumenta uspešno završi @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Prikaži obaveštenja kada obrada dokumenta ne uspe @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Isključi obaveštenja na kontrolnoj tabli @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Ovo će potisnuti sve poruke o statusu obrade dokumenta na kontrolnoj tabli. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Koristi sistemski jezik @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Koristi format datuma jezika prikaza @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Arhivski serijski broj (ASN) @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Podešavanja su uspešno sačuvana. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Podešavanja su uspešno sačuvana. Potrebno je ponovno učitavanje da biste primenili neke promene. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Ponovo učitaj @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Uklonite zaštitu lozinkom @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Napravite nezaštićenu kopiju ili zamenite postojeću datoteku. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Pokrеni @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Pregled @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tip @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Predloži @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Prikaži predloge @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Nema predloga za nove romane @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Tipovi dokumenta - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Strana + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Sadržaj + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Sledeći @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detalji @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Datum kreiranja @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Podrazumevano - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Sadržaj - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Datum izmene @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Datum dodavanja @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Naziv fajla @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Originalno ime fajla @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Originalna veličina fajla @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Originalni MIME tip @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Arhivska veličina fajla + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Metapodaci originalnog dokumenta @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Metapodaci arhivnog dokumenta @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Istorija @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Otkriveni duplikati dokumenata: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 U otpadu @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Sačuvaj i sledeći @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Sačuvaj i zatvori @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Odbaci @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Učitavanje dokumenta.... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Unesite lozinku @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Greška pri preuzimanju metapodataka @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Greške se pojavila prilikom učitavanja sadržaja: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Dokument je ažuriran @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Dokument je ažuriran u . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Ponovo učitajte da biste odbacili lokalne nesačuvane izmene i učitali najnoviju udaljenu verziju. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Osveži @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Dokument je ponovo učitan sa najnovijim izmenama. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Dokument je ponovo učitan. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Sledeći dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Prethodni dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Sačuvaj dokument @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Sačuvaj i zatvori / sledeće @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Greška pri preuzimanju sadržaja verzije @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Greška pri preuzimanju predloga. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokument "" je sačuvan uspešno. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Greška prilikom čuvanja dokumenta @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Greška prilikom brisanja dokumenta @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Ova akcija će trajno ponovo kreirati arhivski fajl za ovaj dokument. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Arhivski fajl će biti ponovo generisan sa trenutnim podešavanjima. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Greška prilikom izvršavanja operacije @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Greška prilikom preuzimanja dokumenta @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Prilagodi stranicu @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Greška pri izvršavanju operacije uređivanja PDF-a @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Molimo vas da unesete trenutnu lozinku pre nego što pokušate da je uklonite. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Greška pri izvršavanju operacije uklanjanja lozinke @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Štampanje nije uspelo. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Greška pri učitavanju dokumenta za štampanje. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Došlo je do greške prilikom učitavanja TIFF-a: @@ -10742,7 +10846,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10758,7 +10862,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11042,7 +11146,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Resetuj filtere / selekciju @@ -11050,7 +11154,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Otvorite prvi [selected] dokument @@ -11058,7 +11162,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Prethodna stranica @@ -11066,7 +11170,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Sledeća stranica @@ -11074,7 +11178,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Prikaz "" je uspešno sačuvan. @@ -11082,7 +11186,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Nije moguće sačuvati prikaz "". @@ -11090,7 +11194,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Prikaz "" je uspešno kreiran. @@ -11098,7 +11202,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Prikaz „“ je uspešno kreiran, ali podešavanja vidljivosti nisu ažurirana. @@ -13267,11 +13371,19 @@ Podela na oznakama barkodova + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 Omogućena veštačka inteligencija @@ -13279,7 +13391,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Razmotrite implikacije po privatnost prilikom omogućavanja veštačke inteligencije, posebno ako koristite udaljeni model. @@ -13287,7 +13399,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Bekend ugrađivanja LLM-a @@ -13295,15 +13407,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Model ugrađivanja LLM-a + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13311,7 +13439,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13319,7 +13447,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13327,7 +13455,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Bekend @@ -13335,7 +13463,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13343,7 +13471,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Ključ @@ -13351,7 +13479,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13359,7 +13487,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13367,7 +13495,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13375,7 +13503,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13383,7 +13511,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14539,7 +14667,7 @@ Prev src/main.ts - 468 + 472 Prethodni @@ -14547,7 +14675,7 @@ End src/main.ts - 470 + 474 Kraj diff --git a/src-ui/src/locale/messages.sv_SE.xlf b/src-ui/src/locale/messages.sv_SE.xlf index 0f6481bd8..9215b623a 100644 --- a/src-ui/src/locale/messages.sv_SE.xlf +++ b/src-ui/src/locale/messages.sv_SE.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Stäng - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Bildruta av + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Föregående Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Nästa Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Välj månad Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Välj år Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Föregående månad Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Nästa månad «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Första Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Föregående Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Nästa Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Sista @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Timmar MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minuter Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Öka timmar Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Minska timmar Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Öka minuter @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minska minuter @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Sekunder @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Öka sekunder @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Minska sekunder @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Stäng @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Ta automatiskt bort inkorgstagg(ar) vid sparning + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Begär automatiskt förslag för dokument i inkorgen @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 Om den inte är markerad måste förslag begäras via knappen Föreslå. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Visa dokumentminiatyr medan dokumentet läses in @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Inbyggda fält att visa: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Avmarkera fält för att dölja dem på sidan med dokumentinformation. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Massändring @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Visa bekräftelsedialoger @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Tillämpa vid stängning @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF-redigerare @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Standard redigeringsläge @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Aktivera anteckningar @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Standardbehörigheter @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Inställningarna gäller objekt (taggar, e-postregler med mera) som det här användarkontot skapar via webbgränssnittet. De gäller inte dokument. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Standardägare @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Standardbehörigheter för visning @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Standardbehörigheter för redigering @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Dokument bearbetas @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Visa notifieringar när nya dokument upptäcks @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Visa notifieringar när dokumentbehandlingen är klar @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Visa aviseringar när dokumentbehandling misslyckas @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Förhindra aviseringar på instrumentpanelen @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Detta kommer att förhindra alla meddelanden om status för dokumenthantering på instrumentpanelen. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Använd systemspråk @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Använd datumformat för visningsspråk @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Arkivets serienummer @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Inställningarna sparades. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Inställningarna har sparats. Ladda om sidan för att tillämpa vissa ändringar. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Ladda om @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Ta bort lösenordsskydd @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Skapa en oskyddad kopia eller ersätt den befintliga filen. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Förhandsgranska @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Typ @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 Inga förslag @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Föreslå @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Visa förslag @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 Inga nya förslag @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Dokumenttyper - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 befintligt värde föreslås nedan} other { befintliga värden föreslås nedan}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Sida + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Innehåll + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Nästa @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Detaljer @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Datum skapad @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ Standard - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Innehåll - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Datum ändrad @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Datum tillagd @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Media filnamn @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Ursprungligt filnamn @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Ursprunglig SHA256-kontrollsumma @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Ursprunglig filstorlek @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Ursprunglig mime-typ @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 SHA256-kontrollsumma för arkiv @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Arkiv filstorlek + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Ursprungliga dokumentmetadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Arkiverade dokumentmetadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Anteckningar @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Historik @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Dubbletter @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Dubbletter av dokument upptäcktes: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 I papperskorgen @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Spara & nästa @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Spara & stäng @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Avfärda @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Dokument laddar... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Ange lösenord @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Fel vid hämtning av metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Ett fel uppstod när innehållet laddades: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Dokument uppdaterades @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Dokumentet uppdaterades . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Ladda om för att ta bort dina lokala osparade ändringar och läsa in den senaste versionen från servern. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Ladda om @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Dokument laddat om med senaste ändringarna. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Dokument laddat om. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Nästa dokument @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Föregående dokument @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Spara dokument @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Spara och stäng / nästa @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Fel vid hämtning av versionsinnehåll @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 Du har osparade ändringar i innehållet i den här versionen. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Om du byter version förkastas de. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Förkasta och byt @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Spara och byt @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Fel vid hämtning av förslag. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Dokumentet "" har sparats. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Fel när dokumentet "" sparades @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Kunde inte spara dokumentet @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Vill du verkligen flytta dokumentet "" till papperskorgen? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Fel vid borttagning av dokument @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Den här åtgärden återskapar arkivfilen permanent för dokumentet. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Arkivfilen kommer att genereras om med de aktuella inställningarna. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Ombearbetningen av "" startar i bakgrunden. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Fel vid åtgärd @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Fel vid hämtning av dokument @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Anpassa sida @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF-redigeringen av "" startar i bakgrunden. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Fel vid PDF-redigering @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Ange det aktuella lösenordet innan du försöker ta bort lösenordsskyddet. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Borttagningen av lösenordsskyddet för "" startar i bakgrunden. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Fel när lösenordsskyddet skulle tas bort @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Utskrift misslyckades. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Fel vid inläsning av dokument för utskrift. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Ett fel uppstod när TIFF-filen lästes in: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Återställ filter / val @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Öppna första [valt] dokument @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Föregående sida @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Nästa sida @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Vy "" sparades. @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Kunde inte spara vy "". @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Vy "" skapades. @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 Vyn "" skapades, men synlighetsinställningarna kunde inte uppdateras. @@ -13265,11 +13369,19 @@ Uppdelning på taggstreckkoder + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI aktiverad @@ -13277,7 +13389,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Beakta integritetsriskerna när AI-funktioner aktiveras, särskilt om en fjärrmodell används. @@ -13285,7 +13397,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 Serverdel för LLM-inbäddning @@ -13293,15 +13405,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 Modell för LLM-inbäddning + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + API-nyckel för LLM-inbäddning + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Används för inbäddningar när inställd, annars används LLM API-nyckel. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 Slutpunkt för LLM-inbäddning @@ -13309,7 +13437,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 Blockstorlek för LLM-inbäddning @@ -13317,7 +13445,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM-kontextstorlek @@ -13325,7 +13453,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM-serverdel @@ -13333,7 +13461,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM-modell @@ -13341,7 +13469,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM-API-nyckel @@ -13349,7 +13477,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM-slutpunkt @@ -13357,7 +13485,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 Utdataspråk för LLM @@ -13365,7 +13493,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Språk för genererade AI-förslag. Om inget språk har angetts används användarens visningsspråk, om det uttryckligen har valts. @@ -13373,7 +13501,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 Tidsgräns för LLM-begäran @@ -13381,7 +13509,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Tidsgräns i sekunder för LLM-begäranden. @@ -14537,7 +14665,7 @@ Prev src/main.ts - 468 + 472 Föregående @@ -14545,7 +14673,7 @@ End src/main.ts - 470 + 474 Avsluta diff --git a/src-ui/src/locale/messages.th_TH.xlf b/src-ui/src/locale/messages.th_TH.xlf index d61f8d97e..89bd32fa6 100644 --- a/src-ui/src/locale/messages.th_TH.xlf +++ b/src-ui/src/locale/messages.th_TH.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 ปิด - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 ก่อนหน้า Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 ถัดไป Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 เลือกเดือน Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 เลือกปี Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 เดือนก่อนหน้า Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 เดือนถัดไป «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 แรก Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 ก่อนหน้า Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 ต่อไป Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 ล่าสุด @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ชช Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ชั่วโมง MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 นน Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 นาที Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 เพิ่มชั่วโมง Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ลดชั่วโมง Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 เพิ่มนาที @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 ลดนาที @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 วว @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 วินาที @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 เพิ่มวินาที @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 ลดวินาที @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 ปิด @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Automatically remove inbox tag(s) on save + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 การแก้ไขครั้งละจำนวนมาก @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Show confirmation dialogs @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 บันทึกเมื่อปิด @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 เปิดใช้หมายเหตุ @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Default Permissions @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Default Owner @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Default View Permissions @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Default Edit Permissions @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 การประมวลผลเอกสาร @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Show notifications when new documents are detected @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Show notifications when document processing completes successfully @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Show notifications when document processing fails @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Suppress notifications on dashboard @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 This will suppress all messages about document processing status on the dashboard. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 ใช้ภาษาของระบบ @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Use date format of display language @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 รหัสการจัดเก็บถาวร @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Settings were saved successfully. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Settings were saved successfully. Reload is required to apply some changes. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 โหลดใหม่เดี๋ยวนี้ @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 ตัวอย่าง @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + ประเภท @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Document Types - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ หน้า + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + เนื้อหา + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 ต่อไป @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 รายละเอียด @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 วันที่สร้าง @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ ค่าเริ่มต้น - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - เนื้อหา - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 วันที่แก้ไข @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 วันที่เพิ่ม @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 ชื่อไฟล์สื่อ @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 ชื่อไฟล์ต้นฉบับ @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 ขนาดไฟล์เดิม @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 MIME Type ของไฟล์เดิม @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 ขนาดไฟล์เก็บถาวร + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Original document metadata @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Archived document metadata @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 History @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 บันทึก & ถัดไป @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 บันทึก & ปิด @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 ละทิ้ง @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Document loading... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 กรอกรหัสผ่าน @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Error retrieving metadata @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 An error occurred loading content: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Next document @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Previous document @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Save document @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Save and close / next @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Error retrieving suggestions. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Error saving document @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 เกิดข้อผิดพลาดในการลบเอกสาร @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 This operation will permanently recreate the archive file for this document. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 The archive file will be re-generated with the current settings. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Error executing operation @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Error downloading document @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Page Fit @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Reset filters / selection @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Open first [selected] document @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Previous page @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Next page @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 View "" saved successfully. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 View "" created successfully. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 ก่อนหน้า @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 สิ้นสุด diff --git a/src-ui/src/locale/messages.tr_TR.xlf b/src-ui/src/locale/messages.tr_TR.xlf index 22ab167e2..c8259982d 100644 --- a/src-ui/src/locale/messages.tr_TR.xlf +++ b/src-ui/src/locale/messages.tr_TR.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Kapat - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - slayttan . + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Önceki Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Sonraki Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Ay seçin Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Yıl seçin Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Önceki ay Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Sonraki ay «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 İlk Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Önceki Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Sonraki Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Son @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 SS Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Saat MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 AA Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Dakika Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Saati arttır Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Saati azalt Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Dakikayı arttır @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Dakikayı azalt @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Saniye @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Saniyeyi arttır @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Saniyeyi azalt @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Kapat @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Kaydederken gelen kutusu etiketlerini otomatik olarak kaldır + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Yükleme sırasında belge küçük resmini göster @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Gösterilecek yerleşik alanlar: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Belge ayrıntıları sayfasında gizlemek istediğiniz alanların işaretini kaldırın. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Toplu düzenleme @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Onaylama kutularını göster @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Kapatırken uygula @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Düzenleyici @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Varsayılan düzenleme modu @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Notları etkinleştir @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Varsayılan İzinler @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Bu ayarlar, web arayüzü üzerinden oluşturulan nesneler (Etiketler, Posta Kuralları vb.) için bu kullanıcı hesabına uygulanır. Bu ayarlar belgelere uygulanmaz. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Varsayılan Sahip @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Varsayılan Görüntüleme İzinleri @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Varsayılan Değiştirme İzinleri @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Belge işleme @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Yeni belge bulunduğunda bildirimi göster @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Belge işleme başarıyla tamamlandığında bildirimleri göster @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Belge işleme başarız tamamlandığında bildirimleri göster @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Kontrol panelindeki bildirimleri sustur @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Bu, kontrol panelindeki belge işleme durumuyla ilgili tüm iletileri sustur. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Sistem dilini kullan @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Görüntüleme dilinin tarih formatını kullan @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Arşiv seri numarası @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Ayarlar başarıyla kaydedildi. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Ayarlar başarıyla kaydedildi. Bazı değişiklikleri uygulamak için yenileme gereklidir. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Şimdi yenile @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Başla @@ -5891,7 +5923,7 @@ tüm krite src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Ön İzleme @@ -6883,7 +6915,7 @@ tüm krite src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6919,7 +6951,7 @@ tüm krite src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7847,6 +7879,10 @@ tüm krite src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Tür @@ -8445,7 +8481,7 @@ tüm krite No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8453,7 +8489,7 @@ tüm krite Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8461,7 +8497,7 @@ tüm krite Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8469,7 +8505,7 @@ tüm krite No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8477,7 +8513,7 @@ tüm krite Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8485,13 +8521,53 @@ tüm krite Belge Türleri - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9105,6 +9181,10 @@ tüm krite Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9119,6 +9199,30 @@ tüm krite Sayfa + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Içerik + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9255,7 +9359,7 @@ tüm krite src/main.ts - 469 + 473 Sonraki @@ -9263,7 +9367,7 @@ tüm krite Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Ayrıntılar @@ -9271,7 +9375,7 @@ tüm krite Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Oluşturma tarihi @@ -9279,7 +9383,7 @@ tüm krite Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9287,19 +9391,11 @@ tüm krite Varsayılan - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Içerik - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9311,7 +9407,7 @@ tüm krite Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Değiştirilme tarihi @@ -9319,7 +9415,7 @@ tüm krite Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Ekleme tarihi @@ -9327,7 +9423,7 @@ tüm krite Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Medya dosya ismi @@ -9335,7 +9431,7 @@ tüm krite Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Orjinal dosya adı @@ -9343,7 +9439,7 @@ tüm krite Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9351,7 +9447,7 @@ tüm krite Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Orijinal dosya boyutu @@ -9359,7 +9455,7 @@ tüm krite Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Orijinal mime türü @@ -9367,7 +9463,7 @@ tüm krite Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9375,15 +9471,23 @@ tüm krite Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Arşiv dosya boyutu + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Orijinal belge meta verisi @@ -9391,7 +9495,7 @@ tüm krite Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Arşivlenen belge meta verileri @@ -9399,7 +9503,7 @@ tüm krite Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9407,7 +9511,7 @@ tüm krite History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Geçmiş @@ -9415,7 +9519,7 @@ tüm krite Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9423,7 +9527,7 @@ tüm krite Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9431,7 +9535,7 @@ tüm krite In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9439,7 +9543,7 @@ tüm krite Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Kaydet ve sonrakine geç @@ -9447,7 +9551,7 @@ tüm krite Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Kaydet ve kapat @@ -9455,7 +9559,7 @@ tüm krite Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Vazgeç @@ -9463,7 +9567,7 @@ tüm krite Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Belge Yükleniyor... @@ -9471,7 +9575,7 @@ tüm krite Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Parolayı girin @@ -9479,7 +9583,7 @@ tüm krite Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Metaveri alınırken bir hata meydana geldi @@ -9487,11 +9591,11 @@ tüm krite An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 İçerik yüklenirken bir hata ile karşılaşıldı: @@ -9499,7 +9603,7 @@ tüm krite Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9507,7 +9611,7 @@ tüm krite Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9515,7 +9619,7 @@ tüm krite Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9523,7 +9627,7 @@ tüm krite Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9531,7 +9635,7 @@ tüm krite Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9539,7 +9643,7 @@ tüm krite Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9547,7 +9651,7 @@ tüm krite Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Sonraki belge @@ -9555,7 +9659,7 @@ tüm krite Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Önceki belge @@ -9563,7 +9667,7 @@ tüm krite Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9575,7 +9679,7 @@ tüm krite Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Belgeyi kaydet @@ -9583,7 +9687,7 @@ tüm krite Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Kaydet, kapat ve bir sonrakine geç @@ -9591,7 +9695,7 @@ tüm krite Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9599,7 +9703,7 @@ tüm krite Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9623,7 +9727,7 @@ tüm krite You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9631,7 +9735,7 @@ tüm krite Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9639,7 +9743,7 @@ tüm krite Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9647,7 +9751,7 @@ tüm krite Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9655,7 +9759,7 @@ tüm krite Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Öneriler getirilirken bir hata meydana geldi. @@ -9663,11 +9767,11 @@ tüm krite Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 "" belgesi başarıyla kaydedildi. @@ -9675,7 +9779,7 @@ tüm krite Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9683,7 +9787,7 @@ tüm krite Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Belge kaydedilirken bir hata ile karşılaşıldı @@ -9691,7 +9795,7 @@ tüm krite Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9699,7 +9803,7 @@ tüm krite Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9711,7 +9815,7 @@ tüm krite Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Belge silinirken bir hata meydana geldi @@ -9719,7 +9823,7 @@ tüm krite Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9731,7 +9835,7 @@ tüm krite This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Bu işlem, bu belge için arşiv dosyasını kalıcı olarak yeniden oluşturacaktır. @@ -9739,7 +9843,7 @@ tüm krite The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Arşiv dosyası mevcut ayarlarla yeniden oluşturulacaktır. @@ -9747,7 +9851,7 @@ tüm krite Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9755,7 +9859,7 @@ tüm krite Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 İşlemi gerçekleştirirken bir hata ile karşılaşıldı @@ -9763,7 +9867,7 @@ tüm krite Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Belge indirilirken bir hata meydana geldi @@ -9771,7 +9875,7 @@ tüm krite Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Sayfa Sığdır @@ -9779,7 +9883,7 @@ tüm krite PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9787,7 +9891,7 @@ tüm krite Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 PDF düzenleme işlemleri uygulanırken bir hata ile karşılaşıldı @@ -9795,7 +9899,7 @@ tüm krite Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9803,7 +9907,7 @@ tüm krite Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9811,7 +9915,7 @@ tüm krite Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9819,7 +9923,7 @@ tüm krite Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Yazdırma başarısız oldu. @@ -9827,7 +9931,7 @@ tüm krite Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Belgeyi yazdırmaya hazırlarken bir hata ile karşılaşıldı. @@ -9835,11 +9939,11 @@ tüm krite An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 tiff'i yüklenirken bir hata meydana geldi @@ -10742,7 +10846,7 @@ tüm krite src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10758,7 +10862,7 @@ tüm krite src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11042,7 +11146,7 @@ tüm krite Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Filtreleri / seçimi sıfırla @@ -11050,7 +11154,7 @@ tüm krite Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 İlk [selected] belgeyi aç @@ -11058,7 +11162,7 @@ tüm krite Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Önceki sayfa @@ -11066,7 +11170,7 @@ tüm krite Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Sonraki sayfa @@ -11074,7 +11178,7 @@ tüm krite View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 "" adlı görünüm başarıyla kaydedildi. @@ -11082,7 +11186,7 @@ tüm krite Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 "" görünümünü kaydederken bir hata ile karşılaşıldı. @@ -11090,7 +11194,7 @@ tüm krite View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 adlı görünüm başarıyla oluşturuldu. @@ -11098,7 +11202,7 @@ tüm krite View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13267,11 +13371,19 @@ tüm krite Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13279,7 +13391,7 @@ tüm krite Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13287,7 +13399,7 @@ tüm krite LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13295,15 +13407,31 @@ tüm krite LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13311,7 +13439,7 @@ tüm krite LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13319,7 +13447,7 @@ tüm krite LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13327,7 +13455,7 @@ tüm krite LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13335,7 +13463,7 @@ tüm krite LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13343,7 +13471,7 @@ tüm krite LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13351,7 +13479,7 @@ tüm krite LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13359,7 +13487,7 @@ tüm krite LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13367,7 +13495,7 @@ tüm krite Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13375,7 +13503,7 @@ tüm krite LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13383,7 +13511,7 @@ tüm krite Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14539,7 +14667,7 @@ tüm krite Prev src/main.ts - 468 + 472 Önceki @@ -14547,7 +14675,7 @@ tüm krite End src/main.ts - 470 + 474 Son diff --git a/src-ui/src/locale/messages.uk_UA.xlf b/src-ui/src/locale/messages.uk_UA.xlf index 832fb87b4..cd2c0f684 100644 --- a/src-ui/src/locale/messages.uk_UA.xlf +++ b/src-ui/src/locale/messages.uk_UA.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Закрити - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Попередній Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Наступний Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Оберіть місяць Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Оберіть рік Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Попередній місяць Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Наступний місяць «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Перший Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Попередній Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Наступний Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Останній @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ГГ Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Години MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 ММ Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Хвилини Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Збільшити години Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Зменшити години Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Збільшити хвилини @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Зменшити хвилини @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 СС @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Секунди @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Збільшити секунди @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Зменшити секунди @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Закрити @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Автоматично прибирати теги вхідних повідомлень + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Show document thumbnail during loading @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Built-in fields to show: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Uncheck fields to hide them on the document details page. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Групове редагування @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Показувати діалогові вікна з підтвердженням @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Застосувати при закритті @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF Editor @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Default editing mode @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Увімкнути нотатки @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Типові дозволи @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Власник за замовчуванням @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Дозволи перегляду за умовчанням @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Дозволи на редагування за замовчуванням @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Обробка документа @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Показувати сповіщення, коли виявлено нові документи @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Показувати сповіщення після успішної обробки документа @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Показувати сповіщення, коли не вдається обробити документ @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Заховати сповіщення на головній @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Це приховає усі повідомлення про статус обробки документа на головній сторінці. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Використовувати мову системи @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Використовувати формат, що відповідає вибраній мові @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Архівний серійний номер @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Налаштування успішно збережено. @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Налаштування успішно збережені. Оновіть сторінку для застосування змін. @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Перезавантажити зараз @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Попередній перегляд @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Тип @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ Тип документу - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ Сторінка + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Вміст + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 Далі @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Деталі @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Дата створення @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ За замовчуванням - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Вміст - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Дата зміни @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Дата додавання @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Назва медіафайлу @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Оригінальна назва файлу @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Оригінальний розмір файлу @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Оригінальний тип MIME @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Розмір архіву + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Метадані оригінального документа @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Метадані архівованого документа @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Історія @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Зберегти та перейти до наступного @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Зберегти та закрити @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Скасувати @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Завантаження документа... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Введіть пароль @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Помилка отримання метаданих @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Під час завантаження вмісту сталася помилка: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Наступний документ @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Попередній документ @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Зберегти документ @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Зберегти й закрити / наступний @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Помилка при отриманні пропозицій. @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Document "" saved successfully. @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Помилка при збереженні документа @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Помилка видалення документа @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Ця операція остаточно відновить архівний файл цього документа. @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Файл архіву буде повторно створений з поточними налаштуваннями. @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Помилка виконання операції @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Помилка завантаження документа @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Вмістити сторінку @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Error executing PDF edit operation @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 Print failed. @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Error loading document for printing. @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 An error occurred loading tiff: @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Скинути фільтри / вибір @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Відкрити перший [selected] документ @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Попередня сторінка @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Наступна сторінка @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Представлення "" успішно збережено. @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Failed to save view "". @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Представлення "" успішно створено. @@ -11097,7 +11201,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13266,11 +13370,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 Назад @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 Закінчити diff --git a/src-ui/src/locale/messages.vi_VN.xlf b/src-ui/src/locale/messages.vi_VN.xlf index d4411fd8d..fe0e88488 100644 --- a/src-ui/src/locale/messages.vi_VN.xlf +++ b/src-ui/src/locale/messages.vi_VN.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 Đóng - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 Trước Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 Tiếp Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Chọn tháng Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 Chọn năm Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 Tháng trước Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 Tháng sau «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Trang đầu Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Trước Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Tiếp Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 Cuối cùng @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Giờ MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Phút Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Tăng giờ Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 Giảm giờ Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Tăng phút @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Giảm phút @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Giây @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Tăng giây @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Giảm giây @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 Đóng @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ Tự động xóa nhãn thư đến khi lưu + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 Hiển thị hình thu nhỏ tài liệu trong khi tải @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 Các trường tích hợp để hiển thị: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 Bỏ chọn các trường để ẩn chúng trên trang chi tiết tài liệu. @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 Chỉnh sửa hàng loạt @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 Hiển thị hộp thoại xác nhận @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 Áp dụng và đóng @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 Trình chỉnh sửa PDF @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 Chế độ chỉnh sửa mặc định @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 Bật ghi chú @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 Phân quyền mặc định @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 Chủ sở hữu Mặc định @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 Quyền xem mặc định @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 Phân quyền chỉnh sửa mặc định @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 Xử lý tài liệu @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 Hiển thị thông báo khi thấy có tài liệu mới @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 Hiển thị thông báo khi quá trình xử lý tài liệu hoàn tất thành công @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 Hiển thị thông báo khi xử lý tài liệu không thành công @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 Ẩn thông báo trên bảng điều khiển @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 Điều này sẽ chặn tất cả thông báo về trạng thái xử lý tài liệu trên trang tổng quan. @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 Sử dụng ngôn ngữ hệ thống @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 Sử dụng định dạng ngày của ngôn ngữ hiển thị @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 Số sê-ri lưu trữ (ASN) @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1871,7 +1903,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1879,7 +1911,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1907,7 +1939,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1915,7 +1947,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1939,7 +1971,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1955,7 +1987,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1991,7 +2023,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2011,7 +2043,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2035,7 +2067,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2055,7 +2087,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2079,7 +2111,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2099,7 +2131,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2119,7 +2151,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 Cấu hình đã được lưu thành công @@ -2127,7 +2159,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 Cần tải lại trang để áp dụng các thay đổi @@ -2135,7 +2167,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 Tải lại ngay @@ -2143,7 +2175,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2639,7 +2671,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3639,11 +3671,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3855,7 +3887,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4331,7 +4363,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4491,7 +4523,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 Remove password protection @@ -4503,7 +4535,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 Create an unprotected copy or replace the existing file. @@ -4515,7 +4547,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 Start @@ -5913,7 +5945,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 Xem trước @@ -6909,7 +6941,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6945,7 +6977,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7879,6 +7911,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + Loại @@ -8483,7 +8519,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8491,7 +8527,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 Suggest @@ -8499,7 +8535,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 Show suggestions @@ -8507,7 +8543,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 No novel suggestions @@ -8515,7 +8551,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8523,13 +8559,53 @@ Loại Tài liệu - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9149,6 +9225,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9163,6 +9243,30 @@ Trang + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + Nội dung + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9299,7 +9403,7 @@ src/main.ts - 469 + 473 Tiếp @@ -9307,7 +9411,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 Chi tiết @@ -9315,7 +9419,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 Ngày tạo @@ -9323,7 +9427,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9331,19 +9435,11 @@ Mặc định - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - Nội dung - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9355,7 +9451,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 Ngày sửa đổi @@ -9363,7 +9459,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 Ngày thêm @@ -9371,7 +9467,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 Tên tệp Media @@ -9379,7 +9475,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 Tên tệp gốc @@ -9387,7 +9483,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 Original SHA256 checksum @@ -9395,7 +9491,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 Kích thước tệp gốc @@ -9403,7 +9499,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 Loại MIME gốc @@ -9411,7 +9507,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 Archive SHA256 checksum @@ -9419,15 +9515,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 Kích thước tệp lưu trữ + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 Siêu dữ liệu tài liệu gốc @@ -9435,7 +9539,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 Siêu dữ liệu tài liệu lưu trữ @@ -9443,7 +9547,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9451,7 +9555,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 Lịch sử @@ -9459,7 +9563,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9467,7 +9571,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 Duplicate documents detected: @@ -9475,7 +9579,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 In trash @@ -9483,7 +9587,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 Lưu & Tiếp theo @@ -9493,7 +9597,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 Lưu và đóng @@ -9503,7 +9607,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 Hủy bỏ @@ -9511,7 +9615,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 Tải tài liệu ... @@ -9519,7 +9623,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 Nhập mật khẩu @@ -9527,7 +9631,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 Lỗi truy xuất siêu dữ liệu @@ -9535,11 +9639,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 Đã xảy ra lỗi Nội dung tải: @@ -9549,7 +9653,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 Document was updated @@ -9557,7 +9661,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 Document was updated at . @@ -9565,7 +9669,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 Reload to discard your local unsaved edits and load the latest remote version. @@ -9573,7 +9677,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 Reload @@ -9581,7 +9685,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 Document reloaded with latest changes. @@ -9589,7 +9693,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 Document reloaded. @@ -9597,7 +9701,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 Tài liệu sau @@ -9605,7 +9709,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 Tài liệu trước @@ -9613,7 +9717,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9625,7 +9729,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 Lưu tài liệu @@ -9633,7 +9737,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 Lưu và đóng / tiếp theo @@ -9641,7 +9745,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 Error retrieving version content @@ -9649,7 +9753,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9673,7 +9777,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9681,7 +9785,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9689,7 +9793,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9697,7 +9801,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9705,7 +9809,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 Lỗi khi lấy các gợi ý. @@ -9713,11 +9817,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 Tài liệu "" Đã lưu thành công. @@ -9727,7 +9831,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 Error saving document "" @@ -9735,7 +9839,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 Lỗi khi lưu tài liệu @@ -9743,7 +9847,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 Do you really want to move the document "" to the trash? @@ -9751,7 +9855,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9763,7 +9867,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 Lỗi khi xóa tài liệu. @@ -9771,7 +9875,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9783,7 +9887,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 Thao tác này sẽ tạo lại vĩnh viễn tệp lưu trữ cho tài liệu này. @@ -9791,7 +9895,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 Tệp lưu trữ sẽ được tạo lại với các cài đặt hiện tại. @@ -9799,7 +9903,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 Reprocess operation for "" will begin in the background. @@ -9807,7 +9911,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 Lỗi thực hiện thao tác @@ -9815,7 +9919,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 Lỗi khi tải xuống tài liệu @@ -9823,7 +9927,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 Vừa khít trang @@ -9831,7 +9935,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 PDF edit operation for "" will begin in the background. @@ -9839,7 +9943,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 Lỗi khi thực hiện chỉnh sửa PDF @@ -9847,7 +9951,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 Please enter the current password before attempting to remove it. @@ -9855,7 +9959,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 Password removal operation for "" will begin in the background. @@ -9863,7 +9967,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 Error executing password removal operation @@ -9871,7 +9975,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 In ấn thất bại. @@ -9879,7 +9983,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 Lỗi khi tải tài liệu để in. @@ -9887,11 +9991,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 Đã xảy ra lỗi tải TIFF: @@ -10797,7 +10901,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10813,7 +10917,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11103,7 +11207,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 Đặt lại bộ lọc / bỏ chọn @@ -11111,7 +11215,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 Mở tài liệu [Đã chọn] đầu tiên @@ -11119,7 +11223,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 Trang trước @@ -11127,7 +11231,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 Trang tiếp theo @@ -11135,7 +11239,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 Xem "" đã lưu thành công. @@ -11143,7 +11247,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 Không thể lưu chế độ xem "". @@ -11153,7 +11257,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 Xem "" đã tạo thành công. @@ -11161,7 +11265,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 View "" created successfully, but could not update visibility settings. @@ -13400,11 +13504,19 @@ Split on Tag Barcodes + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI Enabled @@ -13412,7 +13524,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 Consider privacy implications when enabling AI features, especially if using a remote model. @@ -13420,7 +13532,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM Embedding Backend @@ -13428,15 +13540,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM Embedding Model + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM Embedding Endpoint @@ -13444,7 +13572,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM Embedding Chunk Size @@ -13452,7 +13580,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM Context Size @@ -13460,7 +13588,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM Backend @@ -13468,7 +13596,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM Model @@ -13476,7 +13604,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API Key @@ -13484,7 +13612,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM Endpoint @@ -13492,7 +13620,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM Output Language @@ -13500,7 +13628,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. @@ -13508,7 +13636,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM Request Timeout @@ -13516,7 +13644,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 Timeout in seconds for LLM requests. @@ -14672,7 +14800,7 @@ Prev src/main.ts - 468 + 472 Trước @@ -14680,7 +14808,7 @@ End src/main.ts - 470 + 474 Kết thúc diff --git a/src-ui/src/locale/messages.zh_CN.xlf b/src-ui/src/locale/messages.zh_CN.xlf index fe1da7672..58a6c518f 100644 --- a/src-ui/src/locale/messages.zh_CN.xlf +++ b/src-ui/src/locale/messages.zh_CN.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 关闭 - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + Slide of Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 上一个 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 下一个 Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 选择月份 Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 选择年份 Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 上个月 Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 下个月 «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 第一页 Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 上一页 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 下一页 Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 最后一页 @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 小时 MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 分钟 Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 增加小时 Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 减少小时 Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 增加分钟 @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 减少分钟 @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 秒 @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 增加秒 @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 减少秒 @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 关闭 @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,11 +1397,43 @@ 保存时自动删除收件箱标签(s) + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + Suggestions default to + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + Both + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + ML only + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + AI only + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 Automatically request suggestions for inbox documents @@ -1409,7 +1441,7 @@ If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 If un-checked, suggestions must be requested via the Suggest button. @@ -1417,7 +1449,7 @@ Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 加载时显示文档缩略图 @@ -1425,7 +1457,7 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 内置显示字段: @@ -1433,7 +1465,7 @@ Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 取消勾选字段可在文档详情页面中隐藏这些字段。 @@ -1441,7 +1473,7 @@ Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 批量编辑 @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 显示确认对话框 @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 关闭时应用 @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF 编辑器 @@ -1481,7 +1513,7 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 默认编辑模式 @@ -1489,7 +1521,7 @@ Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,7 +1533,7 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1513,7 +1545,7 @@ Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 启用备注 @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 默认权限 @@ -1605,7 +1637,7 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 这些设置将应用于通过 Web 界面创建的对象(标签、邮件规则等)。这些设置不适用于文档。 @@ -1613,7 +1645,7 @@ Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 默认所有者 @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 默认查看权限 @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 默认编辑权限 @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 文档处理 @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 检测到新文档时显示通知 @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 文件处理成功完成时显示通知 @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 文件处理失败时显示通知 @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 禁用在仪表盘上的通知 @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 这将禁止仪表盘上所有有关文件处理状态的消息。 @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 使用系统语言 @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 使用显示语言的日期格式 @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 归档序列号 @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 设置保存成功 @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 设置已成功保存。需要重新加载以应用某些更改。 @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 立即重新加载 @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4473,7 +4505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 删除密码保护 @@ -4485,7 +4517,7 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 创建一个不受保护的副本或替换现有文件。 @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 开始 @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 预览 @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + 类型 @@ -8443,7 +8479,7 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 No suggestions @@ -8451,7 +8487,7 @@ Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 建议 @@ -8459,7 +8495,7 @@ Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 显示建议 @@ -8467,7 +8503,7 @@ No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 没有新的建议 @@ -8475,7 +8511,7 @@ Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ 文档类型 - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + Suggestion options + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + Not using default + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + Suggest using: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -9103,6 +9179,10 @@ Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,6 +9197,30 @@ 页码 + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + 内容 + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 下一个 @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 详细信息 @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 创建日期 @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ 默认 - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - 内容 - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 修改日期 @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 日期已添加 @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 媒体文件名 @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 原文件名 @@ -9341,7 +9437,7 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 原始 SHA256 校验和 @@ -9349,7 +9445,7 @@ Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 原始文件大小 @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 原始 mime 类型 @@ -9365,7 +9461,7 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 归档 SHA256 校验和 @@ -9373,15 +9469,23 @@ Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 归档文件大小 + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 原始文档元数据 @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 归档文档元数据 @@ -9397,7 +9501,7 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 Notes @@ -9405,7 +9509,7 @@ History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 历史 @@ -9413,7 +9517,7 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 Duplicates @@ -9421,7 +9525,7 @@ Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 检测到重复文档: @@ -9429,7 +9533,7 @@ In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 在回收站中 @@ -9437,7 +9541,7 @@ Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 保存 & 下一个 @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 保存并关闭 @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 放弃 @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 正在加载文档... @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 输入密码 @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 获取元数据时发生错误 @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 加载内容时发生错误: @@ -9497,7 +9601,7 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 文档已更新 @@ -9505,7 +9609,7 @@ Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 文档已于 更新。 @@ -9513,7 +9617,7 @@ Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 重新加载以丢弃本地未保存的更改,并加载最新的远程版本。 @@ -9521,7 +9625,7 @@ Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 重新加载 @@ -9529,7 +9633,7 @@ Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 已重新加载文档,已应用最新更改。 @@ -9537,7 +9641,7 @@ Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 文档已重新加载。 @@ -9545,7 +9649,7 @@ Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 下一个文档 @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 上一个文档 @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 保存文档 @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 保存并关闭 / 下一个 @@ -9589,7 +9693,7 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 获取版本内容出错 @@ -9597,7 +9701,7 @@ Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,7 +9725,7 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 You have unsaved changes to the content of this version. @@ -9629,7 +9733,7 @@ Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 Switching versions will discard them. @@ -9637,7 +9741,7 @@ Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 Discard and switch @@ -9645,7 +9749,7 @@ Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 Save and switch @@ -9653,7 +9757,7 @@ Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 获取建议时发生错误。 @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 文档 "" 保存成功。 @@ -9673,7 +9777,7 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 保存文档 时发生错误 @@ -9681,7 +9785,7 @@ Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 保存文档时发生错误 @@ -9689,7 +9793,7 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 您真的要将文档 "" 移动到回收站吗? @@ -9697,7 +9801,7 @@ Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 删除文档时发生错误。 @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 此操作将永久重新创建此文档的归档文件。 @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 归档文件将使用当前设置重新生成。 @@ -9745,7 +9849,7 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 “” 的重新处理操作将在后台开始。 @@ -9753,7 +9857,7 @@ Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 执行操作时发生错误 @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 下载文档时出错 @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 适应页面 @@ -9777,7 +9881,7 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 对‘’的 PDF 编辑操作将在后台开始。 @@ -9785,7 +9889,7 @@ Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 执行 PDF 编辑操作出错 @@ -9793,7 +9897,7 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 请在试图删除之前输入当前密码。 @@ -9801,7 +9905,7 @@ Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 "" 的密码删除操作将在后台开始。 @@ -9809,7 +9913,7 @@ Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 执行密码删除操作时出错 @@ -9817,7 +9921,7 @@ Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 打印失败。 @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 加载打印文档时出错。 @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 加载内容时发生错误: @@ -10740,7 +10844,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10756,7 +10860,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11040,7 +11144,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 重置筛选 / 选择 @@ -11048,7 +11152,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 打开第一个 [已选中] 文档 @@ -11056,7 +11160,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 上一頁 @@ -11064,7 +11168,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 下一頁 @@ -11072,7 +11176,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 视图保存成功。 @@ -11080,7 +11184,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 无法保存视图 ""。 @@ -11088,7 +11192,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 视图:创建成功。 @@ -11096,7 +11200,7 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 已成功创建视图“”,但无法更新可见性设置。 @@ -13266,11 +13370,19 @@ 按标签条码拆分 + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents + AI Enabled src/app/data/paperless-config.ts - 335 + 342 AI 已启用 @@ -13278,7 +13390,7 @@ Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 启用 AI 功能时,特别是如果使用远程模型时,考虑隐私问题。 @@ -13286,7 +13398,7 @@ LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 LLM 嵌入后端 @@ -13294,15 +13406,31 @@ LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 LLM 嵌入模型 + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM Embedding API Key + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + Used for embeddings when set, otherwise LLM API key is used. + LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 LLM 嵌入接口 @@ -13310,7 +13438,7 @@ LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 LLM 嵌入块大小 @@ -13318,7 +13446,7 @@ LLM Context Size src/app/data/paperless-config.ts - 372 + 387 LLM 上下文大小 @@ -13326,7 +13454,7 @@ LLM Backend src/app/data/paperless-config.ts - 379 + 394 LLM 后端 @@ -13334,7 +13462,7 @@ LLM Model src/app/data/paperless-config.ts - 387 + 402 LLM 模型 @@ -13342,7 +13470,7 @@ LLM API Key src/app/data/paperless-config.ts - 394 + 409 LLM API 密钥 @@ -13350,7 +13478,7 @@ LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 LLM 接口 @@ -13358,7 +13486,7 @@ LLM Output Language src/app/data/paperless-config.ts - 408 + 423 LLM 输出语言 @@ -13366,7 +13494,7 @@ Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 用于生成 AI 建议的语言。未设置时,如果用户明确设置了显示语言,AI 建议将使用该语言。 @@ -13374,7 +13502,7 @@ LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 LLM 请求超时 @@ -13382,7 +13510,7 @@ Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 LLM 请求超时时间(秒)。 @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 上一个 @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 结尾 diff --git a/src-ui/src/locale/messages.zh_TW.xlf b/src-ui/src/locale/messages.zh_TW.xlf index 2d85b96ae..5f2d848a5 100644 --- a/src-ui/src/locale/messages.zh_TW.xlf +++ b/src-ui/src/locale/messages.zh_TW.xlf @@ -5,145 +5,145 @@ Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/alert/alert.ts - 39 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/alert/alert.ts + 38,39 關閉 - Slide of + Slide of - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 129 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 386,393 Currently selected slide number read by screen reader - Slide of + 投影片 / Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 147,148 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 425,426 上一個 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/carousel/carousel.ts - 187 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/carousel/carousel.ts + 452,453 下一個 Select month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 選取月份 Select year - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation-select.ts - 89 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation-select.ts + 52 選擇年份 Previous month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 74,76 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,76 上個月 Next month - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/datepicker/datepicker-navigation.ts - 103 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/datepicker/datepicker-navigation.ts + 73,74 下個月 «« - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 297 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 «« « - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 « » - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 358 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 » »» - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 396 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277 »» First - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 414,415 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 第一頁 Previous - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 444,445 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 上一頁 Next - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 479,480 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 下一頁 Last - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/pagination/pagination.ts - 506 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/pagination/pagination.ts + 277,278 最後一頁 @@ -152,62 +152,62 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/progressbar/progressbar.ts - 40 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/progressbar/progressbar.ts + 39,40 HH - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 256,259 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 HH Hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 293,295 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 小時 MM - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 322 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 MM Minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 360 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 分鐘 Increment hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 397,399 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 增加小時 Decrement hours - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts - 435,438 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts + 442 減少小時 Increment minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 增加分鐘 @@ -215,7 +215,7 @@ Decrement minutes - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 減少分鐘 @@ -223,7 +223,7 @@ SS - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 SS @@ -231,7 +231,7 @@ Seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 秒 @@ -239,7 +239,7 @@ Increment seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 增加秒數 @@ -247,7 +247,7 @@ Decrement seconds - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 減少秒數 @@ -257,15 +257,15 @@ - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/timepicker/timepicker.ts + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/timepicker/timepicker.ts 442 Close - node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.1.6_@angular+core@22.1.6_@angular+_0f0da7e9cfc35b268da39b83c54e3258/node_modules/src/toast/toast.ts - 110,112 + node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@21.0.0_@angular+common@22.2.0_@angular+core@22.2.0_@angular+_c552d1ba15a99af2612c08752b8c9e9c/node_modules/src/toast/toast.ts + 80 關閉 @@ -279,7 +279,7 @@ src/app/app.component.ts 102 - 文件 被添加至 Paperless-ngx. + 文件「」已新增至 Paperless-ngx. Open document @@ -315,7 +315,7 @@ src/app/app.component.ts 117 - 無法新增 : + 無法新增「」: Document is being processed by Paperless-ngx. @@ -323,7 +323,7 @@ src/app/app.component.ts 132 - 文件 正在被 Paperless-ngx 處理。 + 文件「」正在被 Paperless-ngx 處理。 Dashboard @@ -333,7 +333,7 @@ src/app/components/admin/settings/settings.component.ts - 111 + 112 src/app/components/app-frame/app-frame.component.html @@ -479,7 +479,7 @@ src/app/app.component.ts 201 - Attributes like tags, correspondents, document types, storage paths and custom fields can all be managed here. They can also be created from the document edit view. + 標籤、關聯方、文件類型、儲存路徑與自訂欄位等屬性皆可在此處管理,亦可在「文件編輯」檢視中建立。 Manage e-mail accounts and rules for automatically importing documents. @@ -507,7 +507,7 @@ src/app/app.component.ts 225 - Tasks helps you track background work, what needs attention, and what recently completed. + 「任務」可協助您追蹤背景工作、需要注意的事項,以及最近完成的項目。 Check out the settings for various tweaks to the web app. @@ -571,7 +571,7 @@ src/app/components/admin/config/config.component.html 35 - This value overrides , which is set outside Paperless. + 此參數值會覆蓋於 Paperless 外部設定的 。 is set outside Paperless. Enter a value here to override it. @@ -579,7 +579,7 @@ src/app/components/admin/config/config.component.html 37 - is set outside Paperless. Enter a value here to override it. + 已於 Paperless 外部設定。請在此輸入參數值以覆蓋此設定。 Use the externally configured value @@ -587,7 +587,7 @@ src/app/components/admin/config/config.component.html 42 - Use the externally configured value + 使用外部設定值 Reset to external @@ -595,7 +595,7 @@ src/app/components/admin/config/config.component.html 43 - Reset to external + 重設為外部設定值 Reset @@ -633,7 +633,7 @@ src/app/components/admin/settings/settings.component.html - 423,424 + 441,442 src/app/components/common/confirm-dialog/confirm-dialog.component.ts @@ -713,7 +713,7 @@ src/app/components/admin/settings/settings.component.html - 424,425 + 442,443 src/app/components/common/edit-dialog/correspondent-edit-dialog/correspondent-edit-dialog.component.html @@ -761,7 +761,7 @@ src/app/components/document-detail/document-detail.component.html - 453,454 + 463,464 src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html @@ -945,7 +945,7 @@ src/app/components/document-detail/document-detail.component.html - 472 + 482 src/app/components/document-list/document-list.component.html @@ -1135,7 +1135,7 @@ src/app/components/admin/settings/settings.component.html 115,116 - Sidebar items to show: + 要顯示的側邊欄項目: Dark mode @@ -1289,7 +1289,7 @@ src/app/components/admin/settings/settings.component.ts - 112 + 113 src/app/components/app-frame/app-frame.component.html @@ -1397,27 +1397,59 @@ 儲存時自動移除收件匣標籤 + + Suggestions default to + + src/app/components/admin/settings/settings.component.html + 259,260 + + 建議預設為 + + + Both + + src/app/components/admin/settings/settings.component.html + 264 + + 同時啟用 + + + ML only + + src/app/components/admin/settings/settings.component.html + 266 + + 僅限 ML + + + AI only + + src/app/components/admin/settings/settings.component.html + 268 + + 僅限 AI + Automatically request suggestions for inbox documents src/app/components/admin/settings/settings.component.html - 258 + 276 - Automatically request suggestions for inbox documents + 自動為收件匣文件取得建議 If un-checked, suggestions must be requested via the Suggest button. src/app/components/admin/settings/settings.component.html - 258 + 276 - If un-checked, suggestions must be requested via the Suggest button. + 若未勾選,則需透過「建議」按鈕手動取得建議 Show document thumbnail during loading src/app/components/admin/settings/settings.component.html - 264 + 282 讀取時顯示文件縮圖 @@ -1425,23 +1457,23 @@ Built-in fields to show: src/app/components/admin/settings/settings.component.html - 270,271 + 288,289 - Built-in fields to show: + 要顯示的內建欄位: Uncheck fields to hide them on the document details page. src/app/components/admin/settings/settings.component.html - 282,283 + 300,301 - Uncheck fields to hide them on the document details page. + 取消勾選欄位以在文件詳細資訊頁面中隱藏這些欄位。 Bulk editing src/app/components/admin/settings/settings.component.html - 288,289 + 306,307 大量編輯 @@ -1449,7 +1481,7 @@ Show confirmation dialogs src/app/components/admin/settings/settings.component.html - 291 + 309 顯示確認對話框 @@ -1457,7 +1489,7 @@ Apply on close src/app/components/admin/settings/settings.component.html - 292 + 310 關閉時套用 @@ -1465,7 +1497,7 @@ PDF Editor src/app/components/admin/settings/settings.component.html - 296,297 + 314,315 src/app/components/document-detail/document-detail.component.html @@ -1473,7 +1505,7 @@ src/app/components/document-detail/document-detail.component.ts - 1865 + 1907 PDF 編輯器 @@ -1481,15 +1513,15 @@ Default editing mode src/app/components/admin/settings/settings.component.html - 299,300 + 317,318 - Default editing mode + 預設編輯模式 Create new document(s) src/app/components/admin/settings/settings.component.html - 303,304 + 321,322 src/app/components/common/pdf-editor/pdf-editor.component.html @@ -1501,19 +1533,19 @@ Add document version src/app/components/admin/settings/settings.component.html - 304,305 + 322,323 src/app/components/common/pdf-editor/pdf-editor.component.html 87,88 - Add document version + 新增文件版本 Notes src/app/components/admin/settings/settings.component.html - 309,310 + 327,328 src/app/components/document-list/document-list.component.html @@ -1533,7 +1565,7 @@ Enable notes src/app/components/admin/settings/settings.component.html - 312 + 330 啟用註解 @@ -1541,7 +1573,7 @@ Permissions src/app/components/admin/settings/settings.component.html - 321,322 + 339,340 src/app/components/common/edit-dialog/group-edit-dialog/group-edit-dialog.component.html @@ -1557,7 +1589,7 @@ src/app/components/document-detail/document-detail.component.html - 398,399 + 408,409 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1597,7 +1629,7 @@ Default Permissions src/app/components/admin/settings/settings.component.html - 324,326 + 342,344 預設權限 @@ -1605,15 +1637,15 @@ Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. src/app/components/admin/settings/settings.component.html - 329 + 347 - Settings apply to this user account for objects (Tags, Mail Rules, etc.) created via the web UI. These settings do not apply to documents. + 此設定僅套用於此使用者帳號透過網頁介面建立的物件(標籤、郵件規則等),不套用於文件。 Default Owner src/app/components/admin/settings/settings.component.html - 335,336 + 353,354 預設擁有者 @@ -1621,7 +1653,7 @@ Objects without an owner can be viewed and edited by all users src/app/components/admin/settings/settings.component.html - 339,340 + 357,358 src/app/components/common/input/permissions/permissions-form/permissions-form.component.html @@ -1633,7 +1665,7 @@ Default View Permissions src/app/components/admin/settings/settings.component.html - 344,345 + 362,363 預設檢視權限 @@ -1641,11 +1673,11 @@ Users: src/app/components/admin/settings/settings.component.html - 349,350 + 367,368 src/app/components/admin/settings/settings.component.html - 376,377 + 394,395 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1677,11 +1709,11 @@ Groups: src/app/components/admin/settings/settings.component.html - 359,360 + 377,378 src/app/components/admin/settings/settings.component.html - 386,387 + 404,405 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1713,7 +1745,7 @@ Default Edit Permissions src/app/components/admin/settings/settings.component.html - 371,372 + 389,390 預設編輯權限 @@ -1721,7 +1753,7 @@ Edit permissions also grant viewing permissions src/app/components/admin/settings/settings.component.html - 395,396 + 413,414 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html @@ -1741,7 +1773,7 @@ Notifications src/app/components/admin/settings/settings.component.html - 403,404 + 421,422 src/app/components/app-frame/toasts-dropdown/toasts-dropdown.component.html @@ -1757,7 +1789,7 @@ Document processing src/app/components/admin/settings/settings.component.html - 406,408 + 424,426 文件處理 @@ -1765,7 +1797,7 @@ Show notifications when new documents are detected src/app/components/admin/settings/settings.component.html - 410 + 428 偵測到新文件時顯示通知 @@ -1773,7 +1805,7 @@ Show notifications when document processing completes successfully src/app/components/admin/settings/settings.component.html - 411 + 429 文件處理成功完成時顯示通知 @@ -1781,7 +1813,7 @@ Show notifications when document processing fails src/app/components/admin/settings/settings.component.html - 412 + 430 文件處理失敗時顯示通知 @@ -1789,7 +1821,7 @@ Suppress notifications on dashboard src/app/components/admin/settings/settings.component.html - 413 + 431 於資訊主頁上隱藏通知 @@ -1797,7 +1829,7 @@ This will suppress all messages about document processing status on the dashboard. src/app/components/admin/settings/settings.component.html - 413 + 431 這將隱藏資訊主頁上有關文件處理狀態的所有訊息。 @@ -1805,7 +1837,7 @@ Use system language src/app/components/admin/settings/settings.component.ts - 85 + 86 自動檢測語言 @@ -1813,7 +1845,7 @@ Use date format of display language src/app/components/admin/settings/settings.component.ts - 88 + 89 使用顯示語言所設定的日期格式 @@ -1821,11 +1853,11 @@ Archive serial number src/app/components/admin/settings/settings.component.ts - 102 + 103 src/app/components/document-detail/document-detail.component.html - 173 + 179 封存序號 @@ -1833,7 +1865,7 @@ Correspondent src/app/components/admin/settings/settings.component.ts - 104 + 105 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1841,7 +1873,7 @@ src/app/components/document-detail/document-detail.component.html - 178 + 184 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1869,7 +1901,7 @@ Document type src/app/components/admin/settings/settings.component.ts - 105 + 106 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1877,7 +1909,7 @@ src/app/components/document-detail/document-detail.component.html - 182 + 188 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1905,7 +1937,7 @@ Storage path src/app/components/admin/settings/settings.component.ts - 106 + 107 src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts @@ -1913,7 +1945,7 @@ src/app/components/document-detail/document-detail.component.html - 186 + 192 src/app/components/document-list/bulk-editor/bulk-editor.component.html @@ -1937,7 +1969,7 @@ Tags src/app/components/admin/settings/settings.component.ts - 107 + 108 src/app/components/app-frame/app-frame.component.html @@ -1953,7 +1985,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 34 + 35 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -1989,7 +2021,7 @@ Share Links src/app/components/admin/settings/settings.component.ts - 113 + 114 src/app/components/app-frame/app-frame.component.html @@ -2009,7 +2041,7 @@ Workflows src/app/components/admin/settings/settings.component.ts - 114 + 115 src/app/components/app-frame/app-frame.component.html @@ -2033,7 +2065,7 @@ Mail src/app/components/admin/settings/settings.component.ts - 115 + 116 src/app/components/app-frame/app-frame.component.html @@ -2053,7 +2085,7 @@ Documentation src/app/components/admin/settings/settings.component.ts - 116 + 117 src/app/components/app-frame/app-frame.component.html @@ -2077,7 +2109,7 @@ Error retrieving users src/app/components/admin/settings/settings.component.ts - 280 + 287 src/app/components/admin/users-groups/users-groups.component.ts @@ -2097,7 +2129,7 @@ Error retrieving groups src/app/components/admin/settings/settings.component.ts - 299 + 306 src/app/components/admin/users-groups/users-groups.component.ts @@ -2117,7 +2149,7 @@ Settings were saved successfully. src/app/components/admin/settings/settings.component.ts - 651 + 665 設定儲存成功。 @@ -2125,7 +2157,7 @@ Settings were saved successfully. Reload is required to apply some changes. src/app/components/admin/settings/settings.component.ts - 655 + 669 設定儲存成功。部分變更需要重新載入才能生效。 @@ -2133,7 +2165,7 @@ Reload now src/app/components/admin/settings/settings.component.ts - 656 + 670 立即重新載入 @@ -2141,7 +2173,7 @@ An error occurred while saving settings. src/app/components/admin/settings/settings.component.ts - 666 + 680 src/app/components/app-frame/app-frame.component.ts @@ -2171,7 +2203,7 @@ src/app/components/app-frame/app-frame.component.html 331 - Tasks + 任務 Tasks shows detailed information about document consumption and system tasks. @@ -2179,7 +2211,7 @@ src/app/components/admin/tasks/tasks.component.html 4,5 - Tasks shows detailed information about document consumption and system tasks. + 「任務」會顯示關於文件匯入與系統任務的詳細資訊 Clear selection @@ -2203,7 +2235,7 @@ src/app/components/admin/tasks/tasks.component.html 16 - Dismiss all + 全部清除 All @@ -2263,7 +2295,7 @@ src/app/components/admin/tasks/tasks.component.ts 219 - All types + 所有類型 All sources @@ -2275,7 +2307,7 @@ src/app/components/admin/tasks/tasks.component.ts 231 - All sources + 所有來源 Clear search @@ -2287,7 +2319,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.html 21 - Clear search + 清除搜尋結果 Search tasks @@ -2295,7 +2327,7 @@ src/app/components/admin/tasks/tasks.component.html 92,93 - Search tasks + 搜尋任務 Reset filters @@ -2319,7 +2351,7 @@ src/app/components/admin/tasks/tasks.component.html 122 - {VAR_PLURAL, plural, =1 {1 task} other { tasks}} + {VAR_PLURAL, plural, =1 {1 項任務} other { 項任務}} Name @@ -2619,7 +2651,7 @@ src/app/components/admin/tasks/tasks.component.html 207 - View task details + 檢視任務詳細資訊 Dismiss @@ -2637,7 +2669,7 @@ src/app/components/document-detail/document-detail.component.ts - 690 + 713 src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html @@ -2659,7 +2691,7 @@ src/app/components/admin/tasks/tasks.component.html 232,233 - Result message + 結果訊息 Duplicate @@ -2667,7 +2699,7 @@ src/app/components/admin/tasks/tasks.component.html 239,240 - Duplicate + 複製 Open @@ -2707,7 +2739,7 @@ src/app/components/admin/tasks/tasks.component.html 257,258 - Input data + 輸入資料 Result data @@ -2715,7 +2747,7 @@ src/app/components/admin/tasks/tasks.component.html 263,264 - Result data + 結果資料 No tasks match the current filters. @@ -2723,7 +2755,7 @@ src/app/components/admin/tasks/tasks.component.html 285,287 - No tasks match the current filters. + 沒有符合目前篩選條件的任務。 Result @@ -2739,7 +2771,7 @@ src/app/components/admin/tasks/tasks.component.ts 55 - Needs attention + 需要注意 In progress @@ -2747,7 +2779,7 @@ src/app/components/admin/tasks/tasks.component.ts 56 - In progress + 處理中 Recently completed @@ -2755,7 +2787,7 @@ src/app/components/admin/tasks/tasks.component.ts 57 - Recently completed + 最近完成的 Consume File @@ -2763,7 +2795,7 @@ src/app/components/admin/tasks/tasks.component.ts 66 - Consume File + 處理文件 Train Classifier @@ -2771,7 +2803,7 @@ src/app/components/admin/tasks/tasks.component.ts 70 - Train Classifier + 分類器訓練 Sanity Check @@ -2779,7 +2811,7 @@ src/app/components/admin/tasks/tasks.component.ts 74 - Sanity Check + 系統健全性檢查 Mail Fetch @@ -2799,7 +2831,7 @@ src/app/components/admin/tasks/tasks.component.ts 77 - LLM Index + LLM 索引 Empty Trash @@ -2807,7 +2839,7 @@ src/app/components/admin/tasks/tasks.component.ts 80 - Empty Trash + 清空垃圾桶 Check Workflows @@ -2815,7 +2847,7 @@ src/app/components/admin/tasks/tasks.component.ts 84 - Check Workflows + 檢查工作流程 Bulk Update @@ -2823,7 +2855,7 @@ src/app/components/admin/tasks/tasks.component.ts 88 - Bulk Update + 批次更新 Reprocess Document @@ -2831,7 +2863,7 @@ src/app/components/admin/tasks/tasks.component.ts 92 - Reprocess Document + 重新處理文件 Build Share Link @@ -2839,7 +2871,7 @@ src/app/components/admin/tasks/tasks.component.ts 96 - Build Share Link + 建立共用連結 Bulk Delete @@ -2847,7 +2879,7 @@ src/app/components/admin/tasks/tasks.component.ts 100 - Bulk Delete + 批次刪除 Apply AI Suggestions @@ -2855,7 +2887,7 @@ src/app/components/admin/tasks/tasks.component.ts 104 - Apply AI Suggestions + 套用 AI 建議 Scheduled @@ -2899,7 +2931,7 @@ src/app/components/admin/tasks/tasks.component.ts 123 - Folder Consume + 檔案夾處理量 Email Consume @@ -2907,7 +2939,7 @@ src/app/components/admin/tasks/tasks.component.ts 127 - Email Consume + 電子郵件處理量 System @@ -2915,7 +2947,7 @@ src/app/components/admin/tasks/tasks.component.ts 129 - System + 系統 Manual @@ -2923,7 +2955,7 @@ src/app/components/admin/tasks/tasks.component.ts 130 - Manual + 手動 Dismiss selected @@ -2939,7 +2971,7 @@ src/app/components/admin/tasks/tasks.component.ts 244 - Dismiss visible + 清除可見項目 Confirm Dismiss @@ -2947,7 +2979,7 @@ src/app/components/admin/tasks/tasks.component.ts 318 - Confirm Dismiss + 確認清除 Dismiss tasks? @@ -2955,7 +2987,7 @@ src/app/components/admin/tasks/tasks.component.ts 319 - Dismiss tasks? + 要清除 項任務嗎? Error dismissing tasks @@ -2983,7 +3015,7 @@ src/app/components/admin/tasks/tasks.component.ts 352 - Confirm Dismiss All + 確認全部清除 Dismiss all tasks? @@ -2991,7 +3023,7 @@ src/app/components/admin/tasks/tasks.component.ts 353 - Dismiss all tasks? + 要清除所有共 項任務嗎? Success. New document id created @@ -2999,7 +3031,7 @@ src/app/components/admin/tasks/tasks.component.ts 412 - Success. New document id created + 成功。已建立新文件 ID : Duplicate of document # @@ -3011,7 +3043,7 @@ src/app/components/admin/tasks/tasks.component.ts 456 - Duplicate of document # + 文件 # 的副本 Trash @@ -3629,11 +3661,11 @@ src/app/components/document-detail/document-detail.component.ts - 1479 + 1521 src/app/components/document-detail/document-detail.component.ts - 1866 + 1908 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -3751,7 +3783,7 @@ src/app/components/app-frame/app-frame.component.html 42 - User menu + 使用者選單 Logged in as @@ -3827,7 +3859,7 @@ src/app/components/app-frame/app-frame.component.html 195 - Attributes + 屬性 Correspondents @@ -3837,7 +3869,7 @@ src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 46 + 47 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -3859,7 +3891,7 @@ src/app/components/manage/document-attributes/document-attributes.component.ts 105 - Document types + 文件類型 Storage paths @@ -3871,7 +3903,7 @@ src/app/components/manage/document-attributes/document-attributes.component.ts 115 - Storage paths + 儲存路徑 Custom fields @@ -3907,7 +3939,7 @@ src/app/components/manage/share-links/share-links.component.html 2,3 - Share links + 共用連結 Administration @@ -3983,7 +4015,7 @@ src/app/components/app-frame/app-frame.component.html 403 - Configure update checking + 設定自動檢查更新 Sidebar views updated @@ -4227,7 +4259,7 @@ src/app/data/saved-view-icons.ts 21 - Chat + 聊天 Message @@ -4247,7 +4279,7 @@ src/app/components/chat/chat/chat.component.ts 49 - Ask a question about this document... + 詢問關於此文件的問題… Ask a question about a document... @@ -4255,7 +4287,7 @@ src/app/components/chat/chat/chat.component.ts 50 - Ask a question about a document... + 詢問關於文件的問題… Clear @@ -4313,7 +4345,7 @@ src/app/components/document-detail/document-detail.component.ts - 1432 + 1474 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -4347,7 +4379,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 8,9 - Root document: + 根文件: Versions (oldest first): @@ -4355,7 +4387,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 16,17 - Versions (oldest first): + 版本 (由舊至新): {VAR_PLURAL, plural, =1 {One page} other { pages}} @@ -4367,7 +4399,7 @@ src/app/components/common/confirm-dialog/merge-confirm-dialog/merge-confirm-dialog.component.html 28 - {VAR_PLURAL, plural, =1 {One page} other { pages}} + {VAR_PLURAL, plural, =1 {一頁} other { 頁}} Current version @@ -4375,7 +4407,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 40,41 - Current version + 目前版本 Drag to reorder. @@ -4383,7 +4415,7 @@ src/app/components/common/confirm-dialog/merge-as-versions-confirm-dialog/merge-as-versions-confirm-dialog.component.html 47,48 - Drag to reorder. + 拖曳以重新排序。 Documents: @@ -4439,7 +4471,7 @@ src/app/components/common/confirm-dialog/password-removal-confirm-dialog/password-removal-confirm-dialog.component.html 22,23 - Replace current document + 取代目前文件 Create new document @@ -4447,7 +4479,7 @@ src/app/components/common/confirm-dialog/password-removal-confirm-dialog/password-removal-confirm-dialog.component.html 35,36 - Create new document + 建立新文件 Copy metadata @@ -4455,7 +4487,7 @@ src/app/components/common/confirm-dialog/password-removal-confirm-dialog/password-removal-confirm-dialog.component.html 43,44 - Copy metadata + 拷貝詮釋資料 Delete original @@ -4463,7 +4495,7 @@ src/app/components/common/confirm-dialog/password-removal-confirm-dialog/password-removal-confirm-dialog.component.html 48,49 - Delete original + 刪除原始文件 Remove password protection @@ -4473,9 +4505,9 @@ src/app/components/document-detail/document-detail.component.ts - 1919 + 1961 - Remove password protection + 移除密碼保護 Create an unprotected copy or replace the existing file. @@ -4485,9 +4517,9 @@ src/app/components/document-detail/document-detail.component.ts - 1920 + 1962 - Create an unprotected copy or replace the existing file. + 建立未受保護的副本,或取代現有文件。 Start @@ -4497,7 +4529,7 @@ src/app/components/document-detail/document-detail.component.ts - 1921 + 1963 開始 @@ -4507,7 +4539,7 @@ src/app/components/common/confirm-dialog/reprocess-confirm-dialog/reprocess-confirm-dialog.component.html 16,17 - Use remote OCR + 使用遠端 OCR Sends the document to the configured remote OCR service, which may incur costs. @@ -4515,7 +4547,7 @@ src/app/components/common/confirm-dialog/reprocess-confirm-dialog/reprocess-confirm-dialog.component.html 17,18 - Sends the document to the configured remote OCR service, which may incur costs. + 將文件傳送至已設定的遠端 OCR 服務,這可能會產生費用。 Rotate counterclockwise @@ -4523,7 +4555,7 @@ src/app/components/common/confirm-dialog/rotate-confirm-dialog/rotate-confirm-dialog.component.html 9 - Rotate counterclockwise + 逆時針旋轉 Rotate clockwise @@ -4531,7 +4563,7 @@ src/app/components/common/confirm-dialog/rotate-confirm-dialog/rotate-confirm-dialog.component.html 19 - Rotate clockwise + 順時針旋轉 Note that only PDFs will be rotated. @@ -4623,7 +4655,7 @@ src/app/components/common/input/date/date.component.html 16 - Open date picker + 開啟日期選擇器 Today @@ -4747,7 +4779,7 @@ src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html 154 - Remove query + 移除查詢 Any @@ -4791,7 +4823,7 @@ src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html 196 - Remove expression + 移除表示式 Clear created relative date @@ -4799,7 +4831,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 12 - Clear created relative date + 清除建立相對日期 Relative dates @@ -4819,7 +4851,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 37 - Clear created from date + 清除建立起始日期 From @@ -4839,7 +4871,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 47 - Open created from date picker + 開啟建立起始日期選擇器 Clear created to date @@ -4847,7 +4879,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 61 - Clear created to date + 清除建立結束日期 To @@ -4867,7 +4899,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 71 - Open created to date picker + 開啟建立結束日期選擇器 Added @@ -4899,7 +4931,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 89 - Clear added relative date + 清除新增相對日期 Clear added from date @@ -4907,7 +4939,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 114 - Clear added from date + 清除新增起始日期 Open added from date picker @@ -4915,7 +4947,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 124 - Open added from date picker + 開啟新增起始日期選擇器 Clear added to date @@ -4923,7 +4955,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 138 - Clear added to date + 清除新增結束日期 Open added to date picker @@ -4931,7 +4963,7 @@ src/app/components/common/dates-dropdown/dates-dropdown.component.html 148 - Open added to date picker + 開啟新增結束日期選擇器 now @@ -5403,7 +5435,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 27 - Stop further processing + 停止後續處理 Stop processing further rules if this rule queues any document(s). @@ -5411,7 +5443,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.html 27 - Stop processing further rules if this rule queues any document(s). + 若此規則將任何文件排入佇列,即停止處理後續規則。 Paperless will only process mails that match all of the criteria specified below. @@ -5835,7 +5867,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts 182 - Error retrieving correspondents + 取得關聯方時發生錯誤 Error retrieving document types @@ -5843,7 +5875,7 @@ src/app/components/common/edit-dialog/mail-rule-edit-dialog/mail-rule-edit-dialog.component.ts 195 - Error retrieving document types + 取得文件類型時發生錯誤 Create new mail rule @@ -5889,7 +5921,7 @@ src/app/components/document-detail/document-detail.component.html - 364,365 + 374,375 預覽 @@ -6075,7 +6107,7 @@ src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html 26 - Access system status, logs, Django backend + 存取系統狀態、事件紀錄與 Django 後端 Superuser @@ -6091,7 +6123,7 @@ src/app/components/common/edit-dialog/user-edit-dialog/user-edit-dialog.component.html 30 - Grants all permissions and can view all objects + 授予所有權限並可檢視所有物件 Two-factor Authentication @@ -6355,7 +6387,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 164 - Apply to documents that match this path. Wildcards specified as * are allowed. Case-normalized. + 套用至符合此路徑的文件。允許使用 * 做為萬用字元。不區分大小寫。 Filter mail rule @@ -6691,7 +6723,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 437 - One password per line. The workflow will try them in order until one succeeds. + 每行輸入一個密碼。工作流程會依序嘗試,直到成功為止。 Passwords @@ -6699,7 +6731,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 441,442 - Passwords + 密碼 Passwords are stored in plain text. Use with caution. @@ -6707,7 +6739,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 445,446 - Passwords are stored in plain text. Use with caution. + 密碼會以純文字形式儲存。請謹慎使用。 The document will be moved to the trash at the end of the workflow run. @@ -6715,7 +6747,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 454,455 - The document will be moved to the trash at the end of the workflow run. + 工作流程執行完畢時,會將文件移至垃圾桶。 The document will be sent to the configured remote OCR service. May incur costs. @@ -6723,7 +6755,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 461,462 - The document will be sent to the configured remote OCR service. May incur costs. + 文件將會傳送至已設定的遠端 OCR 服務。可能會產生費用。 The document will be sent to the configured AI service for suggestions. Consider costs and privacy. @@ -6731,7 +6763,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 468,469 - The document will be sent to the configured AI service for suggestions. Consider costs and privacy. + 文件將會傳送至所設定的 AI 服務來取得建議,請留意費用與隱私。 This action runs in the background, so the suggestions may be applied after the other actions of this workflow have finished. @@ -6739,7 +6771,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 469,470 - This action runs in the background, so the suggestions may be applied after the other actions of this workflow have finished. + 此動作會在背景執行,因此「建議」可能會在此工作流程的其他動作結束後才套用。 Apply suggestions for @@ -6747,7 +6779,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 472,473 - Apply suggestions for + 套用建議於 Suggestions for fields that are not selected are discarded. @@ -6755,7 +6787,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 477,478 - Suggestions for fields that are not selected are discarded. + 未選取欄位的建議將會被捨棄。 Create missing items @@ -6763,7 +6795,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 487,488 - Create missing items + 建立缺少的項目 Create suggested tags, correspondents and document types that do not exist yet. @@ -6771,7 +6803,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 489,490 - Create suggested tags, correspondents and document types that do not exist yet. + 建立尚未存在的建議標籤、關聯方與文件類型。 Overwrite existing values @@ -6779,7 +6811,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 497,498 - Overwrite existing values + 取代現有的參數值 Apply suggestions even if the document already has a value. Tags are always added, never replaced. @@ -6787,7 +6819,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html 499,500 - Apply suggestions even if the document already has a value. Tags are always added, never replaced. + 即使文件已有內容,仍會套用建議。標籤一律為新增,絕不取代。 Consume Folder @@ -6871,7 +6903,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts 147 - Password removal + 移除密碼 Move to trash @@ -6881,7 +6913,7 @@ src/app/components/document-detail/document-detail.component.ts - 1436 + 1478 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -6899,7 +6931,7 @@ src/app/data/paperless-config.ts 58 - Remote OCR + 移除 OCR Apply AI suggestions @@ -6907,7 +6939,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts 159 - Apply AI suggestions + 套用 AI 建議 Title @@ -6917,7 +6949,7 @@ src/app/components/document-detail/document-detail.component.html - 171 + 177 src/app/components/document-list/document-list.component.html @@ -6943,7 +6975,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts 186 - Created date + 建立日期 Has any of these tags @@ -6975,7 +7007,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts 276 - Has any of these correspondents + 包含任一個關聯方 Has correspondent @@ -7007,7 +7039,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts 308 - Has any of these document types + 包含任一種文件類型 Does not have document types @@ -7031,7 +7063,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts 332 - Has any of these storage paths + 包含任一個儲存路徑 Does not have storage paths @@ -7055,7 +7087,7 @@ src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts 570 - Some workflow options could not be loaded. + 無法載入部分工作流程選項。 Create new workflow @@ -7212,7 +7244,7 @@ src/app/components/common/filterable-dropdown/filterable-dropdown.component.ts 874 - 開啟 篩選器 + 開啟「」篩選器 Keyboard shortcuts @@ -7280,7 +7312,7 @@ src/app/components/common/input/color/color.component.html 7 - Open color picker + 開啟顏色選擇器 Choose a random color @@ -7288,7 +7320,7 @@ src/app/components/common/input/color/color.component.html 17 - Choose a random color + 隨機選取顏色 Remove custom field @@ -7300,7 +7332,7 @@ src/app/components/document-list/bulk-editor/custom-fields-bulk-edit-dialog/custom-fields-bulk-edit-dialog.component.html 64 - Remove custom field + 移除自訂欄位 Invalid date. @@ -7336,7 +7368,7 @@ src/app/components/common/input/select/select.component.ts 179 - 以此篩選文件 + 以「」篩選文件 Remove link @@ -7364,7 +7396,7 @@ src/app/components/common/input/document-link/document-link.component.html 52,53 - Unavailable + 無法使用 Search for documents @@ -7408,7 +7440,7 @@ src/app/components/common/input/entries/entries.component.html 16 - Remove entry + 移除條目 Upload @@ -7461,7 +7493,7 @@ src/app/components/common/input/select/select.component.html 41 - Remove item + 移除項目 Private @@ -7737,7 +7769,7 @@ src/app/components/common/permissions-filter-dropdown/permissions-filter-dropdown.component.html 61 - Clear selected users + 清除已選取的使用者 Hide unowned @@ -7761,7 +7793,7 @@ src/app/components/common/permissions-filter-dropdown/permissions-filter-dropdown.component.ts 110 - Owned by + 擁有者: Owned by another user @@ -7769,7 +7801,7 @@ src/app/components/common/permissions-filter-dropdown/permissions-filter-dropdown.component.ts 111 - Owned by another user + 由其他使用者擁有 Shared with me @@ -7785,7 +7817,7 @@ src/app/components/common/permissions-filter-dropdown/permissions-filter-dropdown.component.ts 128 - Not owned by + 擁有者非: Not owned by another user @@ -7793,7 +7825,7 @@ src/app/components/common/permissions-filter-dropdown/permissions-filter-dropdown.component.ts 131 - Not owned by another user + 擁有者不為其他使用者 Not owned by selected users @@ -7801,7 +7833,7 @@ src/app/components/common/permissions-filter-dropdown/permissions-filter-dropdown.component.ts 132 - Not owned by selected users + 擁有者不為選取的使用者 Shared by me @@ -7817,7 +7849,7 @@ src/app/components/common/permissions-filter-dropdown/permissions-filter-dropdown.component.ts 145 - Shared by + 由「」共用 Shared by another user @@ -7825,7 +7857,7 @@ src/app/components/common/permissions-filter-dropdown/permissions-filter-dropdown.component.ts 146 - Shared by another user + 由其他使用者共用 Global permissions define what areas of the app and API endpoints users can access. @@ -7845,6 +7877,10 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 56,57 + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 5,6 + 類型 @@ -8165,7 +8201,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html 10 - Selected documents: + 已選取的文件: + more… @@ -8173,7 +8209,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html 22,23 - + more… + + 還有 個… Expires @@ -8205,7 +8241,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html 47,48 - Share archive version (if available) + 共用封存版本(若有) Share link bundle requested @@ -8213,7 +8249,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html 54,55 - Share link bundle requested + 已要求共用連結組合 You can copy the share link below or open the manager to monitor progress. The link will start working once the bundle is ready. @@ -8221,7 +8257,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html 56,57 - You can copy the share link below or open the manager to monitor progress. The link will start working once the bundle is ready. + 您可以複製下方的共用連結,或開啟管理員以監控進度。套件準備就緒後,連結即可開始使用。 Status @@ -8261,7 +8297,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html 64,65 - Slug + 網址別名 Link @@ -8277,7 +8313,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html 68,69 - Share link + 共用連結 Copy link @@ -8341,7 +8377,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.html 111 - A zip file containing the selected documents will be created for this share link bundle. This process happens in the background and may take some time, especially for large bundles. + 將會為此共用連結組合建立包含已選取文件的 ZIP 壓縮檔。此流程會在背景進行,可能需要一些時間,尤其是大型組合。 Manage share link bundles @@ -8353,7 +8389,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 124 - Manage share link bundles + 管理共用連結組合 Create share link bundle @@ -8361,7 +8397,7 @@ src/app/components/common/share-link-bundle-dialog/share-link-bundle-dialog.component.ts 59 - Create share link bundle + 建立共用連結組合 Create link @@ -8443,39 +8479,39 @@ No suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 11,12 + 12,13 - No suggestions + 沒有建議 Suggest src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 13,14 + 14,15 - Suggest + 建議 Show suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 23,24 + 24,25 - Show suggestions + 顯示建議 No novel suggestions src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 30,31 + 31,32 - No novel suggestions + 沒有新建議 Document Types src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 40 + 41 src/app/components/dashboard/widgets/statistics-widget/statistics-widget.component.html @@ -8483,13 +8519,53 @@ 文件類型 - - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html - 53 + 54 - {VAR_PLURAL, plural, =1 {1 existing value suggested below} other { existing values suggested below}} + {VAR_PLURAL, plural, =1 {1 suggestion available below} other { suggestions available below}} + + + Suggestion options + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 65,66 + + 建議選項 + + + Not using default + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 69,70 + + 未使用預設值 + + + Suggest using: + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 74,75 + + 建議使用: + + + ML + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 77 + + ML + + + AI + + src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html + 81 + + AI Environment @@ -8513,7 +8589,7 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 26 - View version mismatch details + 檢視版本不一致的詳細資訊 Install Type @@ -8625,7 +8701,7 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 147,148 - Recent Task Activity ( days) + 近期任務活動 ( 天) Total @@ -8633,7 +8709,7 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 152 - Total + 全部 Successful @@ -8641,7 +8717,7 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 156 - Successful + 成功 Failed @@ -8653,7 +8729,7 @@ src/app/data/share-link-bundle.ts 44 - Failed + 失敗 Pending @@ -8665,7 +8741,7 @@ src/app/data/share-link-bundle.ts 41 - Pending + 待處理 No recent tasks @@ -8673,7 +8749,7 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 169,170 - No recent tasks + 暫無近期任務 Health @@ -8773,7 +8849,7 @@ src/app/components/common/system-status-dialog/system-status-dialog.component.html 283,284 - AI Index + AI 索引 Copy Raw Error @@ -9099,10 +9175,14 @@ src/app/components/document-asn/document-asn.component.html 1,2 - Searching document with asn + 正在使用封存序號(ASN) 搜尋文件 Page + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 4,5 + src/app/components/document-detail/document-detail.component.html 5,6 @@ -9117,13 +9197,37 @@ 目前頁面 + + Content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 6,7 + + + src/app/components/document-detail/document-detail.component.html + 300,301 + + 內容 + + + Copy content + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 32,33 + + + src/app/components/document-detail/document-barcodes/document-barcodes.component.html + 40,41 + + Copy content + of src/app/components/document-detail/document-detail.component.html 7,8 - of + / - @@ -9151,7 +9255,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 154 - Download options + 下載選項 Download original @@ -9211,7 +9315,7 @@ src/app/components/document-detail/document-detail.component.html 87 - Remove Password + 移除密碼 Send @@ -9253,7 +9357,7 @@ src/main.ts - 469 + 473 下一頁 @@ -9261,7 +9365,7 @@ Details src/app/components/document-detail/document-detail.component.html - 168,169 + 174,175 詳細資訊 @@ -9269,7 +9373,7 @@ Date created src/app/components/document-detail/document-detail.component.html - 175 + 181 建立日期 @@ -9277,7 +9381,7 @@ Default src/app/components/document-detail/document-detail.component.html - 187 + 193 src/app/components/manage/saved-views/saved-views.component.html @@ -9285,19 +9389,11 @@ 預設 - - Content - - src/app/components/document-detail/document-detail.component.html - 294,295 - - 內容 - Metadata src/app/components/document-detail/document-detail.component.html - 303,304 + 309,310 src/app/components/document-detail/metadata-collapse/metadata-collapse.component.ts @@ -9309,7 +9405,7 @@ Date modified src/app/components/document-detail/document-detail.component.html - 310,311 + 316,317 修改日期 @@ -9317,7 +9413,7 @@ Date added src/app/components/document-detail/document-detail.component.html - 314,315 + 320,321 新增日期 @@ -9325,7 +9421,7 @@ Media filename src/app/components/document-detail/document-detail.component.html - 318,319 + 324,325 媒體檔案名稱 @@ -9333,7 +9429,7 @@ Original filename src/app/components/document-detail/document-detail.component.html - 322,323 + 328,329 原始檔案名稱 @@ -9341,15 +9437,15 @@ Original SHA256 checksum src/app/components/document-detail/document-detail.component.html - 326,327 + 332,333 - Original SHA256 checksum + 原始 SHA256 總和檢查碼 Original file size src/app/components/document-detail/document-detail.component.html - 330,331 + 336,337 原始檔案大小 @@ -9357,7 +9453,7 @@ Original mime type src/app/components/document-detail/document-detail.component.html - 334,335 + 340,341 原始 MIME 類型 @@ -9365,23 +9461,31 @@ Archive SHA256 checksum src/app/components/document-detail/document-detail.component.html - 339,340 + 345,346 - Archive SHA256 checksum + 封存 SHA256 總和檢查碼 Archive file size src/app/components/document-detail/document-detail.component.html - 345,346 + 351,352 封存檔案大小 + + Barcodes + + src/app/components/document-detail/document-detail.component.html + 360,361 + + Barcodes + Original document metadata src/app/components/document-detail/document-detail.component.html - 354 + 364 原始文件詮釋資料 @@ -9389,7 +9493,7 @@ Archived document metadata src/app/components/document-detail/document-detail.component.html - 357 + 367 封存文件詮釋資料 @@ -9397,15 +9501,15 @@ Notes src/app/components/document-detail/document-detail.component.html - 376,379 + 386,389 - Notes + 註解 History src/app/components/document-detail/document-detail.component.html - 387,388 + 397,398 歷史紀錄 @@ -9413,31 +9517,31 @@ Duplicates src/app/components/document-detail/document-detail.component.html - 410,413 + 420,423 - Duplicates + 重複文件 Duplicate documents detected: src/app/components/document-detail/document-detail.component.html - 415,416 + 425,426 - Duplicate documents detected: + 偵測到重複文件: In trash src/app/components/document-detail/document-detail.component.html - 426,427 + 436,437 - In trash + 在垃圾桶內 Save & next src/app/components/document-detail/document-detail.component.html - 455 + 465 儲存 & 下一個 @@ -9445,7 +9549,7 @@ Save & close src/app/components/document-detail/document-detail.component.html - 457 + 467 標題與內容 @@ -9453,7 +9557,7 @@ Discard src/app/components/document-detail/document-detail.component.html - 459,460 + 469,470 放棄變更 @@ -9461,7 +9565,7 @@ Document loading... src/app/components/document-detail/document-detail.component.html - 467 + 477 文件讀取中⋯ @@ -9469,7 +9573,7 @@ Enter Password src/app/components/document-detail/document-detail.component.html - 521 + 531 輸入密碼 @@ -9477,7 +9581,7 @@ Error retrieving metadata src/app/components/document-detail/document-detail.component.ts - 442 + 463 取得詮釋資料時發生錯誤 @@ -9485,11 +9589,11 @@ An error occurred loading content: src/app/components/document-detail/document-detail.component.ts - 545,547 + 566,568 src/app/components/document-detail/document-detail.component.ts - 1024,1026 + 1047,1049 讀取內容時發生錯誤: @@ -9497,55 +9601,55 @@ Document was updated src/app/components/document-detail/document-detail.component.ts - 685 + 708 - Document was updated + 文件已更新 Document was updated at . src/app/components/document-detail/document-detail.component.ts - 686 + 709 - Document was updated at . + 文件更新於 。 Reload to discard your local unsaved edits and load the latest remote version. src/app/components/document-detail/document-detail.component.ts - 687 + 710 - Reload to discard your local unsaved edits and load the latest remote version. + 重新載入以捨棄本機未儲存的編輯,並載入最新的遠端版本。 Reload src/app/components/document-detail/document-detail.component.ts - 689 + 712 - Reload + 重新載入 Document reloaded with latest changes. src/app/components/document-detail/document-detail.component.ts - 745 + 768 - Document reloaded with latest changes. + 已重新載入文件與最新變更。 Document reloaded. src/app/components/document-detail/document-detail.component.ts - 756 + 779 - Document reloaded. + 文件已重新載入。 Next document src/app/components/document-detail/document-detail.component.ts - 858 + 881 下一個文件 @@ -9553,7 +9657,7 @@ Previous document src/app/components/document-detail/document-detail.component.ts - 868 + 891 上一個文件 @@ -9561,7 +9665,7 @@ Close document src/app/components/document-detail/document-detail.component.ts - 876 + 899 src/app/services/open-documents.service.ts @@ -9573,7 +9677,7 @@ Save document src/app/components/document-detail/document-detail.component.ts - 883 + 906 儲存文件 @@ -9581,7 +9685,7 @@ Save and close / next src/app/components/document-detail/document-detail.component.ts - 892 + 915 儲存並關閉/下一個 @@ -9589,15 +9693,15 @@ Error retrieving version content src/app/components/document-detail/document-detail.component.ts - 1006 + 1029 - Error retrieving version content + 擷取版本內容時發生錯誤 Unsaved Changes src/app/components/document-detail/document-detail.component.ts - 1050 + 1073 src/app/guards/dirty-form.guard.ts @@ -9621,39 +9725,39 @@ You have unsaved changes to the content of this version. src/app/components/document-detail/document-detail.component.ts - 1051 + 1074 - You have unsaved changes to the content of this version. + 您對此版本的內容有未儲存的變更。 Switching versions will discard them. src/app/components/document-detail/document-detail.component.ts - 1052 + 1075 - Switching versions will discard them. + 切換版本將會捨棄這些變更。 Discard and switch src/app/components/document-detail/document-detail.component.ts - 1054 + 1077 - Discard and switch + 捨棄並切換 Save and switch src/app/components/document-detail/document-detail.component.ts - 1056 + 1079 - Save and switch + 儲存並切換 Error retrieving suggestions. src/app/components/document-detail/document-detail.component.ts - 1099 + 1122 取得建議時發生錯誤。 @@ -9661,11 +9765,11 @@ Document "" saved successfully. src/app/components/document-detail/document-detail.component.ts - 1311 + 1353 src/app/components/document-detail/document-detail.component.ts - 1339 + 1381 文件「」儲存成功。 @@ -9673,15 +9777,15 @@ Error saving document "" src/app/components/document-detail/document-detail.component.ts - 1345 + 1387 - Error saving document "" + 文件「」儲存時發生錯誤 Error saving document src/app/components/document-detail/document-detail.component.ts - 1400 + 1442 儲存文件時發生錯誤 @@ -9689,15 +9793,15 @@ Do you really want to move the document "" to the trash? src/app/components/document-detail/document-detail.component.ts - 1433 + 1475 - Do you really want to move the document "" to the trash? + 確定要將文件「」移至垃圾桶? Documents can be restored prior to permanent deletion. src/app/components/document-detail/document-detail.component.ts - 1434 + 1476 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9709,7 +9813,7 @@ Error deleting document src/app/components/document-detail/document-detail.component.ts - 1455 + 1497 刪除文件時發生錯誤 @@ -9717,7 +9821,7 @@ Reprocess confirm src/app/components/document-detail/document-detail.component.ts - 1475 + 1517 src/app/components/document-list/bulk-editor/bulk-editor.component.ts @@ -9729,7 +9833,7 @@ This operation will permanently recreate the archive file for this document. src/app/components/document-detail/document-detail.component.ts - 1476 + 1518 將永久重新建立此文件的封存檔案。 @@ -9737,7 +9841,7 @@ The archive file will be re-generated with the current settings. src/app/components/document-detail/document-detail.component.ts - 1477 + 1519 封存檔案將以目前設定重新產生。 @@ -9745,15 +9849,15 @@ Reprocess operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1490 + 1532 - Reprocess operation for "" will begin in the background. + 「」的重新處理作業將會在背景開始。 Error executing operation src/app/components/document-detail/document-detail.component.ts - 1501 + 1543 執行作業時發生錯誤 @@ -9761,7 +9865,7 @@ Error downloading document src/app/components/document-detail/document-detail.component.ts - 1565 + 1607 下載文件時發生錯誤 @@ -9769,7 +9873,7 @@ Page Fit src/app/components/document-detail/document-detail.component.ts - 1643 + 1685 符合頁面大小 @@ -9777,15 +9881,15 @@ PDF edit operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1886 + 1928 - PDF edit operation for "" will begin in the background. + 「」的 PDF 編輯作業將於背景開始執行。 Error executing PDF edit operation src/app/components/document-detail/document-detail.component.ts - 1898 + 1940 執行 PDF 編輯時時發生錯誤 @@ -9793,31 +9897,31 @@ Please enter the current password before attempting to remove it. src/app/components/document-detail/document-detail.component.ts - 1909 + 1951 - Please enter the current password before attempting to remove it. + 請先輸入目前的密碼,才能將其移除。 Password removal operation for "" will begin in the background. src/app/components/document-detail/document-detail.component.ts - 1943 + 1985 - Password removal operation for "" will begin in the background. + 「」的密碼移除作業將於背景開始執行。 Error executing password removal operation src/app/components/document-detail/document-detail.component.ts - 1957 + 1999 - Error executing password removal operation + 執行密碼移除作業時發生錯誤 Print failed. src/app/components/document-detail/document-detail.component.ts - 2007 + 2049 列印失敗。 @@ -9825,7 +9929,7 @@ Error loading document for printing. src/app/components/document-detail/document-detail.component.ts - 2016 + 2058 載入列印文件時發生錯誤 @@ -9833,11 +9937,11 @@ An error occurred loading tiff: src/app/components/document-detail/document-detail.component.ts - 2099 + 2141 src/app/components/document-detail/document-detail.component.ts - 2105 + 2147 讀取 TIFF 檔時發生錯誤: @@ -9855,7 +9959,7 @@ src/app/components/document-detail/document-version-dropdown/add-existing-document-version-dialog/add-existing-document-version-dialog.component.html 2,3 - Add existing document as version + 將現有文件新增為版本 Select one document to add as a version. @@ -9863,7 +9967,7 @@ src/app/components/document-detail/document-version-dropdown/add-existing-document-version-dialog/add-existing-document-version-dialog.component.html 13,14 - Select one document to add as a version. + 選取一份文件以新增為版本。 Add version @@ -9871,7 +9975,7 @@ src/app/components/document-detail/document-version-dropdown/add-existing-document-version-dialog/add-existing-document-version-dialog.component.html 17,18 - Add version + 新增版本 Versions @@ -9883,7 +9987,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 4,5 - Versions + 版本 Label @@ -9891,7 +9995,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 13,14 - Label + 標籤 Optional @@ -9899,7 +10003,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 20,21 - Optional + 選填 Upload a new version @@ -9907,7 +10011,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 35,36 - Upload a new version + 上傳新版本 Use an existing document @@ -9915,7 +10019,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 44,45 - Use an existing document + 使用現有文件 Existing @@ -9923,7 +10027,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 47,48 - Existing + 現有文件 Uploading version... @@ -9931,7 +10035,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 55,56 - Uploading version... + 正在上傳版本... Processing version... @@ -9939,7 +10043,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 61,62 - Processing version... + 正在處理版本... Version upload failed. @@ -9947,7 +10051,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 66,67 - Version upload failed. + 版本上傳失敗。 Version label @@ -9959,7 +10063,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 101,102 - Version label + 版本標籤 Version @@ -9967,7 +10071,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 112 - Version + 版本 Delete this version? @@ -9975,7 +10079,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 143,144 - Delete this version? + 確定要刪除此版本嗎? Delete version @@ -9983,7 +10087,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html 149,150 - Delete version + 刪除版本 Error deleting version @@ -9991,7 +10095,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.ts 164 - Error deleting version + 刪除版本時發生錯誤 Error updating version label @@ -9999,7 +10103,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.ts 197 - Error updating version label + 上傳版本標籤時發生錯誤 Uploading new version. Processing will happen in the background. @@ -10007,7 +10111,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.ts 219 - Uploading new version. Processing will happen in the background. + 正在上傳新版本。處理作業將會在背景進行。 Missing task ID. @@ -10015,7 +10119,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.ts 232 - Missing task ID. + 缺少任務 ID。 Upload failed. @@ -10027,7 +10131,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.ts 278 - Upload failed. + 上傳失敗。 Error uploading new version @@ -10035,7 +10139,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.ts 281 - Error uploading new version + 上傳新版本時發生錯誤 Existing document added as a version. @@ -10043,7 +10147,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.ts 324 - Existing document added as a version. + 已將現有文件新增為版本。 Error adding existing document as a version @@ -10051,7 +10155,7 @@ src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.ts 329 - Error adding existing document as a version + 將現有文件新增為版本時發生錯誤 Toggle document metadata @@ -10059,7 +10163,7 @@ src/app/components/document-detail/metadata-collapse/metadata-collapse.component.html 3 - Toggle document metadata + 切換顯示文件詮釋資料 Edit: @@ -10159,7 +10263,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 1026 - Merge as versions + 合併為版本 Create a share link bundle @@ -10167,7 +10271,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.html 119 - Create a share link bundle + 建立共用連結組合 Include: @@ -10245,7 +10349,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 532 - This operation will add the tag "" to selected document(s). + 將新增標籤「」至 個所選的文件。 This operation will add the tags to selected document(s). @@ -10253,7 +10357,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 537,539 - This operation will add the tags to selected document(s). + 將新增標籤「」至 個所選的文件。 This operation will remove the tag "" from selected document(s). @@ -10261,7 +10365,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 545 - This operation will remove the tag "" from selected document(s). + 將從 個所選的文件中移除標籤「」。 This operation will remove the tags from selected document(s). @@ -10269,7 +10373,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 550,552 - This operation will remove the tags from selected document(s). + 將從 個所選的文件中移除標籤「」。 This operation will add the tags and remove the tags on selected document(s). @@ -10277,7 +10381,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 554,558 - This operation will add the tags and remove the tags on selected document(s). + 將於 個所選的文件新增標籤「」,並移除標籤「」。 Confirm correspondent assignment @@ -10293,7 +10397,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 597 - This operation will assign the correspondent "" to selected document(s). + 將指派關聯方「」至 個所選的文件。 This operation will remove the correspondent from selected document(s). @@ -10301,7 +10405,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 599 - This operation will remove the correspondent from selected document(s). + 將從 個所選的文件移除關聯方。 Confirm document type assignment @@ -10317,7 +10421,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 635 - This operation will assign the document type "" to selected document(s). + 將指派文件類型「」給 個所選的文件。 This operation will remove the document type from selected document(s). @@ -10325,7 +10429,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 637 - This operation will remove the document type from selected document(s). + 將從 個所選取的文件移除文件類型。 Confirm storage path assignment @@ -10341,7 +10445,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 673 - This operation will assign the storage path "" to selected document(s). + 將指派儲存路徑「」給 個所選的文件。 This operation will remove the storage path from selected document(s). @@ -10349,7 +10453,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 675 - This operation will remove the storage path from selected document(s). + 將從 個所選的文件移除儲存路徑。 Confirm custom field assignment @@ -10365,7 +10469,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 710 - This operation will assign the custom field "" to selected document(s). + 將指派自訂欄位「」給 個所選的文件。 This operation will assign the custom fields to selected document(s). @@ -10373,7 +10477,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 715,717 - This operation will assign the custom fields to selected document(s). + 將指派自訂欄位 給 個所選的文件。 This operation will remove the custom field "" from selected document(s). @@ -10381,7 +10485,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 723 - This operation will remove the custom field "" from selected document(s). + 將從 個所選的文件移除自訂欄位「」。 This operation will remove the custom fields from selected document(s). @@ -10389,7 +10493,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 728,730 - This operation will remove the custom fields from selected document(s). + 將從 個所選的文件移除自訂欄位「」。 This operation will assign the custom fields and remove the custom fields on selected document(s). @@ -10397,7 +10501,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 732,736 - This operation will assign the custom fields and remove the custom fields on selected document(s). + 將於 個所選的文件指派自訂欄位「」,並移除自訂欄位「」。 Move selected document(s) to the trash? @@ -10405,7 +10509,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 879 - Move selected document(s) to the trash? + 要將 個所選的文件移至垃圾桶嗎? This operation will permanently recreate the archive files for selected document(s). @@ -10413,7 +10517,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 927 - This operation will permanently recreate the archive files for selected document(s). + 將為 個所選取的文件永久重新建立封存檔案。 The archive files will be re-generated with the current settings. @@ -10437,7 +10541,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 967 - This operation will add rotated versions of the document(s). + 將為 份文件新增已旋轉的版本。 Merge confirm @@ -10453,7 +10557,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 991 - This operation will merge selected documents into a new document. + 將 個所選的文件合併成一個新文件。 Merged document will be queued for consumption. @@ -10469,7 +10573,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 1027 - The selected documents will become versions of the root document. + 選取的文件將會成為根文件的版本。 Documents merged as versions. @@ -10477,7 +10581,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 1042 - Documents merged as versions. + 已將文件合併為版本。 Custom fields updated. @@ -10501,7 +10605,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 1125 - Share link bundle creation requested. + 已要求建立共用連結組合。 Share link bundle creation is not available yet. @@ -10509,7 +10613,7 @@ src/app/components/document-list/bulk-editor/bulk-editor.component.ts 1132 - Share link bundle creation is not available yet. + 尚無法建立共用連結組合。 {VAR_PLURAL, plural, =1 {Set custom fields for 1 document} other {Set custom fields for documents}} @@ -10555,7 +10659,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 8,9 - thumbnail + 「」縮圖 Filter by tag @@ -10591,7 +10695,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 95,96 - Created: + 製作日期: Added: @@ -10607,7 +10711,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 96,97 - Added: + 新增日期: Modified: @@ -10623,7 +10727,7 @@ src/app/components/document-list/document-card-small/document-card-small.component.html 97,98 - Modified: + 修改日期: {VAR_PLURAL, plural, =1 {1 page} other { pages}} @@ -10741,7 +10845,7 @@ src/app/components/document-list/document-list.component.ts - 348 + 351 src/app/components/manage/document-attributes/document-attributes.component.html @@ -10757,7 +10861,7 @@ src/app/components/document-list/document-list.component.ts - 341 + 344 src/app/components/manage/document-attributes/document-attributes.component.html @@ -11041,7 +11145,7 @@ Reset filters / selection src/app/components/document-list/document-list.component.ts - 329 + 332 重置篩條件/選項 @@ -11049,7 +11153,7 @@ Open first [selected] document src/app/components/document-list/document-list.component.ts - 357 + 360 開啟前 [selected] 個文件 @@ -11057,7 +11161,7 @@ Previous page src/app/components/document-list/document-list.component.ts - 373 + 376 上一頁 @@ -11065,7 +11169,7 @@ Next page src/app/components/document-list/document-list.component.ts - 385 + 388 下一頁 @@ -11073,7 +11177,7 @@ View "" saved successfully. src/app/components/document-list/document-list.component.ts - 419 + 422 檢視表「」儲存成功。 @@ -11081,7 +11185,7 @@ Failed to save view "". src/app/components/document-list/document-list.component.ts - 425 + 428 檢視表「」儲存失敗。 @@ -11089,7 +11193,7 @@ View "" created successfully. src/app/components/document-list/document-list.component.ts - 494 + 497 檢視表「」建立成功。 @@ -11097,9 +11201,9 @@ View "" created successfully, but could not update visibility settings. src/app/components/document-list/document-list.component.ts - 500 + 503 - View "" created successfully, but could not update visibility settings. + 檢視表「」建立成功,但無法更新可視性設定。 Dates @@ -11131,7 +11235,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 208 - Duplicates + 重複項目 Custom fields (Deprecated) @@ -11139,7 +11243,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 218 - Custom fields (Deprecated) + 自訂欄位(已棄用) More like @@ -11195,7 +11299,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 252 - exist + 存在 do not exist @@ -11203,7 +11307,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 256 - do not exist + 不存在 Correspondent: @@ -11275,7 +11379,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 343 - Without duplicates + 沒有重複項目 With duplicates @@ -11283,7 +11387,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 344 - With duplicates + 沒有重複項目 Custom fields query @@ -11307,7 +11411,7 @@ src/app/components/document-list/filter-editor/filter-editor.component.ts 355 - Title & content: + 標題與內容: ASN: @@ -11359,7 +11463,7 @@ src/app/components/manage/saved-views/saved-views.component.html 21 - Icon + 圖示 Show in sidebar @@ -11559,7 +11663,7 @@ src/app/components/manage/document-attributes/document-attributes.component.html 3,4 - Manage tags, correspondents, document types, storage paths, and custom fields. + 管理標籤、關聯方、文件類型、儲存路徑與自訂欄位。 Add Field @@ -11671,7 +11775,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 87,88 - Show: + 顯示: per page @@ -11699,7 +11803,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 93,94 - per page + 每頁 Matching @@ -11835,7 +11939,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 82 - Error saving settings + 儲存設定時發生錯誤 Permissions updated successfully @@ -11867,7 +11971,7 @@ src/app/components/manage/document-attributes/management-list/management-list.component.ts 453 - This operation will permanently delete the selected . + 將永久刪除所選的文件: Objects deleted successfully @@ -12231,7 +12335,7 @@ src/app/components/manage/mail/processed-mail-dialog/processed-mail-dialog.component.html 2,3 - Processed Mail for + 已處理郵件: No processed email messages found. @@ -12247,7 +12351,7 @@ src/app/components/manage/mail/processed-mail-dialog/processed-mail-dialog.component.html 29 - Select all processed email messages + 選取所有已處理的電子郵件 Received @@ -12287,7 +12391,7 @@ src/app/components/manage/saved-views/saved-views.component.html 46,47 - Permissions + 權限 Documents page size @@ -12335,7 +12439,7 @@ src/app/components/manage/saved-views/saved-views.component.html 73,74 - Note: ordering is not preserved + 注意:將不會保留排序 No saved views defined. @@ -12375,7 +12479,7 @@ src/app/components/manage/saved-views/saved-views.component.ts 306 - Note: Sharing saved views does not share the underlying documents. + 注意:共用已儲存的檢視表不會一併共用相關文件。 No share link bundles currently exist. @@ -12383,7 +12487,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html 9,11 - No share link bundles currently exist. + 目前沒有任何共用連結組合。 Built: @@ -12391,7 +12495,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html 32 - Built: + 建立: View error details @@ -12399,7 +12503,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html 46,47 - View error details + 檢視錯誤詳細資訊 Expired @@ -12411,7 +12515,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 40,41 - Expired + 已過期 Copy share link @@ -12431,7 +12535,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 67,68 - Copy share link + 拷貝共用連結 Retry @@ -12439,7 +12543,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html 125,126 - Retry + 再試一次 Delete share link bundle @@ -12447,7 +12551,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html 134,135 - Delete share link bundle + 刪除共用連結組合 Share link bundles pagination @@ -12455,7 +12559,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html 164,165 - Share link bundles pagination + 共用連結組合分頁 Failed to load share link bundles. @@ -12463,7 +12567,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.ts 111 - Failed to load share link bundles. + 無法載入共用連結組合。 Error retrieving share link bundles. @@ -12471,7 +12575,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.ts 113 - Error retrieving share link bundles. + 取得共用連結組合時發生錯誤。 Share link bundle deleted. @@ -12479,7 +12583,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.ts 181 - Share link bundle deleted. + 已刪除共用連結組合。 Error deleting share link bundle. @@ -12487,7 +12591,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.ts 187 - Error deleting share link bundle. + 刪除共用連結組合時發生錯誤。 Share link bundle rebuild requested. @@ -12495,7 +12599,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.ts 199 - Share link bundle rebuild requested. + 已要求重新建立共用連結組合。 Error requesting rebuild. @@ -12503,7 +12607,7 @@ src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.ts 204 - Error requesting rebuild. + 要求重新建立時發生錯誤。 No document share links currently exist. @@ -12511,7 +12615,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 7,8 - No document share links currently exist. + 目前沒有任何文件共用連結。 Document @@ -12519,7 +12623,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 15,16 - Document + 文件 Delete share link @@ -12527,7 +12631,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 75,76 - Delete share link + 刪除共用連結 Share links pagination @@ -12535,7 +12639,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.html 104,105 - Share links pagination + 共用連結分頁 Failed to load share links. @@ -12543,7 +12647,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 105 - Failed to load share links. + 無法載入共用連結。 Error retrieving share links. @@ -12551,7 +12655,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 107 - Error retrieving share links. + 取得共用連結時發生錯誤。 Share link deleted. @@ -12559,7 +12663,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 154 - Share link deleted. + 已刪除共用連結。 Error deleting share link. @@ -12567,7 +12671,7 @@ src/app/components/manage/share-links/share-link-list/share-link-list.component.ts 159 - Error deleting share link. + 刪除共用連結時發生錯誤。 Manage public links to individual documents and document bundles. @@ -12575,7 +12679,7 @@ src/app/components/manage/share-links/share-links.component.html 4,5 - Manage public links to individual documents and document bundles. + 管理個別文件與文件組合的公開連結。 Document links @@ -12583,7 +12687,7 @@ src/app/components/manage/share-links/share-links.component.html 18,19 - Document links + 文件連結 Bundles @@ -12591,7 +12695,7 @@ src/app/components/manage/share-links/share-links.component.html 26,27 - Bundles + 組合 Use workflows to customize the behavior of Paperless-ngx when events 'trigger' a workflow. @@ -13000,7 +13104,7 @@ src/app/data/paperless-config.ts 54 - AI Settings + AI 設定 Output Type @@ -13032,7 +13136,7 @@ src/app/data/paperless-config.ts 134 - Archive File Generation + 產生封存檔案 Image DPI @@ -13104,7 +13208,7 @@ src/app/data/paperless-config.ts 200 - Remote OCR Engine + 遠端 OCR 引擎 Enabling remote OCR sends documents to a third-party service for processing. Consider the privacy implications as well as potential costs before enabling. @@ -13112,7 +13216,7 @@ src/app/data/paperless-config.ts 206 - Enabling remote OCR sends documents to a third-party service for processing. Consider the privacy implications as well as potential costs before enabling. + 啟用遠端 OCR 會將文件傳送到第三方服務進行處理。啟用前請先考量隱私影響以及潛在費用。 Remote OCR API Key @@ -13120,7 +13224,7 @@ src/app/data/paperless-config.ts 210 - Remote OCR API Key + 遠端 OCR API 金鑰 Remote OCR Endpoint @@ -13128,7 +13232,7 @@ src/app/data/paperless-config.ts 218 - Remote OCR Endpoint + 遠端 OCR 端點 Required when using the Azure AI engine. @@ -13136,7 +13240,7 @@ src/app/data/paperless-config.ts 223 - Required when using the Azure AI engine. + 使用 Azure AI 引擎時必填。 Remote OCR Mode @@ -13144,7 +13248,7 @@ src/app/data/paperless-config.ts 227 - Remote OCR Mode + 遠端 OCR 模式 Which documents are sent to the remote engine. Use 'workflow_only' to keep remote OCR off unless a workflow enables it for a document. @@ -13152,7 +13256,7 @@ src/app/data/paperless-config.ts 233 - Which documents are sent to the remote engine. Use 'workflow_only' to keep remote OCR off unless a workflow enables it for a document. + 設定哪些文件會傳送到遠端引擎。使用「workflow_only」可保持停用遠端 OCR,除非工作流程為特定文件啟用此功能。 Application Logo @@ -13264,127 +13368,151 @@ src/app/data/paperless-config.ts 328 - Split on Tag Barcodes + 依標籤條碼拆分 + + + Store Barcode Contents + + src/app/data/paperless-config.ts + 335 + + Store Barcode Contents AI Enabled src/app/data/paperless-config.ts - 335 + 342 - AI Enabled + AI 已啟用 Consider privacy implications when enabling AI features, especially if using a remote model. src/app/data/paperless-config.ts - 339 + 346 - Consider privacy implications when enabling AI features, especially if using a remote model. + 啟用 AI 功能時請先考量隱私影響,特別是使用遠端模型時。 LLM Embedding Backend src/app/data/paperless-config.ts - 343 + 350 - LLM Embedding Backend + LLM 嵌入後端 LLM Embedding Model src/app/data/paperless-config.ts - 351 + 358 - LLM Embedding Model + LLM 嵌入模型 + + + LLM Embedding API Key + + src/app/data/paperless-config.ts + 365 + + LLM 嵌入 API 金鑰 + + + Used for embeddings when set, otherwise LLM API key is used. + + src/app/data/paperless-config.ts + 367 + + 設定後將用於嵌入;若未設定,則使用 LLM API 金鑰。 LLM Embedding Endpoint src/app/data/paperless-config.ts - 358 + 373 - LLM Embedding Endpoint + LLM 嵌入端點 LLM Embedding Chunk Size src/app/data/paperless-config.ts - 365 + 380 - LLM Embedding Chunk Size + LLM 嵌入區塊大小 LLM Context Size src/app/data/paperless-config.ts - 372 + 387 - LLM Context Size + LLM 上下文大小 LLM Backend src/app/data/paperless-config.ts - 379 + 394 - LLM Backend + LLM 後端 LLM Model src/app/data/paperless-config.ts - 387 + 402 - LLM Model + LLM 模型 LLM API Key src/app/data/paperless-config.ts - 394 + 409 - LLM API Key + LLM API 金鑰 LLM Endpoint src/app/data/paperless-config.ts - 401 + 416 - LLM Endpoint + LLM 端點 LLM Output Language src/app/data/paperless-config.ts - 408 + 423 - LLM Output Language + LLM 輸出語言 Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. src/app/data/paperless-config.ts - 412 + 427 - Language to use for generated AI suggestions. When unset, AI suggestions use the user's display language if explicitly set. + 用於產生 AI 建議的語言。未設定時,若有明確指定使用者的顯示語言,AI 建議會改用該顯示語言。 LLM Request Timeout src/app/data/paperless-config.ts - 416 + 431 - LLM Request Timeout + LLM 請求逾時 Timeout in seconds for LLM requests. src/app/data/paperless-config.ts - 420 + 435 - Timeout in seconds for LLM requests. + LLM 請求的逾時時間(秒)。 Archive @@ -13396,7 +13524,7 @@ src/app/data/share-link-bundle.ts 51 - Archive + 封存 Bank @@ -13404,7 +13532,7 @@ src/app/data/saved-view-icons.ts 5 - Bank + 銀行 Basket @@ -13412,7 +13540,7 @@ src/app/data/saved-view-icons.ts 6 - Basket + 購物籃 Bell @@ -13420,7 +13548,7 @@ src/app/data/saved-view-icons.ts 7 - Bell + 鈴鐺 Bookmark @@ -13428,7 +13556,7 @@ src/app/data/saved-view-icons.ts 8 - Bookmark + 書籤 Boxes @@ -13436,7 +13564,7 @@ src/app/data/saved-view-icons.ts 9 - Boxes + 箱子 Briefcase @@ -13444,7 +13572,7 @@ src/app/data/saved-view-icons.ts 10 - Briefcase + 公事包 Building @@ -13452,7 +13580,7 @@ src/app/data/saved-view-icons.ts 11 - Building + 大樓 Calculator @@ -13460,7 +13588,7 @@ src/app/data/saved-view-icons.ts 12 - Calculator + 計算機 Calendar @@ -13468,7 +13596,7 @@ src/app/data/saved-view-icons.ts 13 - Calendar + 行事曆 Camera @@ -13476,7 +13604,7 @@ src/app/data/saved-view-icons.ts 14 - Camera + 相機 Checklist @@ -13484,7 +13612,7 @@ src/app/data/saved-view-icons.ts 17 - Checklist + 檢查表 Cash @@ -13492,7 +13620,7 @@ src/app/data/saved-view-icons.ts 20 - Cash + 現金 Check @@ -13500,7 +13628,7 @@ src/app/data/saved-view-icons.ts 22 - Check + 打勾 Clipboard @@ -13508,7 +13636,7 @@ src/app/data/saved-view-icons.ts 23 - Clipboard + 剪貼板 Clock @@ -13516,7 +13644,7 @@ src/app/data/saved-view-icons.ts 24 - Clock + 時鐘 Credit card @@ -13524,7 +13652,7 @@ src/app/data/saved-view-icons.ts 25 - Credit card + 信用卡 Envelope @@ -13532,7 +13660,7 @@ src/app/data/saved-view-icons.ts 27 - Envelope + 信封 Warning @@ -13540,7 +13668,7 @@ src/app/data/saved-view-icons.ts 30 - Warning + 警告 File @@ -13548,7 +13676,7 @@ src/app/data/saved-view-icons.ts 33 - File + 檔案 Checked file @@ -13556,7 +13684,7 @@ src/app/data/saved-view-icons.ts 36 - Checked file + 已檢查的檔案 Locked file @@ -13564,7 +13692,7 @@ src/app/data/saved-view-icons.ts 41 - Locked file + 已鎖定的檔案 Medical file @@ -13572,7 +13700,7 @@ src/app/data/saved-view-icons.ts 46 - Medical file + 醫療檔案 Person file @@ -13580,7 +13708,7 @@ src/app/data/saved-view-icons.ts 51 - Person file + 人物檔案 Spreadsheet @@ -13588,7 +13716,7 @@ src/app/data/saved-view-icons.ts 56 - Spreadsheet + 試算表 Text file @@ -13596,7 +13724,7 @@ src/app/data/saved-view-icons.ts 59 - Text file + 文字檔案 Files @@ -13604,7 +13732,7 @@ src/app/data/saved-view-icons.ts 60 - Files + 檔案 Filter @@ -13612,7 +13740,7 @@ src/app/data/saved-view-icons.ts 62 - Filter + 篩選器 Gear @@ -13620,7 +13748,7 @@ src/app/data/saved-view-icons.ts 63 - Gear + 齒輪 Globe @@ -13628,7 +13756,7 @@ src/app/data/saved-view-icons.ts 64 - Globe + 地球 Hash @@ -13636,7 +13764,7 @@ src/app/data/saved-view-icons.ts 65 - Hash + 井字號 Heart @@ -13644,7 +13772,7 @@ src/app/data/saved-view-icons.ts 66 - Heart + 愛心 House @@ -13652,7 +13780,7 @@ src/app/data/saved-view-icons.ts 67 - House + 房子 Inbox @@ -13660,7 +13788,7 @@ src/app/data/saved-view-icons.ts 68 - Inbox + 收件匣 Journals @@ -13668,7 +13796,7 @@ src/app/data/saved-view-icons.ts 69 - Journals + 日記 Task list @@ -13676,7 +13804,7 @@ src/app/data/saved-view-icons.ts 70 - Task list + 任務清單 Newspaper @@ -13684,7 +13812,7 @@ src/app/data/saved-view-icons.ts 71 - Newspaper + 報紙 Attachment @@ -13692,7 +13820,7 @@ src/app/data/saved-view-icons.ts 72 - Attachment + 附加檔案 People @@ -13700,7 +13828,7 @@ src/app/data/saved-view-icons.ts 73 - People + 人物 Person @@ -13708,7 +13836,7 @@ src/app/data/saved-view-icons.ts 74 - Person + 個人 Printer @@ -13716,7 +13844,7 @@ src/app/data/saved-view-icons.ts 75 - Printer + 印表機 Receipt @@ -13724,7 +13852,7 @@ src/app/data/saved-view-icons.ts 76 - Receipt + 收據 Safe @@ -13732,7 +13860,7 @@ src/app/data/saved-view-icons.ts 77 - Safe + 保險箱 Shop @@ -13740,7 +13868,7 @@ src/app/data/saved-view-icons.ts 80 - Shop + 商店 Stack @@ -13748,7 +13876,7 @@ src/app/data/saved-view-icons.ts 81 - Stack + 堆疊 Stars @@ -13756,7 +13884,7 @@ src/app/data/saved-view-icons.ts 82 - Stars + 星星 Tag @@ -13764,7 +13892,7 @@ src/app/data/saved-view-icons.ts 83 - Tag + 標籤 Telephone @@ -13772,7 +13900,7 @@ src/app/data/saved-view-icons.ts 85 - Telephone + 電話 Truck @@ -13780,7 +13908,7 @@ src/app/data/saved-view-icons.ts 86 - Truck + 卡車 Barcode @@ -13788,7 +13916,7 @@ src/app/data/saved-view-icons.ts 87 - Barcode + 條碼 Wallet @@ -13796,7 +13924,7 @@ src/app/data/saved-view-icons.ts 88 - Wallet + 錢包 Processing @@ -13804,7 +13932,7 @@ src/app/data/share-link-bundle.ts 42 - Processing + 處理中 Ready @@ -13812,7 +13940,7 @@ src/app/data/share-link-bundle.ts 43 - Ready + 就緒 Original @@ -13820,7 +13948,7 @@ src/app/data/share-link-bundle.ts 52 - Original + 原始檔 7 days @@ -14168,7 +14296,7 @@ src/app/services/settings.service.ts 146 - Indonesian + 印尼文 Italian @@ -14538,7 +14666,7 @@ Prev src/main.ts - 468 + 472 上一頁 @@ -14546,7 +14674,7 @@ End src/main.ts - 470 + 474 結束 diff --git a/src-ui/src/main.ts b/src-ui/src/main.ts index dc8d8d3f5..83990a3f9 100644 --- a/src-ui/src/main.ts +++ b/src-ui/src/main.ts @@ -74,6 +74,7 @@ import { clipboardCheckFill, clipboardFill, clockHistory, + cpu, creditCard, dash, dashCircle, @@ -118,6 +119,7 @@ import { infoCircle, journalBookmarkFill, journals, + lightbulb, link, list, listNested, @@ -322,6 +324,7 @@ const icons = { clipboardCheckFill, clipboardFill, clockHistory, + cpu, cash, creditCard, dash, @@ -367,6 +370,7 @@ const icons = { infoCircle, journalBookmarkFill, journals, + lightbulb, link, list, listNested, diff --git a/src-ui/src/styles.scss b/src-ui/src/styles.scss index 8c0fec3e8..c135d343b 100644 --- a/src-ui/src/styles.scss +++ b/src-ui/src/styles.scss @@ -292,6 +292,7 @@ a.btn-link:active, a.btn-link:focus-visible, .btn-link:hover, .btn-link:active, +.btn-link.show, .btn-link:focus-visible { color: var(--pngx-primary-lighten-10) !important; .primary-light & { diff --git a/src-ui/src/test/mocks/pdfjs-web-pdf_viewer.ts b/src-ui/src/test/mocks/pdfjs-web-pdf_viewer.ts index 601b05caf..18e30e8aa 100644 --- a/src-ui/src/test/mocks/pdfjs-web-pdf_viewer.ts +++ b/src-ui/src/test/mocks/pdfjs-web-pdf_viewer.ts @@ -25,10 +25,20 @@ export class PDFFindController { onIsPageVisible?: () => boolean } +export const LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4, +} + export class PDFLinkService { private document?: unknown private viewer?: unknown + constructor(readonly options: Record = {}) {} + setDocument(document: unknown): void { this.document = document } diff --git a/src/conftest.py b/src/conftest.py new file mode 100644 index 000000000..781cdff61 --- /dev/null +++ b/src/conftest.py @@ -0,0 +1,151 @@ +"""Fixtures available to every Paperless-ngx app. + +Loaded automatically for every test path. Keep module-scope imports minimal: +this file is imported for every session, so anything heavy belongs inside +the fixture body that needs it. +""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +import pytest + +if TYPE_CHECKING: + from collections.abc import Generator + from pathlib import Path + + from django.contrib.auth.models import User + from pytest_django.fixtures import Settings + from rest_framework.test import APIClient + + from paperless_testing.dirs import PaperlessDirs + from paperless_testing.fakes.progress import FakeProgressManager + + +@pytest.fixture(scope="session", autouse=True) +def faker_session_locale() -> str: + """Pin Faker's locale so generated data does not follow the host locale. + + The seed itself is left to pytest-randomly, which derives one per run. + """ + return "en_US" + + +@pytest.fixture(autouse=True) +def _fast_password_hasher(settings: Settings) -> None: + """Hash test passwords with MD5 instead of Django's default PBKDF2. + + PBKDF2 is deliberately slow, and every ``admin_user`` or + ``create_superuser`` call pays for it: about 600 ms each. No test depends + on the hash format, only on ``check_password`` and on the stored value + changing when the password does. + """ + settings.PASSWORD_HASHERS = ["django.contrib.auth.hashers.MD5PasswordHasher"] + + +@pytest.fixture(autouse=True) +def _clear_content_type_caches() -> None: + """Clear Django's ContentType cache and guardian's lru_cache before each test. + + Tests that delete and reinsert ContentType/Permission rows (e.g. the + importer) corrupt both caches. Without this fixture a subsequent test on + the same xdist worker sees stale ContentType objects and guardian raises + MixedContentTypeError. + """ + from django.contrib.contenttypes.models import ContentType + from guardian.shortcuts import clear_ct_cache + + ContentType.objects.clear_cache() + clear_ct_cache() + + +@pytest.fixture(autouse=True) +def _clear_django_caches() -> None: + """Clear every configured cache before each test. + + Cached values outlive the test that wrote them: the classifier keys its + vectorized content on a hash of the content itself, so a second test + generating the same fixture data takes the cache-hit path and never calls + the code it is asserting against. + """ + from django.core.cache import caches + + for cache in caches.all(initialized_only=False): + cache.clear() + + +@pytest.fixture +def paperless_dirs( + tmp_path: Path, + settings: Settings, +) -> Generator[PaperlessDirs, None, None]: + """The standard temp directory layout, applied to Django settings.""" + from documents.search import reset_backend + from paperless_testing.dirs import build_paperless_dirs + from paperless_testing.dirs import dirs_settings + + dirs = build_paperless_dirs(tmp_path) + for name, value in dirs_settings(dirs).items(): + setattr(settings, name, value) + + # Not directory settings, but they are needed alongside the layout by the + # sanity checker tests. + settings.IGNORABLE_FILES = {".DS_Store", "Thumbs.db", "desktop.ini"} + settings.APP_LOGO = "" + + reset_backend() + yield dirs + reset_backend() + + +@pytest.fixture +def rest_api_client() -> APIClient: + """The basic DRF APIClient, unauthenticated.""" + from rest_framework.test import APIClient + + return APIClient() + + +@pytest.fixture +def regular_user(db: None) -> User: + """Unprivileged user for permission boundary tests.""" + from paperless_testing.factories import UserFactory + + return UserFactory(username="regular") + + +@pytest.fixture +def admin_client(rest_api_client: APIClient, admin_user: User) -> APIClient: + """Admin client pre-authenticated and sending the v10 Accept header.""" + rest_api_client.force_authenticate(user=admin_user) + rest_api_client.credentials(HTTP_ACCEPT="application/json; version=10") + return rest_api_client + + +@pytest.fixture +def v9_client(rest_api_client: APIClient, admin_user: User) -> APIClient: + """Admin client pre-authenticated and sending the v9 Accept header.""" + rest_api_client.force_authenticate(user=admin_user) + rest_api_client.credentials(HTTP_ACCEPT="application/json; version=9") + return rest_api_client + + +@pytest.fixture +def user_client(rest_api_client: APIClient, regular_user: User) -> APIClient: + """Regular-user client pre-authenticated and sending the v10 Accept header.""" + rest_api_client.force_authenticate(user=regular_user) + rest_api_client.credentials(HTTP_ACCEPT="application/json; version=10") + return rest_api_client + + +@pytest.fixture +def fake_progress_manager( + monkeypatch: pytest.MonkeyPatch, +) -> type[FakeProgressManager]: + """Replace documents.tasks.ProgressManager with the fake, so consuming a file + in a test never tries to reach a broker.""" + from paperless_testing.fakes.progress import FakeProgressManager + + monkeypatch.setattr("documents.tasks.ProgressManager", FakeProgressManager) + return FakeProgressManager diff --git a/src/documents/apps.py b/src/documents/apps.py index 8e8b4bc13..deb8a238d 100644 --- a/src/documents/apps.py +++ b/src/documents/apps.py @@ -26,7 +26,6 @@ class DocumentsConfig(AppConfig): document_consumption_finished.connect(set_document_type) document_consumption_finished.connect(set_tags) document_consumption_finished.connect(set_storage_path) - document_consumption_finished.connect(add_to_index) document_consumption_finished.connect(run_workflows_added) document_consumption_finished.connect(add_to_index) document_consumption_finished.connect(add_or_update_document_in_llm_index) diff --git a/src/documents/barcodes.py b/src/documents/barcodes.py index 2bb96f1ea..324d65d61 100644 --- a/src/documents/barcodes.py +++ b/src/documents/barcodes.py @@ -18,6 +18,7 @@ from documents.converters import convert_from_tiff_to_pdf from documents.data_models import ConsumableDocument from documents.data_models import DocumentMetadataOverrides from documents.data_models import DocumentSource +from documents.data_models import StoredBarcode from documents.models import Document from documents.models import PaperlessTask from documents.models import Tag @@ -47,6 +48,7 @@ class Barcode: page: int value: str settings: BarcodeConfig + format: str = "" @property def is_separator(self) -> bool: @@ -78,6 +80,12 @@ class Barcode: return True return False + def stored(self) -> StoredBarcode: + """ + The barcode as it is stored with a document, page 1-indexed + """ + return {"page": self.page + 1, "value": self.value, "format": self.format} + class BarcodePlugin(ConsumeTaskPlugin): NAME: str = "BarcodePlugin" @@ -89,16 +97,12 @@ class BarcodePlugin(ConsumeTaskPlugin): - ASN from barcode detection is enabled or - Barcode support is enabled and the mime type is supported """ - if self.settings.barcode_enable_tiff_support: - supported_mimes: set[str] = {"application/pdf", "image/tiff"} - else: - supported_mimes = {"application/pdf"} - return ( self.settings.barcode_enable_asn or self.settings.barcodes_enabled or self.settings.barcode_enable_tag - ) and self.input_doc.mime_type in supported_mimes + or self.settings.barcode_store_values + ) and self.input_doc.mime_type in scannable_mime_types(self.settings) def get_settings(self) -> BarcodeConfig: """ @@ -244,6 +248,10 @@ class BarcodePlugin(ConsumeTaskPlugin): if self.settings.barcode_enable_asn and (located_asn := self.asn) is not None: self._apply_detected_asn(located_asn) + # After splitting too, so each split document keeps its own barcodes + if self.settings.barcode_store_values: + self.metadata.barcodes = [x.stored() for x in self.barcodes] or None + def cleanup(self) -> None: self.temp_dir.cleanup() @@ -262,22 +270,6 @@ class BarcodePlugin(ConsumeTaskPlugin): ) self._tiff_conversion_done = True - @staticmethod - def read_barcodes_zxing(image: Image.Image) -> list[str]: - barcodes = [] - - import zxingcpp - - detected_barcodes = zxingcpp.read_barcodes(image) - for barcode in detected_barcodes: - if barcode.text: - barcodes.append(barcode.text) - logger.debug( - f"Barcode of type {barcode.format} found: {barcode.text}", - ) - - return barcodes - def detect(self) -> None: """ Scan all pages of the PDF as images, updating barcodes and the pages @@ -291,60 +283,12 @@ class BarcodePlugin(ConsumeTaskPlugin): self.convert_from_tiff_to_pdf() try: - # Read number of pages from pdf - with Pdf.open(self.pdf_file) as pdf: - num_of_pages = len(pdf.pages) - logger.debug(f"PDF has {num_of_pages} pages") - - # Get limit from configuration - barcode_max_pages: int = ( - num_of_pages - if self.settings.barcode_max_pages == 0 - else self.settings.barcode_max_pages + self.barcodes = scan_pdf( + self.pdf_file, + self.settings, + Path(self.temp_dir.name), ) - if barcode_max_pages < num_of_pages: # pragma: no cover - logger.debug( - f"Barcodes detection will be limited to the first {barcode_max_pages} pages", - ) - - # Loop al page - for current_page_number in range(min(num_of_pages, barcode_max_pages)): - logger.debug(f"Processing page {current_page_number}") - - # Convert page to image - page = convert_from_path( - self.pdf_file, - dpi=self.settings.barcode_dpi, - output_folder=self.temp_dir.name, - first_page=current_page_number + 1, - last_page=current_page_number + 1, - )[0] - - # Remember filename, since it is lost by upscaling - page_filepath = Path(page.filename) - logger.debug(f"Image is at {page_filepath}") - - # Upscale image if configured - factor = self.settings.barcode_upscale - if factor > 1.0: - logger.debug( - f"Upscaling image by {factor} for better barcode detection", - ) - x, y = page.size - page = page.resize( - (round(x * factor), (round(y * factor))), - ) - - # Detect barcodes - for barcode_value in self.read_barcodes_zxing(page): - self.barcodes.append( - Barcode(current_page_number, barcode_value, self.settings), - ) - - # Delete temporary image file - page_filepath.unlink() - # Password protected files can't be checked # This is the exception raised for those except PasswordError as e: @@ -534,3 +478,111 @@ class BarcodePlugin(ConsumeTaskPlugin): document_paths.append(savepath) return document_paths + + +def scannable_mime_types(settings: BarcodeConfig) -> set[str]: + """ + The file types the barcode scan supports with the current settings + """ + if settings.barcode_enable_tiff_support: + return {"application/pdf", "image/tiff"} + return {"application/pdf"} + + +def read_barcodes_zxing(image: Image.Image) -> list[tuple[str, str]]: + """ + Returns the text and format (zxing enum name) of each barcode found in + the image + """ + barcodes = [] + + import zxingcpp + + detected_barcodes = zxingcpp.read_barcodes(image) + for barcode in detected_barcodes: + if barcode.text: + barcodes.append((barcode.text, barcode.format.name)) + logger.debug( + f"Barcode of type {barcode.format} found: {barcode.text}", + ) + + return barcodes + + +def scan_pdf(pdf_path: Path, settings: BarcodeConfig, work_dir: Path) -> list[Barcode]: + """ + Scans the pages of a PDF as images for barcodes. Errors are not caught, + so callers can tell a failed scan from one that found nothing. + """ + barcodes: list[Barcode] = [] + + with Pdf.open(pdf_path) as pdf: + num_of_pages = len(pdf.pages) + logger.debug(f"PDF has {num_of_pages} pages") + + # Get limit from configuration + barcode_max_pages: int = ( + num_of_pages if settings.barcode_max_pages == 0 else settings.barcode_max_pages + ) + + if barcode_max_pages < num_of_pages: # pragma: no cover + logger.debug( + f"Barcodes detection will be limited to the first {barcode_max_pages} pages", + ) + + for current_page_number in range(min(num_of_pages, barcode_max_pages)): + logger.debug(f"Processing page {current_page_number}") + + # Convert page to image + page = convert_from_path( + pdf_path, + dpi=settings.barcode_dpi, + output_folder=work_dir, + first_page=current_page_number + 1, + last_page=current_page_number + 1, + )[0] + + # Remember filename, since it is lost by upscaling + page_filepath = Path(page.filename) + logger.debug(f"Image is at {page_filepath}") + + # Upscale image if configured + factor = settings.barcode_upscale + if factor > 1.0: + logger.debug( + f"Upscaling image by {factor} for better barcode detection", + ) + x, y = page.size + page = page.resize( + (round(x * factor), (round(y * factor))), + ) + + for barcode_value, barcode_format in read_barcodes_zxing(page): + barcodes.append( + Barcode(current_page_number, barcode_value, settings, barcode_format), + ) + + # Delete temporary image file + page_filepath.unlink() + + return barcodes + + +def read_barcode_values( + path: Path, + mime_type: str, + settings: BarcodeConfig, + work_dir: Path, +) -> list[StoredBarcode] | None: + """ + Reads the barcodes of a file outside of the consumption plugins: for new + versions, which skip the barcode plugin, and when reprocessing. + + Returns None if the file can't be scanned with the current settings. + Errors while scanning are raised. + """ + if mime_type not in scannable_mime_types(settings): + return None + if mime_type == "image/tiff": + path = convert_from_tiff_to_pdf(path, work_dir) + return [x.stored() for x in scan_pdf(path, settings, work_dir)] diff --git a/src/documents/consumer.py b/src/documents/consumer.py index edb48c348..252ee6d1f 100644 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -18,6 +18,7 @@ from django.utils import timezone from filelock import FileLock from rest_framework.reverse import reverse +from documents.barcodes import read_barcode_values from documents.classifier import load_classifier from documents.data_models import ConsumableDocument from documents.data_models import ConsumeFileSuccessResult @@ -31,6 +32,7 @@ from documents.models import Correspondent from documents.models import CustomField from documents.models import CustomFieldInstance from documents.models import Document +from documents.models import DocumentBarcode from documents.models import DocumentType from documents.models import StoragePath from documents.models import Tag @@ -53,6 +55,7 @@ from documents.utils import compute_checksum from documents.utils import copy_basic_file_stats from documents.utils import copy_file_with_basic_stats from documents.utils import run_subprocess +from paperless.config import BarcodeConfig from paperless.config import OcrConfig from paperless.config import RemoteOCRConfig from paperless.models import ArchiveFileGenerationChoices @@ -504,6 +507,13 @@ class ConsumerPlugin( f"Parser: {document_parser.name} v{document_parser.version}", ) + # New versions skip the barcode plugin, so read their barcodes here + if ( + self.input_doc.root_document_id is not None + and self.metadata.barcodes is None + ): + self._read_version_barcodes(mime_type, Path(tmpdir)) + # Parse the document. This may take some time. text = None @@ -631,6 +641,8 @@ class ConsumerPlugin( else: original_document.save() + self._store_barcodes(original_document) + # Adding a version changes the effective document, so update root modified Document.objects.filter(pk=root_doc.pk).update( modified=timezone.now(), @@ -857,8 +869,9 @@ class ConsumerPlugin( self.log.debug(f"Creation date from parse_date: {create_date}") else: stats = Path(self.input_doc.original_file).stat() - create_date = timezone.make_aware( - datetime.datetime.fromtimestamp(stats.st_mtime), + create_date = datetime.datetime.fromtimestamp( + stats.st_mtime, + tz=timezone.get_current_timezone(), ) self.log.debug(f"Creation date from st_mtime: {create_date}") @@ -961,6 +974,32 @@ class ConsumerPlugin( } CustomFieldInstance.objects.create(**args) # adds to document + self._store_barcodes(document) + + def _read_version_barcodes(self, mime_type: str, work_dir: Path) -> None: + barcode_settings = BarcodeConfig() + if not barcode_settings.barcode_store_values: + return + try: + self.metadata.barcodes = ( + read_barcode_values( + self.working_copy, + mime_type, + barcode_settings, + work_dir, + ) + or None + ) + except Exception as e: + self.log.warning(f"Could not read barcodes of {self.filename}: {e}") + + def _store_barcodes(self, document: Document) -> None: + if self.metadata.barcodes: + DocumentBarcode.objects.bulk_create( + DocumentBarcode(document=document, **barcode) + for barcode in self.metadata.barcodes + ) + def _write(self, source, target) -> None: with ( Path(source).open("rb") as read_file, diff --git a/src/documents/data_models.py b/src/documents/data_models.py index 230af0684..e8df1a022 100644 --- a/src/documents/data_models.py +++ b/src/documents/data_models.py @@ -9,6 +9,16 @@ from guardian.shortcuts import get_groups_with_perms from guardian.shortcuts import get_users_with_perms +class StoredBarcode(TypedDict): + """ + A detected barcode as it is stored with a document + """ + + page: int # 1-indexed + value: str + format: str # a DocumentBarcode.Format value + + @dataclasses.dataclass class DocumentMetadataOverrides: """ @@ -35,6 +45,7 @@ class DocumentMetadataOverrides: version_label: str | None = None actor_id: int | None = None remote_ocr: bool = False + barcodes: list[StoredBarcode] | None = None def update(self, other: "DocumentMetadataOverrides") -> "DocumentMetadataOverrides": """ diff --git a/src/documents/management/commands/document_exporter.py b/src/documents/management/commands/document_exporter.py index 320605235..25f4cb717 100644 --- a/src/documents/management/commands/document_exporter.py +++ b/src/documents/management/commands/document_exporter.py @@ -45,6 +45,7 @@ from documents.models import Correspondent from documents.models import CustomField from documents.models import CustomFieldInstance from documents.models import Document +from documents.models import DocumentBarcode from documents.models import DocumentType from documents.models import Note from documents.models import SavedView @@ -353,6 +354,7 @@ class Command(CryptMixin, PaperlessCommand): "workflows": Workflow.objects.all(), "custom_fields": CustomField.objects.all(), "custom_field_instances": CustomFieldInstance.global_objects.all(), + "document_barcodes": DocumentBarcode.objects.all(), "app_configs": ApplicationConfiguration.objects.all(), "notes": Note.global_objects.all(), "documents": Document.global_objects.order_by("id").all(), @@ -411,6 +413,7 @@ class Command(CryptMixin, PaperlessCommand): elif self.split_manifest and key in ( "notes", "custom_field_instances", + "document_barcodes", ): # Written per-document in _write_split_manifest pass @@ -651,6 +654,12 @@ class Command(CryptMixin, PaperlessCommand): CustomFieldInstance.global_objects.filter(document=document), ), ) + content.extend( + serializers.serialize( + "python", + DocumentBarcode.objects.filter(document=document), + ), + ) manifest_name = base_name.with_name(f"{base_name.stem}-manifest.json") if self.use_folder_prefix: manifest_name = Path("json") / manifest_name diff --git a/src/documents/management/commands/document_index.py b/src/documents/management/commands/document_index.py index 10558c211..45dd98824 100644 --- a/src/documents/management/commands/document_index.py +++ b/src/documents/management/commands/document_index.py @@ -77,6 +77,8 @@ class Command(PaperlessCommand): "notes__user", "custom_fields__field", "versions", + "barcodes", + "versions__barcodes", ) total = documents.count() rebuild_kwargs = {} diff --git a/src/documents/migrations/0027_documentbarcode.py b/src/documents/migrations/0027_documentbarcode.py new file mode 100644 index 000000000..d38ee0b0e --- /dev/null +++ b/src/documents/migrations/0027_documentbarcode.py @@ -0,0 +1,102 @@ +# Generated by Django 5.2.16 on 2026-09-30 23:01 + +import django.db.models.deletion +from django.db import migrations +from django.db import models + + +class Migration(migrations.Migration): + dependencies = [ + ("documents", "0026_alter_document_archive_checksum_and_more"), + ] + + operations = [ + migrations.CreateModel( + name="DocumentBarcode", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ( + "page", + models.PositiveIntegerField( + help_text="Page of the original file, starting at 1", + verbose_name="page", + ), + ), + ("value", models.TextField(verbose_name="value")), + ( + "format", + models.CharField( + choices=[ + ("Codabar", "Codabar"), + ("Code39", "Code 39"), + ("Code39Std", "Code 39 Standard"), + ("Code39Ext", "Code 39 Extended"), + ("Code32", "Code 32"), + ("PZN", "Pharmazentralnummer"), + ("Code93", "Code 93"), + ("Code128", "Code 128"), + ("ITF", "ITF"), + ("ITF14", "ITF-14"), + ("DataBar", "DataBar"), + ("DataBarOmni", "DataBar Omni"), + ("DataBarStk", "DataBar Stacked"), + ("DataBarStkOmni", "DataBar Stacked Omni"), + ("DataBarLtd", "DataBar Limited"), + ("DataBarExp", "DataBar Expanded"), + ("DataBarExpStk", "DataBar Expanded Stacked"), + ("EANUPC", "EAN/UPC"), + ("EAN13", "EAN-13"), + ("EAN8", "EAN-8"), + ("EAN5", "EAN-5"), + ("EAN2", "EAN-2"), + ("ISBN", "ISBN"), + ("UPCA", "UPC-A"), + ("UPCE", "UPC-E"), + ("Telepen", "Telepen"), + ("TelepenAlpha", "Telepen Alpha"), + ("TelepenNumeric", "Telepen Numeric"), + ("OtherBarcode", "Other barcode"), + ("DXFilmEdge", "DX Film Edge"), + ("PDF417", "PDF417"), + ("CompactPDF417", "Compact PDF417"), + ("MicroPDF417", "MicroPDF417"), + ("Aztec", "Aztec"), + ("AztecCode", "Aztec Code"), + ("AztecRune", "Aztec Rune"), + ("QRCode", "QR Code"), + ("QRCodeModel1", "QR Code Model 1"), + ("QRCodeModel2", "QR Code Model 2"), + ("MicroQRCode", "Micro QR Code"), + ("RMQRCode", "rMQR Code"), + ("DataMatrix", "Data Matrix"), + ("MaxiCode", "MaxiCode"), + ], + max_length=32, + verbose_name="format", + ), + ), + ( + "document", + models.ForeignKey( + on_delete=django.db.models.deletion.CASCADE, + related_name="barcodes", + to="documents.document", + verbose_name="document", + ), + ), + ], + options={ + "verbose_name": "document barcode", + "verbose_name_plural": "document barcodes", + "ordering": ("page", "id"), + }, + ), + ] diff --git a/src/documents/models.py b/src/documents/models.py index 76b0192aa..ff8632b12 100644 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -366,6 +366,16 @@ class Document(SoftDeleteModel, ModelWithOwner): # type: ignore[django-manager- res += f" {self.title}" return res + def get_effective_barcodes(self) -> list["DocumentBarcode"]: + """ + Returns the stored barcodes for the document, like + get_effective_content(): for root documents those of the latest + version when there is one, as that is the file users see. + """ + from documents.versioning import latest_version + + return list(latest_version(self).barcodes.all()) + def get_effective_content(self) -> str | None: """ Returns the effective content for the document. @@ -969,6 +979,87 @@ class Note(SoftDeleteModel): return self.note +class DocumentBarcode(models.Model): + """ + A barcode found in a document during consumption, kept so its content + can be shown and copied + """ + + document = models.ForeignKey( + Document, + related_name="barcodes", + on_delete=models.CASCADE, + verbose_name=_("document"), + ) + + page = models.PositiveIntegerField( + _("page"), + help_text=_("Page of the original file, starting at 1"), + ) + + value = models.TextField(_("value")) + + class Format(models.TextChoices): + """ + The concrete barcode formats of zxing-cpp, keyed on the enum name. + The labels are symbology names and aren't translated. + """ + + CODABAR = "Codabar", "Codabar" + CODE39 = "Code39", "Code 39" + CODE39_STD = "Code39Std", "Code 39 Standard" + CODE39_EXT = "Code39Ext", "Code 39 Extended" + CODE32 = "Code32", "Code 32" + PZN = "PZN", "Pharmazentralnummer" + CODE93 = "Code93", "Code 93" + CODE128 = "Code128", "Code 128" + ITF = "ITF", "ITF" + ITF14 = "ITF14", "ITF-14" + DATA_BAR = "DataBar", "DataBar" + DATA_BAR_OMNI = "DataBarOmni", "DataBar Omni" + DATA_BAR_STK = "DataBarStk", "DataBar Stacked" + DATA_BAR_STK_OMNI = "DataBarStkOmni", "DataBar Stacked Omni" + DATA_BAR_LTD = "DataBarLtd", "DataBar Limited" + DATA_BAR_EXP = "DataBarExp", "DataBar Expanded" + DATA_BAR_EXP_STK = "DataBarExpStk", "DataBar Expanded Stacked" + EANUPC = "EANUPC", "EAN/UPC" + EAN13 = "EAN13", "EAN-13" + EAN8 = "EAN8", "EAN-8" + EAN5 = "EAN5", "EAN-5" + EAN2 = "EAN2", "EAN-2" + ISBN = "ISBN", "ISBN" + UPCA = "UPCA", "UPC-A" + UPCE = "UPCE", "UPC-E" + TELEPEN = "Telepen", "Telepen" + TELEPEN_ALPHA = "TelepenAlpha", "Telepen Alpha" + TELEPEN_NUMERIC = "TelepenNumeric", "Telepen Numeric" + OTHER_BARCODE = "OtherBarcode", "Other barcode" + DX_FILM_EDGE = "DXFilmEdge", "DX Film Edge" + PDF417 = "PDF417", "PDF417" + COMPACT_PDF417 = "CompactPDF417", "Compact PDF417" + MICRO_PDF417 = "MicroPDF417", "MicroPDF417" + AZTEC = "Aztec", "Aztec" + AZTEC_CODE = "AztecCode", "Aztec Code" + AZTEC_RUNE = "AztecRune", "Aztec Rune" + QR_CODE = "QRCode", "QR Code" + QR_CODE_MODEL1 = "QRCodeModel1", "QR Code Model 1" + QR_CODE_MODEL2 = "QRCodeModel2", "QR Code Model 2" + MICRO_QR_CODE = "MicroQRCode", "Micro QR Code" + RMQR_CODE = "RMQRCode", "rMQR Code" + DATA_MATRIX = "DataMatrix", "Data Matrix" + MAXI_CODE = "MaxiCode", "MaxiCode" + + format = models.CharField(_("format"), max_length=32, choices=Format.choices) + + class Meta: + ordering = ("page", "id") + verbose_name = _("document barcode") + verbose_name_plural = _("document barcodes") + + def __str__(self) -> str: # pragma: no cover + return self.value + + class ShareLink(SoftDeleteModel): class FileVersion(models.TextChoices): ARCHIVE = ("archive", _("Archive")) diff --git a/src/documents/search/_backend.py b/src/documents/search/_backend.py index 447bc6bbe..996d332e8 100644 --- a/src/documents/search/_backend.py +++ b/src/documents/search/_backend.py @@ -196,52 +196,49 @@ class WriteBatch: return self._raw_writer def __enter__(self) -> Self: - if self._backend._path is not None: - lock_path = self._backend._path / ".tantivy.lock" - self._lock = filelock.FileLock(str(lock_path)) - for attempt in range(_LOCK_RETRY_ATTEMPTS): - try: - self._lock.acquire(timeout=self._lock_timeout) - break - except filelock.Timeout: - if attempt == _LOCK_RETRY_ATTEMPTS - 1: - raise SearchIndexLockError( - f"Could not acquire index lock after {_LOCK_RETRY_ATTEMPTS} " - f"attempts (timeout={self._lock_timeout}s each)", - ) - sleep_s = random.uniform( - 0, - min(_LOCK_BACKOFF_CAP, _LOCK_BACKOFF_BASE * (2**attempt)), + lock_path = self._backend._path / ".tantivy.lock" + self._lock = filelock.FileLock(str(lock_path)) + for attempt in range(_LOCK_RETRY_ATTEMPTS): + try: + self._lock.acquire(timeout=self._lock_timeout) + break + except filelock.Timeout: + if attempt == _LOCK_RETRY_ATTEMPTS - 1: + raise SearchIndexLockError( + f"Could not acquire index lock after {_LOCK_RETRY_ATTEMPTS} " + f"attempts (timeout={self._lock_timeout}s each)", ) - logger.debug( - "Index lock contention; retrying in %.2fs (attempt %d/%d)", - sleep_s, - attempt + 1, - _LOCK_RETRY_ATTEMPTS, - ) - time.sleep(sleep_s) + sleep_s = random.uniform( + 0, + min(_LOCK_BACKOFF_CAP, _LOCK_BACKOFF_BASE * (2**attempt)), + ) + logger.debug( + "Index lock contention; retrying in %.2fs (attempt %d/%d)", + sleep_s, + attempt + 1, + _LOCK_RETRY_ATTEMPTS, + ) + time.sleep(sleep_s) - # Open a fresh Index (and thus a fresh Tantivy ManagedDirectory) - # for the write, rather than reusing the process-local cached - # index. ManagedDirectory loads its GC bookkeeping (.managed.json) - # once, at construction, and never re-reads it; paperless runs - # several long-lived processes (Granian workers, Celery workers) - # that take turns writing under the file lock above. A cached, - # long-lived writer index would carry a stale managed-files view - # and, on commit, overwrite .managed.json with that stale view - - # permanently losing track of segment files other processes - # registered in the meantime, so they can never be garbage - # collected. Reopening fresh here always picks up the current - # on-disk state. The long-lived self._backend._index is used for - # reads only and is reloaded (not reopened) after commit below. - write_index = tantivy.Index( - build_schema(), - path=str(self._backend._path), - ) - register_tokenizers(write_index, settings.SEARCH_LANGUAGE) - self._raw_writer = write_index.writer() - else: - self._raw_writer = self._backend._index.writer() + # Open a fresh Index (and thus a fresh Tantivy ManagedDirectory) + # for the write, rather than reusing the process-local cached + # index. ManagedDirectory loads its GC bookkeeping (.managed.json) + # once, at construction, and never re-reads it; paperless runs + # several long-lived processes (Granian workers, Celery workers) + # that take turns writing under the file lock above. A cached, + # long-lived writer index would carry a stale managed-files view + # and, on commit, overwrite .managed.json with that stale view - + # permanently losing track of segment files other processes + # registered in the meantime, so they can never be garbage + # collected. Reopening fresh here always picks up the current + # on-disk state. The long-lived self._backend._index is used for + # reads only and is reloaded (not reopened) after commit below. + write_index = tantivy.Index( + build_schema(), + path=str(self._backend._path), + ) + register_tokenizers(write_index, settings.SEARCH_LANGUAGE) + self._raw_writer = write_index.writer() return self def __exit__(self, exc_type, exc_val, exc_tb): @@ -314,7 +311,13 @@ class WriteBatch: queryset = annotate_effective_content( Document.objects.filter(pk__in=ids) .select_related("correspondent", "document_type", "storage_path", "owner") - .prefetch_related("tags", "notes__user", "custom_fields__field"), + .prefetch_related( + "tags", + "notes__user", + "custom_fields__field", + "barcodes", + "versions__barcodes", + ), ) for document, grant in _DocumentViewerStream(queryset, chunk_size=1000): self.remove(document.pk) @@ -372,9 +375,8 @@ class TantivyBackend: Tantivy search backend with explicit lifecycle management. Provides full-text search capabilities using the Tantivy search engine. - Supports in-memory indexes (for testing) and persistent on-disk indexes - (for production use). Handles document indexing, search queries, autocompletion, - and "more like this" functionality. + Keeps a persistent on-disk index. Handles document indexing, search queries, + autocompletion, and "more like this" functionality. The backend manages its own connection lifecycle and can be reset when the underlying index directory changes (e.g., during test isolation). @@ -408,9 +410,7 @@ class TantivyBackend: }, ) - def __init__(self, path: Path | None = None): - # path=None → in-memory index (for tests) - # path=some_dir → on-disk index (for production) + def __init__(self, path: Path): self._path = path self._raw_index: tantivy.Index | None = None self._raw_schema: tantivy.Schema | None = None @@ -429,16 +429,13 @@ class TantivyBackend: """ Open or rebuild the index as needed. - For disk-based indexes, checks if rebuilding is needed due to schema - version or language changes. Registers custom tokenizers after opening. + Checks if rebuilding is needed due to schema version or language + changes. Registers custom tokenizers after opening. Safe to call multiple times - subsequent calls are no-ops. """ if self._raw_index is not None: return # pragma: no cover - if self._path is not None: - self._raw_index = open_or_rebuild_index(self._path) - else: - self._raw_index = tantivy.Index(build_schema()) + self._raw_index = open_or_rebuild_index(self._path) register_tokenizers(self._raw_index, settings.SEARCH_LANGUAGE) self._raw_schema = self._raw_index.schema @@ -613,6 +610,16 @@ class TantivyBackend: }, ) + # Barcodes: JSON field like custom_fields, only filled when stored + for barcode in document.get_effective_barcodes(): + doc.add_json( + "barcodes", + { + "value": normalize_search_text(barcode.value), + "format": normalize_search_text(barcode.format), + }, + ) + # Dates created_date = datetime( document.created.year, @@ -1102,13 +1109,9 @@ class TantivyBackend: writer's threads). Larger values buffer more docs in RAM before flushing a segment, deferring merge work; they do not avoid it. """ - # Create new index (on-disk or in-memory) - if self._path is not None: - wipe_index(self._path) - new_index = tantivy.Index(build_schema(), path=str(self._path)) - _write_sentinels(self._path) - else: - new_index = tantivy.Index(build_schema()) + wipe_index(self._path) + new_index = tantivy.Index(build_schema(), path=str(self._path)) + _write_sentinels(self._path) register_tokenizers(new_index, settings.SEARCH_LANGUAGE) # Point instance at the new index so _build_tantivy_doc uses it diff --git a/src/documents/search/_fields.py b/src/documents/search/_fields.py index b5194ce81..29dc99468 100644 --- a/src/documents/search/_fields.py +++ b/src/documents/search/_fields.py @@ -39,4 +39,9 @@ PUBLIC_FIELDS: tuple[FieldSpec, ...] = ( FieldKind.JSON, subpaths={"name": SubpathSpec(), "value": SubpathSpec(default=True)}, ), + FieldSpec( + "barcodes", + FieldKind.JSON, + subpaths={"value": SubpathSpec(default=True), "format": SubpathSpec()}, + ), ) diff --git a/src/documents/search/_schema.py b/src/documents/search/_schema.py index 3430356e0..2539d12fe 100644 --- a/src/documents/search/_schema.py +++ b/src/documents/search/_schema.py @@ -25,7 +25,8 @@ logger = logging.getLogger("paperless.search") # order, and the write-only correspondent/document_type/storage_path/tag id # columns dropped. tantivy compares schemas by ordered field list, so an # index built by v1 rejects every write against the v2 schema. -SCHEMA_VERSION: Final[int] = 2 +# v3 - barcodes JSON field for stored barcode contents +SCHEMA_VERSION: Final[int] = 3 class FieldDescriptor(NamedTuple): diff --git a/src/documents/serialisers.py b/src/documents/serialisers.py index c063a72fa..c2c875029 100644 --- a/src/documents/serialisers.py +++ b/src/documents/serialisers.py @@ -60,6 +60,7 @@ from documents.models import Correspondent from documents.models import CustomField from documents.models import CustomFieldInstance from documents.models import Document +from documents.models import DocumentBarcode from documents.models import DocumentType from documents.models import MatchingModel from documents.models import Note @@ -987,6 +988,12 @@ class BasicUserSerializer(serializers.ModelSerializer[User]): fields = ["id", "username", "first_name", "last_name"] +class DocumentBarcodeSerializer(serializers.ModelSerializer[DocumentBarcode]): + class Meta: + model = DocumentBarcode + fields = ["page", "value", "format"] + + class NotesSerializer(serializers.ModelSerializer[Note]): user = BasicUserSerializer(read_only=True) @@ -1079,6 +1086,16 @@ class DocumentSerializer( ) def get_page_count(self, obj) -> int | None: + # Like content versions get their own page count from the newest version, + # use the prefetched versions cache to avoid an extra query + prefetched_cache = getattr(obj, "_prefetched_objects_cache", None) + prefetched_versions = ( + prefetched_cache.get("versions") + if isinstance(prefetched_cache, dict) + else None + ) + if obj.root_document_id is None and prefetched_versions: + return sort_versions_newest_first(prefetched_versions)[0].page_count return obj.page_count @extend_schema_field(DuplicateDocumentSummarySerializer(many=True)) @@ -2098,6 +2115,8 @@ class BulkEditSerializer( if not isinstance(parameters["pages"], str): raise serializers.ValidationError("invalid pages specified") page_count = Document.objects.get(id=document_id).page_count + if not page_count: + raise serializers.ValidationError("document page count is unknown") pages = [] for group in parameters["pages"].split(","): start, is_range, end = group.partition("-") @@ -2107,7 +2126,7 @@ class BulkEditSerializer( except ValueError as e: raise serializers.ValidationError("invalid pages specified") from e # Bound the range before building it, a huge one would exhaust memory - if not 1 <= first <= last or (page_count and last > page_count): + if not 1 <= first <= last <= page_count: raise serializers.ValidationError("invalid pages specified") pages.append(list(range(first, last + 1))) parameters["pages"] = pages diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index ec3f3778c..53acf75ba 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -56,6 +56,7 @@ from documents.permissions import get_objects_for_user_owner_aware from documents.plugins.helpers import DocumentsStatusManager from documents.templating.utils import convert_format_str_to_template_format from documents.utils import compute_checksum +from documents.utils import copy_file_with_basic_stats from documents.workflows.actions import build_workflow_action_context from documents.workflows.actions import execute_email_action from documents.workflows.actions import execute_move_to_trash_action @@ -363,7 +364,11 @@ def cleanup_document_deletion(sender, instance, **kwargs) -> None: logger.debug(f"Moving {instance.source_path} to trash at {new_file_path}") try: - shutil.move(instance.source_path, new_file_path) + shutil.move( + instance.source_path, + new_file_path, + copy_function=copy_file_with_basic_stats, + ) except OSError as e: logger.error( f"Failed to move {instance.source_path} to trash at " diff --git a/src/documents/tasks.py b/src/documents/tasks.py index 33f7d4f90..456b006d9 100644 --- a/src/documents/tasks.py +++ b/src/documents/tasks.py @@ -20,6 +20,7 @@ from filelock import FileLock from documents import sanity_checker from documents.barcodes import BarcodePlugin +from documents.barcodes import read_barcode_values from documents.bulk_download import ArchiveOnlyStrategy from documents.bulk_download import OriginalsOnlyStrategy from documents.caching import clear_document_caches @@ -36,6 +37,7 @@ from documents.data_models import ConsumeFileDuplicateResult from documents.data_models import ConsumeFileStoppedResult from documents.data_models import ConsumeFileSuccessResult from documents.data_models import DocumentMetadataOverrides +from documents.data_models import StoredBarcode from documents.double_sided import CollatePlugin from documents.file_handling import create_source_path_directory from documents.file_handling import generate_unique_filename @@ -43,6 +45,7 @@ from documents.matching import prefilter_documents_by_workflowtrigger from documents.models import Correspondent from documents.models import CustomFieldInstance from documents.models import Document +from documents.models import DocumentBarcode from documents.models import DocumentType from documents.models import PaperlessTask from documents.models import ShareLink @@ -67,6 +70,7 @@ from documents.utils import identity from documents.versioning import annotate_effective_content from documents.workflows.utils import get_workflows_for_trigger from paperless.config import AIConfig +from paperless.config import BarcodeConfig from paperless.config import RemoteOCRConfig from paperless.logging import consume_task_id from paperless.parsers import ParserContext @@ -341,6 +345,29 @@ def bulk_update_documents(document_ids) -> None: ) +def _read_barcodes_for_reprocess(document: Document) -> list[StoredBarcode] | None: + """ + Reads the barcodes of the original again, e.g. for documents consumed + before storing them was enabled. Returns None if they should be left as + they are: storing is off, the file can't be scanned with the current + settings, or the scan failed. + """ + barcode_settings = BarcodeConfig() + if not barcode_settings.barcode_store_values: + return None + try: + with TemporaryDirectory(dir=settings.SCRATCH_DIR) as tmpdir: + return read_barcode_values( + document.source_path, + document.mime_type, + barcode_settings, + Path(tmpdir), + ) + except Exception as e: + logger.warning(f"Could not read barcodes of document {document}: {e}") + return None + + @shared_task def update_document_content_maybe_archive_file( document_id, @@ -387,6 +414,8 @@ def update_document_content_maybe_archive_file( produce_archive=produce_archive, ) + barcodes = _read_barcodes_for_reprocess(document) + thumbnail = parser.get_thumbnail(document.source_path, mime_type) with transaction.atomic(): @@ -443,6 +472,17 @@ def update_document_content_maybe_archive_file( action=LogEntry.Action.UPDATE, ) + if barcodes is not None: + document.barcodes.all().delete() + DocumentBarcode.objects.bulk_create( + DocumentBarcode(document=document, **barcode) + for barcode in barcodes + ) + # metadata_etag includes modified + Document.objects.filter(pk=document.pk).update( + modified=timezone.now(), + ) + with FileLock(settings.MEDIA_LOCK): if parser.get_archive_path(): create_source_path_directory(document.archive_path) diff --git a/src/documents/templates/index.html b/src/documents/templates/index.html index 0de50243b..eb577a930 100644 --- a/src/documents/templates/index.html +++ b/src/documents/templates/index.html @@ -12,7 +12,7 @@ - + diff --git a/src/documents/tests/conftest.py b/src/documents/tests/conftest.py index 626760d31..567342dcc 100644 --- a/src/documents/tests/conftest.py +++ b/src/documents/tests/conftest.py @@ -1,88 +1,41 @@ import shutil -import zoneinfo -from collections.abc import Generator -from dataclasses import dataclass from pathlib import Path from typing import TYPE_CHECKING import filelock import pytest -from django.contrib.auth import get_user_model -from django.contrib.contenttypes.models import ContentType -from guardian.shortcuts import clear_ct_cache -from pytest_django.fixtures import Settings -from rest_framework.test import APIClient -from documents.tests.factories import DocumentFactory - -UserModelT = get_user_model() +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from documents.models import Document - - -@dataclass(frozen=True, slots=True) -class PaperlessDirs: - """Standard Paperless-ngx directory layout for tests.""" - - media: Path - originals: Path - archive: Path - thumbnails: Path + from paperless_testing.dirs import PaperlessDirs @pytest.fixture(scope="session") -def samples_dir() -> Path: +def document_samples_dir() -> Path: """Path to the shared test sample documents.""" return Path(__file__).parent / "samples" / "documents" -@pytest.fixture() -def paperless_dirs(tmp_path: Path) -> PaperlessDirs: - """Create and return the directory structure for testing.""" - media = tmp_path / "media" - dirs = PaperlessDirs( - media=media, - originals=media / "documents" / "originals", - archive=media / "documents" / "archive", - thumbnails=media / "documents" / "thumbnails", - ) - for d in (dirs.originals, dirs.archive, dirs.thumbnails): - d.mkdir(parents=True) - return dirs - - -@pytest.fixture() -def _media_settings(paperless_dirs: PaperlessDirs, settings) -> None: - """Configure Django settings to point at temp directories.""" - settings.MEDIA_ROOT = paperless_dirs.media - settings.ORIGINALS_DIR = paperless_dirs.originals - settings.ARCHIVE_DIR = paperless_dirs.archive - settings.THUMBNAIL_DIR = paperless_dirs.thumbnails - settings.MEDIA_LOCK = paperless_dirs.media / "media.lock" - settings.IGNORABLE_FILES = {".DS_Store", "Thumbs.db", "desktop.ini"} - settings.APP_LOGO = "" - - @pytest.fixture() def sample_doc( - paperless_dirs: PaperlessDirs, - _media_settings: None, - samples_dir: Path, + paperless_dirs: "PaperlessDirs", + document_samples_dir: Path, ) -> "Document": """Create a document with valid files and matching checksums.""" - with filelock.FileLock(paperless_dirs.media / "media.lock"): + with filelock.FileLock(paperless_dirs.media_lock): shutil.copy( - samples_dir / "originals" / "0000001.pdf", - paperless_dirs.originals / "0000001.pdf", + document_samples_dir / "originals" / "0000001.pdf", + paperless_dirs.originals_dir / "0000001.pdf", ) shutil.copy( - samples_dir / "archive" / "0000001.pdf", - paperless_dirs.archive / "0000001.pdf", + document_samples_dir / "archive" / "0000001.pdf", + paperless_dirs.archive_dir / "0000001.pdf", ) shutil.copy( - samples_dir / "thumbnails" / "0000001.webp", - paperless_dirs.thumbnails / "0000001.webp", + document_samples_dir / "thumbnails" / "0000001.webp", + paperless_dirs.thumbnail_dir / "0000001.webp", ) return DocumentFactory( @@ -97,95 +50,17 @@ def sample_doc( ) -@pytest.fixture() -def _search_index( - tmp_path: Path, - settings: Settings, -) -> Generator[None, None, None]: - """Create a temp index directory and point INDEX_DIR at it. +@pytest.fixture +def _search_index(paperless_dirs: "PaperlessDirs") -> None: + """Point the search backend at a fresh, empty index directory. - Resets the backend singleton before and after so each test gets a clean - index rather than reusing a stale singleton from another test. + paperless_dirs owns INDEX_DIR and resets the backend singleton on both + sides of the test, so requesting it is all that is needed. """ - from documents.search import reset_backend - - index_dir = tmp_path / "index" - index_dir.mkdir() - settings.INDEX_DIR = index_dir - reset_backend() - yield - reset_backend() - - -@pytest.fixture() -def settings_timezone(settings: Settings) -> zoneinfo.ZoneInfo: - return zoneinfo.ZoneInfo(settings.TIME_ZONE) @pytest.fixture -def rest_api_client(): - """ - The basic DRF ApiClient - """ - yield APIClient() - - -@pytest.fixture() -def regular_user(django_user_model: type[UserModelT]) -> UserModelT: - """Unprivileged authenticated user for permission boundary tests.""" - return django_user_model.objects.create_user(username="regular", password="regular") - - -@pytest.fixture() -def admin_client(rest_api_client: APIClient, admin_user: UserModelT) -> APIClient: - """Admin client pre-authenticated and sending the v10 Accept header.""" - rest_api_client.force_authenticate(user=admin_user) - rest_api_client.credentials(HTTP_ACCEPT="application/json; version=10") - return rest_api_client - - -@pytest.fixture() -def v9_client(rest_api_client: APIClient, admin_user: UserModelT) -> APIClient: - """Admin client pre-authenticated and sending the v9 Accept header.""" - rest_api_client.force_authenticate(user=admin_user) - rest_api_client.credentials(HTTP_ACCEPT="application/json; version=9") - return rest_api_client - - -@pytest.fixture() -def user_client(rest_api_client: APIClient, regular_user: UserModelT) -> APIClient: - """Regular-user client pre-authenticated and sending the v10 Accept header.""" - rest_api_client.force_authenticate(user=regular_user) - rest_api_client.credentials(HTTP_ACCEPT="application/json; version=10") - return rest_api_client - - -@pytest.fixture(autouse=True) -def _clear_content_type_caches() -> None: - """Clear Django's ContentType cache and guardian's lru_cache before each test. - - Tests that delete and reinsert ContentType/Permission rows (e.g. the - importer) corrupt both caches. Without this fixture a subsequent test on - the same xdist worker sees stale ContentType objects and guardian raises - MixedContentTypeError. - """ - ContentType.objects.clear_cache() - clear_ct_cache() - - -@pytest.fixture(scope="session", autouse=True) -def faker_session_locale(): - """Set Faker locale for reproducibility.""" - return "en_US" - - -@pytest.fixture(scope="session", autouse=True) -def faker_seed(): - return 12345 - - -@pytest.fixture -def indexed_document(_search_index: None) -> "Document": +def searchable_document(_search_index: None) -> "Document": """One searchable document, for tests about what the search endpoint returns rather than about what it finds. """ diff --git a/src/documents/tests/helpers.py b/src/documents/tests/helpers.py new file mode 100644 index 000000000..e90b5fcf8 --- /dev/null +++ b/src/documents/tests/helpers.py @@ -0,0 +1,10 @@ +import re + + +def dummy_preprocess(content: str) -> str: + """ + Simpler, faster pre-processing for testing purposes + """ + content = content.lower().strip() + content = re.sub(r"\s+", " ", content) + return content diff --git a/src/documents/tests/management/test_management_sanity_checker.py b/src/documents/tests/management/test_management_sanity_checker.py index f0752ef10..99513c640 100644 --- a/src/documents/tests/management/test_management_sanity_checker.py +++ b/src/documents/tests/management/test_management_sanity_checker.py @@ -15,11 +15,11 @@ from rich.console import Console from documents.management.commands.document_sanity_checker import Command from documents.sanity_checker import SanityCheckMessages -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from documents.models import Document - from documents.tests.conftest import PaperlessDirs + from paperless_testing.dirs import PaperlessDirs def _render_to_string(messages: SanityCheckMessages) -> str: @@ -71,7 +71,7 @@ class TestRenderResultsWithIssues: assert "INFO" in output assert "No OCR data" in output - @pytest.mark.usefixtures("_media_settings") + @pytest.mark.usefixtures("paperless_dirs") def test_global_message(self) -> None: msgs = SanityCheckMessages() msgs.warning(None, "Orphaned file: /tmp/stray.pdf") @@ -87,7 +87,7 @@ class TestRenderResultsWithIssues: assert "Thumbnail missing" in output assert "Checksum mismatch" in output - @pytest.mark.usefixtures("_media_settings") + @pytest.mark.usefixtures("paperless_dirs") def test_unknown_doc_pk(self) -> None: msgs = SanityCheckMessages() msgs.error(99999, "Ghost document") @@ -184,7 +184,6 @@ class TestDocumentSanityCheckerCommand: assert "ERROR" in output assert "Original of document does not exist" in output - @pytest.mark.usefixtures("_media_settings") def test_checksum_mismatch(self, paperless_dirs: PaperlessDirs) -> None: """Lightweight document with zero-byte files triggers checksum mismatch.""" doc = DocumentFactory( diff --git a/src/documents/tests/samples/barcodes/barcode-qr-url.pdf b/src/documents/tests/samples/barcodes/barcode-qr-url.pdf new file mode 100644 index 000000000..0a6dd5af4 Binary files /dev/null and b/src/documents/tests/samples/barcodes/barcode-qr-url.pdf differ diff --git a/src/documents/tests/search/conftest.py b/src/documents/tests/search/conftest.py index 64dfcfe0c..11dcc0575 100644 --- a/src/documents/tests/search/conftest.py +++ b/src/documents/tests/search/conftest.py @@ -9,29 +9,21 @@ from documents.search._backend import TantivyBackend from documents.search._backend import reset_backend from documents.search._schema import build_schema from documents.search._tokenizer import register_tokenizers -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from collections.abc import Callable from collections.abc import Generator - from pathlib import Path from pytest_django.fixtures import Settings from documents.models import Document + from paperless_testing.dirs import PaperlessDirs @pytest.fixture -def index_dir(tmp_path: Path, settings: Settings) -> Path: - path = tmp_path / "index" - path.mkdir() - settings.INDEX_DIR = path - return path - - -@pytest.fixture -def backend() -> Generator[TantivyBackend, None, None]: - b = TantivyBackend() # path=None → in-memory index +def backend(paperless_dirs: PaperlessDirs) -> Generator[TantivyBackend, None, None]: + b = TantivyBackend(path=paperless_dirs.index_dir) b.open() try: yield b diff --git a/src/documents/tests/search/test_acceptance.py b/src/documents/tests/search/test_acceptance.py index 097fc28de..d5dc8cfb8 100644 --- a/src/documents/tests/search/test_acceptance.py +++ b/src/documents/tests/search/test_acceptance.py @@ -14,7 +14,6 @@ from typing import TYPE_CHECKING import pytest import time_machine -from django.contrib.auth.models import User from documents.models import CustomField from documents.models import CustomFieldInstance @@ -22,7 +21,8 @@ from documents.models import DocumentType from documents.models import Note from documents.models import StoragePath from documents.search._query import parse_user_query -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import UserFactory if TYPE_CHECKING: from collections.abc import Callable @@ -148,7 +148,7 @@ class TestJsonSubpaths: THEN: - Only the document with alice's note matches """ - alice = User.objects.create_user(username="alice") + alice = UserFactory(username="alice") doc_with_note = DocumentFactory( title="Has note", content="x", diff --git a/src/documents/tests/search/test_backend.py b/src/documents/tests/search/test_backend.py index 60b5d62da..d215e3ca7 100644 --- a/src/documents/tests/search/test_backend.py +++ b/src/documents/tests/search/test_backend.py @@ -3,10 +3,8 @@ from pathlib import Path import pytest from django.contrib.auth.models import Group -from django.contrib.auth.models import User from django.db import connection from django.test.utils import CaptureQueriesContext -from guardian.shortcuts import assign_perm from pytest_mock import MockerFixture from documents.models import CustomField @@ -19,11 +17,12 @@ from documents.search._backend import WriteBatch from documents.search._backend import get_backend from documents.search._backend import reset_backend from documents.signals.handlers import add_to_index -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_object pytestmark = [pytest.mark.search, pytest.mark.django_db] @@ -189,7 +188,7 @@ class TestAddOrUpdateIds: pk=1, owner=owner, ) - assign_perm("view_document", user, doc) + grant_object(user, doc, "view_document") with backend.batch_update() as batch: batch.add_or_update_ids([doc.pk]) @@ -209,7 +208,7 @@ class TestAddOrUpdateIds: pk=1, owner=owner, ) - assign_perm("view_document", group, doc) + grant_object(group, doc, "view_document") with backend.batch_update() as batch: batch.add_or_update_ids([doc.pk]) @@ -763,8 +762,8 @@ class TestSearchIds: def test_respects_permission_filter(self, backend: TantivyBackend) -> None: """search_ids must respect user permission filtering.""" - owner = User.objects.create_user("ids_owner") - other = User.objects.create_user("ids_other") + owner = UserFactory(username="ids_owner") + other = UserFactory(username="ids_other") doc = Document.objects.create( title="private doc", content="secret keyword", @@ -843,7 +842,7 @@ class TestRebuild: content="group secret keyword", owner=owner, ) - assign_perm("view_document", group, doc) + grant_object(group, doc, "view_document") backend.rebuild(Document.objects.all()) @@ -948,7 +947,8 @@ class TestSingleton: yield reset_backend() - def test_returns_same_instance_on_repeated_calls(self, index_dir) -> None: + @pytest.mark.usefixtures("paperless_dirs") + def test_returns_same_instance_on_repeated_calls(self) -> None: """Singleton pattern: repeated calls to get_backend() must return the same instance.""" assert get_backend() is get_backend() @@ -965,7 +965,8 @@ class TestSingleton: assert b1 is not b2 assert b2._path == tmp_path / "b" - def test_reset_forces_new_instance(self, index_dir) -> None: + @pytest.mark.usefixtures("paperless_dirs") + def test_reset_forces_new_instance(self) -> None: """reset_backend() must force creation of a new backend instance on next get_backend() call.""" b1 = get_backend() reset_backend() @@ -1071,7 +1072,7 @@ class TestFieldHandling: def test_notes_include_user_information(self, backend: TantivyBackend) -> None: """Notes must be indexed with user information when available for structured queries.""" - user = User.objects.create_user("notewriter") + user = UserFactory(username="notewriter") doc = Document.objects.create( title="Doc with notes", content="test", @@ -1173,7 +1174,7 @@ class TestHighlightHits: notes.note: prefix so the query targets notes content directly, but the snippet is generated from notes_text which stores the same text. """ - user = User.objects.create_user("hl_noteuser") + user = UserFactory(username="hl_noteuser") doc = Document.objects.create( title="Doc with matching note", content="unrelated content", diff --git a/src/documents/tests/search/test_barcode_search.py b/src/documents/tests/search/test_barcode_search.py new file mode 100644 index 000000000..3036ede04 --- /dev/null +++ b/src/documents/tests/search/test_barcode_search.py @@ -0,0 +1,95 @@ +"""Stored barcode contents in the search index. + +Barcodes are a JSON field like notes and custom fields: barcodes: resolves to +barcodes.value:, and a plain query without the prefix does not look at them. +""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +import pytest + +from documents.models import DocumentBarcode +from paperless_testing.factories import DocumentBarcodeFactory +from paperless_testing.factories import DocumentFactory + +if TYPE_CHECKING: + from collections.abc import Callable + + from documents.models import Document + from documents.search._backend import TantivyBackend + +pytestmark = [pytest.mark.search, pytest.mark.django_db] + + +class TestBarcodeSearch: + @pytest.fixture + def with_barcodes(self, backend: TantivyBackend) -> Document: + document = DocumentFactory(title="Letter", content="x") + DocumentBarcodeFactory( + document=document, + value="WIFI:T:WPA;S:Guest-WLAN;P:crocodile123;;", + ) + DocumentBarcodeFactory( + document=document, + page=2, + value="DE89370400440532013000", + format=DocumentBarcode.Format.CODE128, + ) + backend.add_or_update(document) + return document + + def test_bare_barcodes_prefix_searches_values( + self, + with_barcodes: Document, + index_document: Callable[..., Document], + matched_ids: Callable[[str], set[int]], + ) -> None: + """ + GIVEN: + - A document with stored barcodes, and a decoy document whose + content (not a barcode) contains the same word + WHEN: + - A bare "barcodes:" prefix query is run + THEN: + - Only the document whose barcode matches is returned, also for a + part of a barcode between separators + """ + index_document(title="Decoy", content="crocodile123 in the text") + + assert matched_ids("barcodes:crocodile123") == {with_barcodes.pk} + assert matched_ids("barcodes.value:DE89370400440532013000") == { + with_barcodes.pk, + } + + def test_barcodes_format_subpath( + self, + with_barcodes: Document, + matched_ids: Callable[[str], set[int]], + ) -> None: + """ + GIVEN: + - A document with a QR code and a Code 128 barcode + WHEN: + - The format subpath is queried + THEN: + - The document is found by its barcode formats + """ + assert matched_ids("barcodes.format:qrcode") == {with_barcodes.pk} + assert matched_ids("barcodes.format:aztec") == set() + + def test_plain_query_ignores_barcodes( + self, + with_barcodes: Document, + matched_ids: Callable[[str], set[int]], + ) -> None: + """ + GIVEN: + - A document with a barcode value not found in its text + WHEN: + - The value is searched without a field prefix + THEN: + - Nothing is found, as with notes and custom fields + """ + assert matched_ids("crocodile123") == set() diff --git a/src/documents/tests/search/test_documented_syntax.py b/src/documents/tests/search/test_documented_syntax.py index d00551c25..fbfdddfac 100644 --- a/src/documents/tests/search/test_documented_syntax.py +++ b/src/documents/tests/search/test_documented_syntax.py @@ -27,7 +27,7 @@ import time_machine from documents.models import Note from documents.models import Tag from documents.search._errors import InvalidDateQuery -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from collections.abc import Callable @@ -269,7 +269,7 @@ class TestDocumentedDateForms: yield @pytest.fixture - def dated(self, index_document: Callable[..., Document]) -> dict[str, int]: + def dated(self, backend: TantivyBackend) -> dict[str, int]: stamps = { "today": datetime(2026, 6, 15, 9, 0, tzinfo=UTC), "yesterday": datetime(2026, 6, 14, 9, 0, tzinfo=UTC), @@ -279,14 +279,14 @@ class TestDocumentedDateForms: "january": datetime(2026, 1, 10, 10, 0, tzinfo=UTC), "old": datetime(2005, 3, 4, 15, 30, tzinfo=UTC), } - return { - label: index_document( - title=label, - content="dated body", - added=stamp, - ).pk + docs = { + label: DocumentFactory(title=label, content="dated body", added=stamp) for label, stamp in stamps.items() } + with backend.batch_update() as batch: + for doc in docs.values(): + batch.add_or_update(doc) + return {label: doc.pk for label, doc in docs.items()} @pytest.mark.parametrize( ("query", "label"), diff --git a/src/documents/tests/search/test_highlight_query_guard.py b/src/documents/tests/search/test_highlight_query_guard.py index cf9e96378..ed61b8df9 100644 --- a/src/documents/tests/search/test_highlight_query_guard.py +++ b/src/documents/tests/search/test_highlight_query_guard.py @@ -29,7 +29,7 @@ from rest_framework import status from documents.search._backend import SearchMode from documents.search._query import parse_simple_text_highlight_query -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from rest_framework.test import APIClient diff --git a/src/documents/tests/search/test_json_field_prefixes.py b/src/documents/tests/search/test_json_field_prefixes.py index df737f39d..039be7bc1 100644 --- a/src/documents/tests/search/test_json_field_prefixes.py +++ b/src/documents/tests/search/test_json_field_prefixes.py @@ -17,12 +17,12 @@ from __future__ import annotations from typing import TYPE_CHECKING import pytest -from django.contrib.auth.models import User from documents.models import CustomField from documents.models import CustomFieldInstance from documents.models import Note -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import UserFactory if TYPE_CHECKING: from collections.abc import Callable @@ -53,7 +53,7 @@ class TestBareJsonFieldPrefixes: decoy's content match does not resurface through a demoted text search """ - alice = User.objects.create_user(username="alice") + alice = UserFactory(username="alice") with_note = DocumentFactory(title="Has note", content="x") Note.objects.create(document=with_note, user=alice, note="crocodile") backend.add_or_update(with_note) @@ -116,7 +116,7 @@ class TestBareJsonFieldPrefixes: document; the default-subpath resolution for the bare prefix does not interfere with explicit subpath addressing """ - bob = User.objects.create_user(username="bob") + bob = UserFactory(username="bob") doc = DocumentFactory(title="Bob note", content="x") Note.objects.create(document=doc, user=bob, note="remark") backend.add_or_update(doc) diff --git a/src/documents/tests/search/test_json_subpath_completeness.py b/src/documents/tests/search/test_json_subpath_completeness.py index a0245ca44..0422dc192 100644 --- a/src/documents/tests/search/test_json_subpath_completeness.py +++ b/src/documents/tests/search/test_json_subpath_completeness.py @@ -8,7 +8,7 @@ queryable-but-always-empty -- syntactically valid, silently matching nothing -- with no test failure anywhere. This indexes one real document carrying values for every JSON field -(a Note, a CustomFieldInstance) and inspects the document's own stored +(a Note, a CustomFieldInstance, a DocumentBarcode) and inspects the document's own stored JSON payload, rather than running field-specific queries: that way a future JSON field's subpaths are covered automatically, without a new per-subpath query having to be added by hand each time. @@ -20,7 +20,6 @@ from typing import TYPE_CHECKING import pytest import tantivy -from django.contrib.auth.models import User from whoosh_compat import FieldKind from documents.models import CustomField @@ -28,6 +27,8 @@ from documents.models import CustomFieldInstance from documents.models import Document from documents.models import Note from documents.search._fields import PUBLIC_FIELDS +from paperless_testing.factories import DocumentBarcodeFactory +from paperless_testing.factories import UserFactory if TYPE_CHECKING: from documents.search._backend import TantivyBackend @@ -42,14 +43,15 @@ class TestJsonSubpathsAreWrittenAtIndexTime: ) -> None: """ GIVEN: - - A document with a Note and a CustomFieldInstance attached + - A document with a Note, a CustomFieldInstance and a + DocumentBarcode attached WHEN: - The document is indexed via TantivyBackend.add_or_update THEN: - - Every subpath PUBLIC_FIELDS declares for notes/custom_fields + - Every subpath PUBLIC_FIELDS declares for notes/custom_fields/barcodes is present as a key in the document's stored JSON payload """ - user = User.objects.create_user(username="completeness-user") + user = UserFactory(username="completeness-user") field = CustomField.objects.create( name="Completeness Field", data_type=CustomField.FieldDataType.STRING, @@ -65,6 +67,7 @@ class TestJsonSubpathsAreWrittenAtIndexTime: field=field, value_text="a value", ) + DocumentBarcodeFactory(document=doc, value="a barcode") backend.add_or_update(doc) index = backend._index diff --git a/src/documents/tests/search/test_lock_backoff.py b/src/documents/tests/search/test_lock_backoff.py index 936bd7f2a..2af4696c1 100644 --- a/src/documents/tests/search/test_lock_backoff.py +++ b/src/documents/tests/search/test_lock_backoff.py @@ -15,7 +15,7 @@ from documents.search._backend import SearchIndexLockError from documents.search._backend import TantivyBackend from documents.tasks import index_document from documents.tasks import remove_document_from_index -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from collections.abc import Generator diff --git a/src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py b/src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py index df02e5efb..e2be0915f 100644 --- a/src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py +++ b/src/documents/tests/search/test_migration_fulltext_query_field_prefixes.py @@ -1,6 +1,6 @@ import pytest -from documents.tests.utils import TestMigrations +from paperless_testing.migrations import TestMigrations pytestmark = pytest.mark.search diff --git a/src/documents/tests/search/test_permission_field_isolation.py b/src/documents/tests/search/test_permission_field_isolation.py index bfafac484..be7c58d0c 100644 --- a/src/documents/tests/search/test_permission_field_isolation.py +++ b/src/documents/tests/search/test_permission_field_isolation.py @@ -18,13 +18,14 @@ from typing import TYPE_CHECKING import pytest from django.contrib.auth.models import Group from django.contrib.auth.models import User -from guardian.shortcuts import assign_perm from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType from documents.models import StoragePath from documents.models import Tag +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_object if TYPE_CHECKING: from documents.search._backend import TantivyBackend @@ -34,22 +35,22 @@ pytestmark = [pytest.mark.search, pytest.mark.django_db] @pytest.fixture def owner() -> User: - return User.objects.create_user(username="owner") + return UserFactory(username="owner") @pytest.fixture def stranger() -> User: - return User.objects.create_user(username="stranger") + return UserFactory(username="stranger") @pytest.fixture def viewer() -> User: - return User.objects.create_user(username="viewer") + return UserFactory(username="viewer") @pytest.fixture def group_member() -> User: - user = User.objects.create_user(username="group_member") + user = UserFactory(username="group_member") user.groups.add(Group.objects.create(name="accounting")) return user @@ -127,7 +128,7 @@ class TestPermissionFilteringOnIndexedDocuments: checksum="perm-shared-user", owner=owner, ) - assign_perm("view_document", viewer, doc) + grant_object(viewer, doc, "view_document") backend.add_or_update(doc) assert backend.search_ids("invoice", user=viewer) == [doc.pk] @@ -157,7 +158,7 @@ class TestPermissionFilteringOnIndexedDocuments: checksum="perm-shared-group", owner=owner, ) - assign_perm("view_document", group_member.groups.first(), doc) + grant_object(group_member.groups.first(), doc, "view_document") backend.add_or_update(doc) assert backend.search_ids("invoice", user=group_member) == [doc.pk] diff --git a/src/documents/tests/search/test_schema.py b/src/documents/tests/search/test_schema.py index 1d45d4445..81c081e83 100644 --- a/src/documents/tests/search/test_schema.py +++ b/src/documents/tests/search/test_schema.py @@ -13,11 +13,11 @@ from documents.search._schema import needs_rebuild from documents.search._schema import schema_fingerprint if TYPE_CHECKING: - from pathlib import Path - import tantivy from pytest_django.fixtures import Settings + from paperless_testing.dirs import PaperlessDirs + pytestmark = pytest.mark.search @@ -25,16 +25,19 @@ pytestmark = pytest.mark.search class TestNeedsRebuild: """needs_rebuild covers all sentinel-file states that require a full reindex.""" - def test_returns_true_when_settings_file_missing(self, index_dir: Path) -> None: - assert needs_rebuild(index_dir) is True + def test_returns_true_when_settings_file_missing( + self, + paperless_dirs: PaperlessDirs, + ) -> None: + assert needs_rebuild(paperless_dirs.index_dir) is True def test_returns_false_when_version_and_language_match( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: Settings, ) -> None: settings.SEARCH_LANGUAGE = "en" - (index_dir / ".index_settings.json").write_text( + (paperless_dirs.index_dir / ".index_settings.json").write_text( json.dumps( { "schema_version": SCHEMA_VERSION, @@ -43,51 +46,51 @@ class TestNeedsRebuild: }, ), ) - assert needs_rebuild(index_dir) is False + assert needs_rebuild(paperless_dirs.index_dir) is False def test_returns_true_on_schema_version_mismatch( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: Settings, ) -> None: settings.SEARCH_LANGUAGE = None - (index_dir / ".index_settings.json").write_text( + (paperless_dirs.index_dir / ".index_settings.json").write_text( json.dumps({"schema_version": SCHEMA_VERSION - 1, "language": None}), ) - assert needs_rebuild(index_dir) is True + assert needs_rebuild(paperless_dirs.index_dir) is True def test_returns_true_when_version_is_not_an_integer( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: Settings, ) -> None: settings.SEARCH_LANGUAGE = None - (index_dir / ".index_settings.json").write_text( + (paperless_dirs.index_dir / ".index_settings.json").write_text( json.dumps({"schema_version": "not-a-number", "language": None}), ) - assert needs_rebuild(index_dir) is True + assert needs_rebuild(paperless_dirs.index_dir) is True def test_returns_true_when_language_key_missing( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: Settings, ) -> None: settings.SEARCH_LANGUAGE = "en" - (index_dir / ".index_settings.json").write_text( + (paperless_dirs.index_dir / ".index_settings.json").write_text( json.dumps({"schema_version": SCHEMA_VERSION}), ) - assert needs_rebuild(index_dir) is True + assert needs_rebuild(paperless_dirs.index_dir) is True def test_returns_true_when_language_differs( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: Settings, ) -> None: settings.SEARCH_LANGUAGE = "de" - (index_dir / ".index_settings.json").write_text( + (paperless_dirs.index_dir / ".index_settings.json").write_text( json.dumps({"schema_version": SCHEMA_VERSION, "language": "en"}), ) - assert needs_rebuild(index_dir) is True + assert needs_rebuild(paperless_dirs.index_dir) is True def _schema_fields(schema: tantivy.Schema) -> dict[str, dict]: diff --git a/src/documents/tests/search/test_schema_fingerprint.py b/src/documents/tests/search/test_schema_fingerprint.py index 170448a96..972381d4a 100644 --- a/src/documents/tests/search/test_schema_fingerprint.py +++ b/src/documents/tests/search/test_schema_fingerprint.py @@ -35,6 +35,8 @@ if TYPE_CHECKING: from pytest_django.fixtures import SettingsWrapper + from paperless_testing.dirs import PaperlessDirs + pytestmark = pytest.mark.search # The on-disk field layout of a v2 index, pinned as data. Any edit here is an @@ -173,6 +175,14 @@ PINNED_DESCRIPTORS: tuple[FieldDescriptor, ...] = ( fast=False, tokenizer="paperless_text", ), + FieldDescriptor( + "barcodes", + "json", + stored=True, + indexed=True, + fast=False, + tokenizer="paperless_text", + ), FieldDescriptor( "title_sort", "text", @@ -469,7 +479,7 @@ def _fingerprint_of(descriptors: list[FieldDescriptor]) -> str: class TestNeedsRebuildOnFingerprint: def test_matching_fingerprint_does_not_rebuild( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: SettingsWrapper, ) -> None: """ @@ -482,13 +492,13 @@ class TestNeedsRebuildOnFingerprint: - It returns False """ settings.SEARCH_LANGUAGE = None - _sentinels(index_dir) + _sentinels(paperless_dirs.index_dir) - assert needs_rebuild(index_dir) is False + assert needs_rebuild(paperless_dirs.index_dir) is False def test_stale_fingerprint_rebuilds_despite_a_matching_version( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: SettingsWrapper, monkeypatch: pytest.MonkeyPatch, ) -> None: @@ -505,7 +515,7 @@ class TestNeedsRebuildOnFingerprint: every subsequent write would raise """ settings.SEARCH_LANGUAGE = None - _sentinels(index_dir) + _sentinels(paperless_dirs.index_dir) extended = [ *field_descriptors(), FieldDescriptor( @@ -519,11 +529,11 @@ class TestNeedsRebuildOnFingerprint: ] monkeypatch.setattr(_schema, "field_descriptors", lambda: extended) - assert needs_rebuild(index_dir) is True + assert needs_rebuild(paperless_dirs.index_dir) is True def test_reordered_schema_rebuilds( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: SettingsWrapper, monkeypatch: pytest.MonkeyPatch, ) -> None: @@ -538,16 +548,16 @@ class TestNeedsRebuildOnFingerprint: - It returns True """ settings.SEARCH_LANGUAGE = None - _sentinels(index_dir) + _sentinels(paperless_dirs.index_dir) reordered = field_descriptors() reordered[1], reordered[2] = reordered[2], reordered[1] monkeypatch.setattr(_schema, "field_descriptors", lambda: reordered) - assert needs_rebuild(index_dir) is True + assert needs_rebuild(paperless_dirs.index_dir) is True def test_missing_fingerprint_rebuilds( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: SettingsWrapper, ) -> None: """ @@ -561,15 +571,15 @@ class TestNeedsRebuildOnFingerprint: is rebuilt rather than trusted """ settings.SEARCH_LANGUAGE = None - (index_dir / ".index_settings.json").write_text( + (paperless_dirs.index_dir / ".index_settings.json").write_text( json.dumps({"schema_version": SCHEMA_VERSION, "language": None}), ) - assert needs_rebuild(index_dir) is True + assert needs_rebuild(paperless_dirs.index_dir) is True def test_written_sentinels_satisfy_the_check( self, - index_dir: Path, + paperless_dirs: PaperlessDirs, settings: SettingsWrapper, ) -> None: """ @@ -582,6 +592,6 @@ class TestNeedsRebuildOnFingerprint: - It returns False """ settings.SEARCH_LANGUAGE = "en" - _write_sentinels(index_dir) + _write_sentinels(paperless_dirs.index_dir) - assert needs_rebuild(index_dir) is False + assert needs_rebuild(paperless_dirs.index_dir) is False diff --git a/src/documents/tests/test_admin.py b/src/documents/tests/test_admin.py index 22899d2ae..6e018eba8 100644 --- a/src/documents/tests/test_admin.py +++ b/src/documents/tests/test_admin.py @@ -16,11 +16,11 @@ from documents.models import Document from documents.models import Tag from documents.search import get_backend from documents.search import reset_backend -from documents.tests.factories import DocumentFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory -from documents.tests.utils import DirectoriesMixin from paperless.admin import PaperlessUserAdmin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory @pytest.fixture diff --git a/src/documents/tests/test_api_app_config.py b/src/documents/tests/test_api_app_config.py index 8620c3ec3..f617e646a 100644 --- a/src/documents/tests/test_api_app_config.py +++ b/src/documents/tests/test_api_app_config.py @@ -3,7 +3,6 @@ from io import BytesIO from pathlib import Path from unittest.mock import patch -from django.contrib.auth.models import User from django.core.files.uploadedfile import SimpleUploadedFile from django.test import override_settings from PIL import Image @@ -11,10 +10,11 @@ from PIL.PngImagePlugin import PngInfo from rest_framework import status from rest_framework.test import APITestCase -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import read_streaming_response from paperless.models import ApplicationConfiguration from paperless.models import ColorConvertChoices +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.http import read_streaming_response class TestApiAppConfig(DirectoriesMixin, APITestCase): @@ -23,7 +23,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - user = User.objects.create_superuser(username="temp_admin") + user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=user) def test_api_get_config(self) -> None: @@ -74,6 +74,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase): "barcode_enable_tag": None, "barcode_tag_mapping": None, "barcode_tag_split": None, + "barcode_store_values": None, "remote_ocr_engine": None, "remote_ocr_api_key": None, "remote_ocr_endpoint": None, @@ -81,6 +82,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase): "ai_enabled": None, "llm_embedding_backend": None, "llm_embedding_model": None, + "llm_embedding_api_key": None, "llm_embedding_endpoint": None, "llm_embedding_chunk_size": None, "llm_context_size": None, @@ -267,7 +269,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase): THEN: - old app_logo file is deleted """ - admin = User.objects.create_superuser(username="admin") + admin = UserFactory(username="admin", superuser=True) self.client.force_login(user=admin) response = self.client.get("/logo/") self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) @@ -922,6 +924,49 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) self.assertEqual(ApplicationConfiguration.objects.count(), 1) + def test_update_llm_embedding_api_key(self) -> None: + """ + GIVEN: + - Existing config with llm_embedding_api_key specified + WHEN: + - API to update llm_embedding_api_key is called with all *s + - API to update llm_embedding_api_key is called with empty string + THEN: + - llm_embedding_api_key is unchanged + - llm_embedding_api_key is set to None + """ + config = ApplicationConfiguration.objects.first() + assert config is not None + config.llm_embedding_api_key = "1234567890" + config.save() + + # Test with all * + response = self.client.patch( + f"{self.ENDPOINT}1/", + json.dumps( + { + "llm_embedding_api_key": "*" * 32, + }, + ), + content_type="application/json", + ) + self.assertEqual(response.status_code, status.HTTP_200_OK) + config.refresh_from_db() + self.assertEqual(config.llm_embedding_api_key, "1234567890") + # Test with empty string + response = self.client.patch( + f"{self.ENDPOINT}1/", + json.dumps( + { + "llm_embedding_api_key": "", + }, + ), + content_type="application/json", + ) + self.assertEqual(response.status_code, status.HTTP_200_OK) + config.refresh_from_db() + self.assertEqual(config.llm_embedding_api_key, None) + def test_update_llm_api_key(self) -> None: """ GIVEN: diff --git a/src/documents/tests/test_api_bulk_download.py b/src/documents/tests/test_api_bulk_download.py index b4f243005..b031a5105 100644 --- a/src/documents/tests/test_api_bulk_download.py +++ b/src/documents/tests/test_api_bulk_download.py @@ -4,8 +4,6 @@ import json import shutil import zipfile -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 rest_framework import status @@ -14,9 +12,11 @@ from rest_framework.test import APITestCase from documents.models import Correspondent from documents.models import Document from documents.models import DocumentType -from documents.tests.utils import DirectoriesMixin from documents.tests.utils import SampleDirMixin -from documents.tests.utils import read_streaming_response +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.http import read_streaming_response +from paperless_testing.permissions import grant_global class TestBulkDownload(DirectoriesMixin, SampleDirMixin, APITestCase): @@ -25,7 +25,7 @@ class TestBulkDownload(DirectoriesMixin, SampleDirMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) self.doc1 = Document.objects.create(title="unrelated", checksum="A") @@ -166,7 +166,15 @@ class TestBulkDownload(DirectoriesMixin, SampleDirMixin, APITestCase): ), content_type="application/json", ) - response.close() + + self.assertEqual(response.status_code, status.HTTP_200_OK) + self.assertEqual(response["Content-Type"], "application/zip") + + with zipfile.ZipFile(io.BytesIO(read_streaming_response(response))) as zipf: + self.assertEqual(zipf.infolist()[0].compress_type, zipfile.ZIP_LZMA) + + with self.doc2.source_file as f: + self.assertEqual(f.read(), zipf.read("2021-01-01 document A.pdf")) @override_settings(FILENAME_FORMAT="{correspondent}/{title}") def test_formatted_download_originals(self) -> None: @@ -326,10 +334,8 @@ class TestBulkDownload(DirectoriesMixin, SampleDirMixin, APITestCase): ) def test_download_insufficient_permissions(self) -> None: - user = User.objects.create_user(username="temp_user") - user.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + user = UserFactory(username="temp_user") + grant_global(user, "view_document") self.client.force_authenticate(user=user) self.doc2.owner = self.user diff --git a/src/documents/tests/test_api_bulk_edit.py b/src/documents/tests/test_api_bulk_edit.py index 0657a98cc..9c7ba3db8 100644 --- a/src/documents/tests/test_api_bulk_edit.py +++ b/src/documents/tests/test_api_bulk_edit.py @@ -2,27 +2,30 @@ import json from unittest import mock from auditlog.models import LogEntry -from django.contrib.auth.models import Permission from django.contrib.auth.models import User from django.test import override_settings -from guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APITestCase from documents.models import Correspondent from documents.models import CustomField +from documents.models import CustomFieldInstance from documents.models import Document from documents.models import DocumentType from documents.models import StoragePath from documents.models import Tag -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_all_global +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object class TestBulkEditAPI(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - user = User.objects.create_superuser(username="temp_admin") + user = UserFactory(username="temp_admin", superuser=True) self.user = user self.client.force_authenticate(user=user) @@ -284,9 +287,9 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): m, ) -> None: self.setup_mock(m, "modify_custom_fields") - user = User.objects.create_user(username="doc-owner") - user.user_permissions.add(Permission.objects.get(codename="change_document")) - other_user = User.objects.create_user(username="other-user") + user = UserFactory(username="doc-owner") + grant_global(user, "change_document") + other_user = UserFactory(username="other-user") source_doc = Document.objects.create( checksum="source", title="Source", @@ -787,10 +790,8 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): @mock.patch("documents.serialisers.bulk_edit.set_storage_path") def test_api_bulk_edit_with_all_true_resolves_owned_duplicates(self, m) -> None: self.setup_mock(m, "set_storage_path") - user = User.objects.create_user(username="duplicate-owner") - user.user_permissions.add( - Permission.objects.get(codename="change_document"), - ) + user = UserFactory(username="duplicate-owner") + grant_global(user, "change_document") first_duplicate = Document.objects.create( checksum="owned-duplicate", title="First duplicate", @@ -1178,7 +1179,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): user1 = User.objects.create(username="user1") self.client.force_authenticate(user=user1) - assign_perm("view_document", user1, self.doc2) + grant_object(user1, self.doc2, "view_document") response = self.client.post( "/api/documents/selection_data/", @@ -1188,9 +1189,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) - user1.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_global(user1, "view_document") user1 = User.objects.get(pk=user1.pk) self.client.force_authenticate(user=user1) response = self.client.post( @@ -1533,7 +1532,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.doc1.owner = User.objects.get(username="temp_admin") self.doc1.save() user1 = User.objects.create(username="user1") - user1.user_permissions.add(*Permission.objects.all()) + grant_all_global(user1) user1.save() self.client.force_authenticate(user=user1) @@ -1587,8 +1586,8 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.doc1.owner = User.objects.get(username="temp_admin") self.doc1.save() user1 = User.objects.create(username="user1") - assign_perm("view_document", user1, self.doc1) - user1.user_permissions.add(*Permission.objects.all()) + grant_object(user1, self.doc1, "view_document") + grant_all_global(user1) user1.save() self.client.force_authenticate(user=user1) @@ -1609,7 +1608,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): m.assert_not_called() self.assertEqual(response.content, b"Insufficient permissions") - assign_perm("change_document", user1, self.doc1) + grant_object(user1, self.doc1, "change_document") response = self.client.post( "/api/documents/bulk_edit/", @@ -1786,6 +1785,36 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.assertIn(b"invalid pages specified", response.content) m.assert_not_called() + @mock.patch("documents.serialisers.bulk_edit.split") + def test_bulk_edit_split_rejects_unknown_page_count(self, m) -> None: + """ + GIVEN: + - A legacy split bulk edit of a document without a page count + WHEN: + - API to bulk edit is called + THEN: + - API returns HTTP 400 + - split is not called + """ + self.setup_mock(m, "split") + + for pages in ("1", "1-5000000"): + with self.subTest(pages=pages): + response = self.client.post( + "/api/documents/bulk_edit/", + json.dumps( + { + "documents": [self.doc1.id], + "method": "split", + "parameters": {"pages": pages}, + }, + ), + content_type="application/json", + ) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertIn(b"document page count is unknown", response.content) + m.assert_not_called() + @mock.patch("documents.serialisers.bulk_edit.split") def test_bulk_edit_split_parses_pages(self, m) -> None: """ @@ -1819,7 +1848,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.doc1.owner = User.objects.get(username="temp_admin") self.doc1.save() user1 = User.objects.create(username="user1") - user1.user_permissions.add(*Permission.objects.all()) + grant_all_global(user1) user1.save() self.client.force_authenticate(user=user1) @@ -1880,7 +1909,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.doc1.owner = User.objects.get(username="temp_admin") self.doc1.save() user1 = User.objects.create(username="user1") - user1.user_permissions.add(*Permission.objects.all()) + grant_all_global(user1) user1.save() self.client.force_authenticate(user=user1) @@ -1919,11 +1948,8 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): @mock.patch("documents.views.bulk_edit.merge") def test_merge_and_delete_requires_change_permission(self, m) -> None: self.setup_mock(m, "merge") - user = User.objects.create_user(username="no-change") - user.user_permissions.add( - Permission.objects.get(codename="add_document"), - Permission.objects.get(codename="delete_document"), - ) + user = UserFactory(username="no-change") + grant_global(user, "add_document", "delete_document") self.client.force_authenticate(user=user) response = self.client.post( @@ -2310,7 +2336,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.doc1.owner = User.objects.get(username="temp_admin") self.doc1.save() user1 = User.objects.create(username="user1") - user1.user_permissions.add(*Permission.objects.all()) + grant_all_global(user1) user1.save() self.client.force_authenticate(user=user1) @@ -2345,7 +2371,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): @mock.patch("documents.views.bulk_edit.edit_pdf") def test_edit_pdf_update_requires_change_permission(self, m) -> None: self.setup_mock(m, "edit_pdf") - user = User.objects.create_user(username="no-change") + user = UserFactory(username="no-change") self.client.force_authenticate(user=user) response = self.client.post( @@ -2372,11 +2398,8 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): ) -> None: self.setup_mock(edit_pdf_mock, "edit_pdf") self.setup_mock(remove_password_mock, "remove_password") - user = User.objects.create_user(username="no-delete") - user.user_permissions.add( - Permission.objects.get(codename="add_document"), - Permission.objects.get(codename="change_document"), - ) + user = UserFactory(username="no-delete") + grant_global(user, "add_document", "change_document") self.client.force_authenticate(user=user) cases = [ @@ -2463,7 +2486,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): self.doc1.owner = User.objects.get(username="temp_admin") self.doc1.save() user1 = User.objects.create(username="user1") - user1.user_permissions.add(*Permission.objects.all()) + grant_all_global(user1) user1.save() self.client.force_authenticate(user=user1) @@ -2503,7 +2526,7 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): WHEN: - API to bulk edit documents is called THEN: - - Audit log is created + - Audit log is created with the old and new correspondent """ LogEntry.objects.all().delete() response = self.client.post( @@ -2519,7 +2542,8 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(LogEntry.objects.filter(object_pk=self.doc1.id).count(), 1) + entry = LogEntry.objects.get_for_object(self.doc1).get() + self.assertEqual(entry.changes, {"correspondent": [None, self.c2.id]}) @override_settings(AUDIT_LOG_ENABLED=True) def test_bulk_edit_audit_log_enabled_tags(self) -> None: @@ -2527,16 +2551,18 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): GIVEN: - Audit log is enabled WHEN: - - API to bulk edit tags is called + - API to bulk edit tags is called on an untagged document and a + document with several tags THEN: - - Audit log is created + - Audit log is created for each document with its full tag list + before and after the edit """ LogEntry.objects.all().delete() response = self.client.post( "/api/documents/bulk_edit/", json.dumps( { - "documents": [self.doc1.id], + "documents": [self.doc1.id, self.doc4.id], "method": "modify_tags", "parameters": { "add_tags": [self.t1.id], @@ -2548,18 +2574,32 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(LogEntry.objects.filter(object_pk=self.doc1.id).count(), 1) + entry = LogEntry.objects.get_for_object(self.doc1).get() + self.assertEqual(entry.changes, {"tags": [[], [self.t1.id]]}) + entry = LogEntry.objects.get_for_object(self.doc4).get() + self.assertEqual( + entry.changes, + {"tags": [[self.t1.id, self.t2.id], [self.t1.id]]}, + ) @override_settings(AUDIT_LOG_ENABLED=True) def test_bulk_edit_audit_log_enabled_custom_fields(self) -> None: """ GIVEN: - Audit log is enabled + - A document with two custom fields WHEN: - - API to bulk edit custom fields is called + - API to bulk edit custom fields is called to add a third THEN: - - Audit log is created + - Audit log is created with every custom field instance before and + after the edit + - Audit log is created for the new custom field instance """ + cf3 = CustomField.objects.create(name="cf3", data_type="string") + existing = [ + CustomFieldInstance.objects.create(document=self.doc1, field=field) + for field in (self.cf2, cf3) + ] LogEntry.objects.all().delete() response = self.client.post( "/api/documents/bulk_edit/", @@ -2577,7 +2617,14 @@ class TestBulkEditAPI(DirectoriesMixin, APITestCase): ) self.assertEqual(response.status_code, status.HTTP_200_OK) - self.assertEqual(LogEntry.objects.filter(object_pk=self.doc1.id).count(), 2) + added = CustomFieldInstance.objects.get(document=self.doc1, field=self.cf1) + existing_ids = [instance.id for instance in existing] + entry = LogEntry.objects.get_for_object(self.doc1).get() + self.assertEqual( + entry.changes, + {"custom_fields": [existing_ids, [*existing_ids, added.id]]}, + ) + self.assertEqual(LogEntry.objects.get_for_object(added).count(), 1) def test_api_bulk_edit_with_bad_search_query_returns_400(self) -> None: """ diff --git a/src/documents/tests/test_api_chat.py b/src/documents/tests/test_api_chat.py index 8098febfa..f19c4aa43 100644 --- a/src/documents/tests/test_api_chat.py +++ b/src/documents/tests/test_api_chat.py @@ -4,20 +4,22 @@ from typing import TYPE_CHECKING from unittest import mock import pytest -from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from rest_framework import status from rest_framework.test import APIClient from rest_framework.test import APITestCase +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global + if TYPE_CHECKING: + from django.contrib.auth.models import User from pytest_mock import MockerFixture class TestChatStreamingViewInputValidation(APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) def _mock_ai_enabled(self) -> mock.MagicMock: @@ -113,9 +115,7 @@ class TestChatStreamingViewUnrestrictedFlag: needs to reach the view at all. Model-level only: says nothing about which documents (if any) this user can actually see. """ - regular_user.user_permissions.add( - *Permission.objects.filter(codename="view_document"), - ) + grant_global(regular_user, "view_document") return user_client @pytest.mark.parametrize( diff --git a/src/documents/tests/test_api_custom_fields.py b/src/documents/tests/test_api_custom_fields.py index 8ad69dd0d..a1823c501 100644 --- a/src/documents/tests/test_api_custom_fields.py +++ b/src/documents/tests/test_api_custom_fields.py @@ -4,23 +4,24 @@ from unittest import mock from unittest.mock import ANY from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from django.test import override_settings -from guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APITestCase from documents.models import CustomField from documents.models import CustomFieldInstance from documents.models import Document -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object class TestCustomFieldsAPI(DirectoriesMixin, APITestCase): ENDPOINT = "/api/custom_fields/" def setUp(self) -> None: - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) return super().setUp() @@ -1174,11 +1175,9 @@ class TestCustomFieldsAPI(DirectoriesMixin, APITestCase): def test_documentlink_patch_requires_change_permission_on_target_documents( self, ) -> None: - source_owner = User.objects.create_user(username="source-owner") - source_owner.user_permissions.add( - Permission.objects.get(codename="change_document"), - ) - other_user = User.objects.create_user(username="other-user") + source_owner = UserFactory(username="source-owner") + grant_global(source_owner, "change_document") + other_user = UserFactory(username="other-user") source_doc = Document.objects.create( title="Source", @@ -1221,11 +1220,9 @@ class TestCustomFieldsAPI(DirectoriesMixin, APITestCase): def test_documentlink_patch_allowed_with_change_permission_on_target_documents( self, ) -> None: - source_owner = User.objects.create_user(username="source-owner") - source_owner.user_permissions.add( - Permission.objects.get(codename="change_document"), - ) - other_user = User.objects.create_user(username="other-user") + source_owner = UserFactory(username="source-owner") + grant_global(source_owner, "change_document") + other_user = UserFactory(username="other-user") source_doc = Document.objects.create( title="Source", @@ -1244,7 +1241,7 @@ class TestCustomFieldsAPI(DirectoriesMixin, APITestCase): data_type=CustomField.FieldDataType.DOCUMENTLINK, ) - assign_perm("change_document", source_owner, target_doc) + grant_object(source_owner, target_doc, "change_document") self.client.force_authenticate(user=source_owner) resp = self.client.patch( @@ -1337,7 +1334,7 @@ class TestCustomFieldsAPI(DirectoriesMixin, APITestCase): self.assertEqual(results[0]["document_count"], 1) # Test as user without access to the document - non_superuser = User.objects.create_user(username="non_superuser") + non_superuser = UserFactory(username="non_superuser") non_superuser.user_permissions.add( *Permission.objects.exclude(codename="view_global_statistics"), ) diff --git a/src/documents/tests/test_api_document_versions.py b/src/documents/tests/test_api_document_versions.py index f8edd8815..6fce8fa49 100644 --- a/src/documents/tests/test_api_document_versions.py +++ b/src/documents/tests/test_api_document_versions.py @@ -5,8 +5,6 @@ from typing import TYPE_CHECKING from unittest import mock from auditlog.models import LogEntry # type: ignore[import-untyped] -from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType from django.core.files.uploadedfile import SimpleUploadedFile from django.test import TestCase as DjangoTestCase @@ -18,10 +16,13 @@ from documents.data_models import DocumentSource from documents.filters import EffectiveContentFilter from documents.filters import TitleContentFilter from documents.models import Document -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import read_streaming_response from documents.versioning import annotate_effective_content from documents.views import DocumentSelectionMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import UserFactory +from paperless_testing.http import read_streaming_response +from paperless_testing.permissions import grant_global if TYPE_CHECKING: from pathlib import Path @@ -31,7 +32,7 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) def _make_pdf_upload(self, name: str = "version.pdf") -> SimpleUploadedFile: @@ -89,11 +90,9 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): self.assertEqual(resp.status_code, status.HTTP_404_NOT_FOUND) def test_root_endpoint_returns_403_when_user_lacks_permission(self) -> None: - owner = User.objects.create_user(username="owner") - viewer = User.objects.create_user(username="viewer") - viewer.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + owner = UserFactory(username="owner") + viewer = UserFactory(username="viewer") + grant_global(viewer, "view_document") root = Document.objects.create( title="root", checksum="root", @@ -283,11 +282,9 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): self.assertEqual(mock_backend.add_or_update.call_args[0][0].id, root.id) def test_delete_version_returns_403_without_permission(self) -> None: - owner = User.objects.create_user(username="owner") - other = User.objects.create_user(username="other") - other.user_permissions.add( - Permission.objects.get(codename="delete_document"), - ) + owner = UserFactory(username="owner") + other = UserFactory(username="other") + grant_global(other, "delete_document") root = Document.objects.create( title="root", checksum="root", @@ -371,11 +368,9 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): self.assertTrue(resp.data["is_root"]) def test_update_version_label_returns_403_without_permission(self) -> None: - owner = User.objects.create_user(username="owner") - other = User.objects.create_user(username="other") - other.user_permissions.add( - Permission.objects.get(codename="change_document"), - ) + owner = UserFactory(username="owner") + other = UserFactory(username="other") + grant_global(other, "change_document") root = Document.objects.create( title="root", checksum="root", @@ -553,11 +548,9 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): self.assertEqual(resp.status_code, status.HTTP_404_NOT_FOUND) def test_metadata_returns_403_when_user_lacks_permission(self) -> None: - owner = User.objects.create_user(username="owner") - other = User.objects.create_user(username="other") - other.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + owner = UserFactory(username="owner") + other = UserFactory(username="other") + grant_global(other, "view_document") doc = Document.objects.create( title="root", checksum="root", @@ -653,8 +646,8 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): self.assertEqual(resp.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR) def test_update_version_returns_403_without_permission(self) -> None: - owner = User.objects.create_user(username="owner") - other = User.objects.create_user(username="other") + owner = UserFactory(username="owner") + other = UserFactory(username="other") root = Document.objects.create( title="root", checksum="root", @@ -672,8 +665,8 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): self.assertEqual(resp.status_code, status.HTTP_403_FORBIDDEN) def test_update_version_requires_global_change_permission(self) -> None: - user = User.objects.create_user(username="add-only") - user.user_permissions.add(Permission.objects.get(codename="add_document")) + user = UserFactory(username="add-only") + grant_global(user, "add_document") root = Document.objects.create( title="root", checksum="root", @@ -829,6 +822,26 @@ class TestDocumentVersioningApi(DirectoriesMixin, APITestCase): self.assertEqual(resp.status_code, status.HTTP_200_OK) self.assertEqual(resp.data["content"], "v1-content") + def test_page_count_resolves_to_latest_version(self) -> None: + root = DocumentFactory(page_count=2) + DocumentFactory(root_document=root, version_index=1, page_count=1) + unversioned = DocumentFactory(page_count=5) + + resp = self.client.get("/api/documents/?fields=id,page_count") + self.assertEqual(resp.status_code, status.HTTP_200_OK) + self.assertEqual( + {doc["id"]: doc["page_count"] for doc in resp.data["results"]}, + {root.id: 1, unversioned.id: 5}, + ) + + resp = self.client.get(f"/api/documents/{root.id}/") + self.assertEqual(resp.status_code, status.HTTP_200_OK) + self.assertEqual(resp.data["page_count"], 1) + + resp = self.client.get(f"/api/documents/{root.id}/?version={root.id}") + self.assertEqual(resp.status_code, status.HTTP_200_OK) + self.assertEqual(resp.data["page_count"], 2) + def _make_root_with_out_of_order_versions(self) -> tuple[Document, ...]: """ A root whose newest version has a *lower* id than an older one, which is @@ -978,7 +991,7 @@ class TestVersionAwareFilters(DjangoTestCase): superseded content -- selecting documents the list view, filtered by the same term, does not show. """ - user = User.objects.create_superuser(username="bulk_selection") + user = UserFactory(username="bulk_selection", superuser=True) selected = DocumentSelectionMixin()._resolve_document_ids( user=user, @@ -1005,7 +1018,7 @@ class TestBulkSelectionExcludesVersions(DjangoTestCase): "Select all matching" reconstructs the document list, which never contains version documents as rows of their own. """ - user = User.objects.create_superuser(username="bulk_versions") + user = UserFactory(username="bulk_versions", superuser=True) root = Document.objects.create( title="shared-title root", checksum="bulk-root", diff --git a/src/documents/tests/test_api_documents.py b/src/documents/tests/test_api_documents.py index adee77b64..defba88d3 100644 --- a/src/documents/tests/test_api_documents.py +++ b/src/documents/tests/test_api_documents.py @@ -23,7 +23,6 @@ from django.core.files.uploadedfile import SimpleUploadedFile from django.db import DataError from django.test import override_settings from django.utils import timezone -from guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APITestCase @@ -48,18 +47,22 @@ from documents.models import Workflow from documents.models import WorkflowAction from documents.models import WorkflowTrigger from documents.signals.handlers import run_workflows -from documents.tests.factories import DocumentFactory -from documents.tests.factories import TagFactory from documents.tests.utils import ConsumeTaskMixin -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import read_streaming_response +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory +from paperless_testing.http import read_streaming_response +from paperless_testing.permissions import grant_all_global +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) cache.clear() @@ -357,10 +360,10 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): with Path(filename).open("wb") as f: f.write(content) - user1 = User.objects.create_user(username="test1") - user2 = User.objects.create_user(username="test2") - user1.user_permissions.add(*Permission.objects.filter(codename="view_document")) - user2.user_permissions.add(*Permission.objects.filter(codename="view_document")) + user1 = UserFactory(username="test1") + user2 = UserFactory(username="test2") + grant_global(user1, "view_document") + grant_global(user2, "view_document") self.client.force_authenticate(user2) @@ -383,7 +386,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): response = self.client.get(f"/api/documents/{doc.pk}/thumb/") self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) - assign_perm("view_document", user2, doc) + grant_object(user2, doc, "view_document") response = self.client.get(f"/api/documents/{doc.pk}/download/") self.assertEqual(response.status_code, status.HTTP_200_OK) @@ -760,8 +763,8 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): - History is returned """ # No auditlog permissions - user = User.objects.create_user(username="test") - user.user_permissions.add(*Permission.objects.filter(codename="view_document")) + user = UserFactory(username="test") + grant_global(user, "view_document") self.client.force_authenticate(user=user) doc = Document.objects.create( title="First title", @@ -776,7 +779,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): # superuser user.is_superuser = True user.save() - user2 = User.objects.create_user(username="test2") + user2 = UserFactory(username="test2") doc2 = Document.objects.create( title="Second title", checksum="456", @@ -1073,11 +1076,9 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): self.assertEqual(response.data["duplicate_documents"], []) def test_has_duplicates_filter_respects_document_permissions(self) -> None: - owner = User.objects.create_user(username="duplicate-owner") - requester = User.objects.create_user(username="duplicate-requester") - requester.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + owner = UserFactory(username="duplicate-owner") + requester = UserFactory(username="duplicate-requester") + grant_global(requester, "view_document") visible_document = Document.objects.create( title="visible document", checksum="permission-match", @@ -1096,7 +1097,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): [document["id"] for document in response.data["results"]], ) - assign_perm("view_document", requester, hidden_duplicate) + grant_object(requester, hidden_duplicate, "view_document") response = self.client.get("/api/documents/?has_duplicates=true") self.assertIn( visible_document.id, @@ -1317,10 +1318,10 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - Owner filters work correctly but still respect permissions """ - u1 = User.objects.create_user("user1") - u2 = User.objects.create_user("user2") - u1.user_permissions.add(*Permission.objects.filter(codename="view_document")) - u2.user_permissions.add(*Permission.objects.filter(codename="view_document")) + u1 = UserFactory(username="user1") + u2 = UserFactory(username="user2") + grant_global(u1, "view_document") + grant_global(u2, "view_document") u1_doc1 = Document.objects.create( title="none1", @@ -1353,7 +1354,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): ) self.client.force_authenticate(user=u1) - assign_perm("view_document", u1, u2_doc2) + grant_object(u1, u2_doc2, "view_document") # Will not show any u1 docs or u2_doc1 which isn't shared response = self.client.get(f"/api/documents/?owner__id__none={u1.id}") @@ -1400,7 +1401,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): [u1_doc1.id, u1_doc2.id, u2_doc2.id], ) - assign_perm("view_document", u2, u1_doc1) + grant_object(u2, u1_doc1, "view_document") # Will show only documents shared by user response = self.client.get(f"/api/documents/?shared_by__id={u1.id}") @@ -1424,8 +1425,8 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): - The document is returned exactly once, not once per permission path (regression test for https://github.com/paperless-ngx/paperless-ngx/issues/13331) """ - user = User.objects.create_user("user1") - user.user_permissions.add(*Permission.objects.filter(codename="view_document")) + user = UserFactory(username="user1") + grant_global(user, "view_document") group = Group.objects.create(name="group1") user.groups.add(group) @@ -1433,7 +1434,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): tag2 = TagFactory() doc = DocumentFactory(title="shared", owner=user) doc.tags.add(tag1, tag2) - assign_perm("view_document", group, doc) + grant_object(group, doc, "view_document") self.client.force_authenticate(user=user) response = self.client.get( @@ -1452,11 +1453,9 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - The document does not appear in their results """ - owner = User.objects.create_user("owner1") - stranger = User.objects.create_user("stranger1") - stranger.user_permissions.add( - *Permission.objects.filter(codename="view_document"), - ) + owner = UserFactory(username="owner1") + stranger = UserFactory(username="stranger1") + grant_global(stranger, "view_document") DocumentFactory(title="private", owner=owner) @@ -1474,17 +1473,17 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - Only the group member sees the document """ - owner = User.objects.create_user("owner2") - member = User.objects.create_user("member1") - non_member = User.objects.create_user("nonmember1") + owner = UserFactory(username="owner2") + member = UserFactory(username="member1") + non_member = UserFactory(username="nonmember1") for u in (member, non_member): - u.user_permissions.add(*Permission.objects.filter(codename="view_document")) + grant_global(u, "view_document") group = Group.objects.create(name="group2") member.groups.add(group) doc = DocumentFactory(title="shared2", owner=owner) - assign_perm("view_document", group, doc) + grant_object(group, doc, "view_document") self.client.force_authenticate(user=member) response = self.client.get("/api/documents/") @@ -1785,8 +1784,8 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - Statistics only include inbox counts for tags accessible by the user """ - u1 = User.objects.create_user("user1") - u2 = User.objects.create_user("user2") + u1 = UserFactory(username="user1") + u2 = UserFactory(username="user2") inbox_tag_u1 = Tag.objects.create(name="inbox_u1", is_inbox_tag=True, owner=u1) Tag.objects.create(name="inbox_u2", is_inbox_tag=True, owner=u2) doc_u1 = Document.objects.create( @@ -1816,11 +1815,9 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): self.assertEqual(response.data["documents_inbox"], 0) def test_statistics_with_statistics_permission(self) -> None: - owner = User.objects.create_user("owner") - stats_user = User.objects.create_user("stats-user") - stats_user.user_permissions.add( - Permission.objects.get(codename="view_global_statistics"), - ) + owner = UserFactory(username="owner") + stats_user = UserFactory(username="stats-user") + grant_global(stats_user, "view_global_statistics") inbox_tag = Tag.objects.create( name="stats_inbox", @@ -1986,7 +1983,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_405_METHOD_NOT_ALLOWED) def test_upload_insufficient_permissions(self) -> None: - self.client.force_authenticate(user=User.objects.create_user("testuser2")) + self.client.force_authenticate(user=UserFactory(username="testuser2")) with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f: response = self.client.post( @@ -2782,9 +2779,9 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): mock_get_date_parser.assert_not_called() def test_saved_views(self) -> None: - u1 = User.objects.create_user("user1") - u2 = User.objects.create_user("user2") - u3 = User.objects.create_user("user3") + u1 = UserFactory(username="user1") + u2 = UserFactory(username="user2") + u3 = UserFactory(username="user3") view_perm = Permission.objects.get(codename="view_savedview") change_perm = Permission.objects.get(codename="change_savedview") @@ -2807,9 +2804,9 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): sort_field="", ) - assign_perm("view_savedview", u1, v2) - assign_perm("change_savedview", u1, v2) - assign_perm("view_savedview", u1, v3) + grant_object(u1, v2, "view_savedview") + grant_object(u1, v2, "change_savedview") + grant_object(u1, v3, "view_savedview") self.client.force_authenticate(user=u1) @@ -3064,7 +3061,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): self.assertListEqual(saved_view_settings["sidebar_views_visible_ids"], [v2.id]) def test_saved_view_create_update_patch(self) -> None: - User.objects.create_user("user1") + UserFactory(username="user1") view = { "name": "test", @@ -3127,7 +3124,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): - Display options are updated - Display fields are validated """ - User.objects.create_user("user1") + UserFactory(username="user1") view = { "name": "test", @@ -3568,11 +3565,11 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - Notes are neither created nor deleted """ - user1 = User.objects.create_user(username="test1") - user1.user_permissions.add(*Permission.objects.all()) + user1 = UserFactory(username="test1") + grant_all_global(user1) user1.save() - user2 = User.objects.create_user(username="test2") + user2 = UserFactory(username="test2") user2.save() doc = Document.objects.create( @@ -3592,7 +3589,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): self.assertEqual(resp.content, b"Insufficient permissions to view notes") self.assertEqual(resp.status_code, status.HTTP_403_FORBIDDEN) - assign_perm("view_document", user1, doc) + grant_object(user1, doc, "view_document") resp = self.client.post( f"/api/documents/{doc.pk}/notes/", @@ -3616,12 +3613,8 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) def test_notes_require_global_document_permissions(self) -> None: - user = User.objects.create_user(username="note_editor") - user.user_permissions.add( - *Permission.objects.filter( - codename__in=["view_note", "add_note", "delete_note"], - ), - ) + user = UserFactory(username="note_editor") + grant_global(user, "view_note", "add_note", "delete_note") doc = Document.objects.create( title="test", mime_type="application/pdf", @@ -3634,9 +3627,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): response = self.client.get(f"/api/documents/{doc.pk}/notes/") self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) - user.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_global(user, "view_document") user = User.objects.get(pk=user.pk) self.client.force_authenticate(user) response = self.client.get(f"/api/documents/{doc.pk}/notes/") @@ -3648,9 +3639,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): ) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) - user.user_permissions.add( - Permission.objects.get(codename="change_document"), - ) + grant_global(user, "change_document") user = User.objects.get(pk=user.pk) self.client.force_authenticate(user) response = self.client.post( @@ -3797,12 +3786,12 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): - 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 = UserFactory(username="test1") + grant_global(user1, "add_tag") user1.save() - user2 = User.objects.create_user(username="test2") - user2.user_permissions.add(*Permission.objects.filter(codename="add_tag")) + user2 = UserFactory(username="test2") + grant_global(user2, "add_tag") user2.save() # User 1 creates tag 1 owned by user 1 by default @@ -3857,12 +3846,12 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): - 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 = UserFactory(username="test1") + grant_global(user1, "change_tag") user1.save() - user2 = User.objects.create_user(username="test2") - user2.user_permissions.add(*Permission.objects.filter(codename="change_tag")) + user2 = UserFactory(username="test2") + grant_global(user2, "change_tag") user2.save() # Create name tag 1 owned by user 1 @@ -3993,11 +3982,11 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - Links only shown if user has permissions """ - user1 = User.objects.create_user(username="test1") - user1.user_permissions.add(*Permission.objects.all()) + user1 = UserFactory(username="test1") + grant_all_global(user1) user1.save() - user2 = User.objects.create_user(username="test2") + user2 = UserFactory(username="test2") user2.save() doc = Document.objects.create( @@ -4017,7 +4006,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): self.assertEqual(resp.content, b"Insufficient permissions to add share link") self.assertEqual(resp.status_code, status.HTTP_403_FORBIDDEN) - assign_perm("change_document", user1, doc) + grant_object(user1, doc, "change_document") resp = self.client.get( f"/api/documents/{doc.pk}/share_links/", @@ -4034,11 +4023,11 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - Share link creation is denied until view permission is granted """ - user1 = User.objects.create_user(username="test1") - user1.user_permissions.add(*Permission.objects.filter(codename="add_sharelink")) + user1 = UserFactory(username="test1") + grant_global(user1, "add_sharelink") user1.save() - user2 = User.objects.create_user(username="test2") + user2 = UserFactory(username="test2") user2.save() doc = Document.objects.create( @@ -4060,7 +4049,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): ) self.assertEqual(create_resp.status_code, status.HTTP_403_FORBIDDEN) - assign_perm("view_document", user1, doc) + grant_object(user1, doc, "view_document") create_resp = self.client.post( "/api/share_links/", @@ -4072,9 +4061,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): ) self.assertEqual(create_resp.status_code, status.HTTP_403_FORBIDDEN) - user1.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_global(user1, "view_document") user1 = User.objects.get(pk=user1.pk) self.client.force_authenticate(user1) create_resp = self.client.post( @@ -4097,11 +4084,11 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - ASN +1 from user2's doc is returned for user1 """ - user1 = User.objects.create_user(username="test1") - user1.user_permissions.add(*Permission.objects.all()) + user1 = UserFactory(username="test1") + grant_all_global(user1) user1.save() - user2 = User.objects.create_user(username="test2") + user2 = UserFactory(username="test2") user2.save() doc1 = Document.objects.create( @@ -4141,8 +4128,8 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - ASN 1 is returned """ - user1 = User.objects.create_user(username="test1") - user1.user_permissions.add(*Permission.objects.all()) + user1 = UserFactory(username="test1") + grant_all_global(user1) user1.save() doc1 = Document.objects.create( @@ -4170,7 +4157,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - Explicit error is returned """ - user1 = User.objects.create_superuser(username="test1") + user1 = UserFactory(username="test1", superuser=True) self.client.force_authenticate(user1) @@ -4348,8 +4335,8 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase): THEN: - Error response is returned """ - user1 = User.objects.create_user(username="test1") - user1.user_permissions.add(*Permission.objects.all()) + user1 = UserFactory(username="test1") + grant_all_global(user1) user1.save() doc = Document.objects.create( @@ -4454,7 +4441,7 @@ class TestDocumentApiTagColors(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) @@ -4534,7 +4521,7 @@ class TestDocumentApiCustomFieldsSorting(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) self.doc1 = Document.objects.create( diff --git a/src/documents/tests/test_api_email.py b/src/documents/tests/test_api_email.py index 90a629e1a..d26f26d85 100644 --- a/src/documents/tests/test_api_email.py +++ b/src/documents/tests/test_api_email.py @@ -2,16 +2,16 @@ import json import shutil from unittest import mock -from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from django.core import mail from django.test import override_settings from rest_framework import status from rest_framework.test import APITestCase from documents.models import Document -from documents.tests.utils import DirectoriesMixin from documents.tests.utils import SampleDirMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global class TestEmail(DirectoriesMixin, SampleDirMixin, APITestCase): @@ -20,7 +20,7 @@ class TestEmail(DirectoriesMixin, SampleDirMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) self.doc1 = Document.objects.create( @@ -303,8 +303,8 @@ class TestEmail(DirectoriesMixin, SampleDirMixin, APITestCase): THEN: - Forbidden response is returned """ - user1 = User.objects.create_user(username="test1") - user1.user_permissions.add(*Permission.objects.filter(codename="view_document")) + user1 = UserFactory(username="test1") + grant_global(user1, "view_document") doc_owned = Document.objects.create( title="owned_doc", @@ -338,8 +338,8 @@ class TestEmail(DirectoriesMixin, SampleDirMixin, APITestCase): THEN: - Request succeeds """ - user1 = User.objects.create_user(username="test1") - user1.user_permissions.add(*Permission.objects.filter(codename="view_document")) + user1 = UserFactory(username="test1") + grant_global(user1, "view_document") self.client.force_authenticate(user1) diff --git a/src/documents/tests/test_api_filter_by_custom_fields.py b/src/documents/tests/test_api_filter_by_custom_fields.py index 0c4f9f37c..3c0ace782 100644 --- a/src/documents/tests/test_api_filter_by_custom_fields.py +++ b/src/documents/tests/test_api_filter_by_custom_fields.py @@ -4,7 +4,6 @@ from collections.abc import Callable from datetime import date from urllib.parse import quote -from django.contrib.auth.models import User from rest_framework.test import APITestCase from documents.models import CustomField @@ -13,7 +12,8 @@ from documents.models import Document from documents.models import SavedView from documents.models import SavedViewFilterRule from documents.serialisers import DocumentSerializer -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory class DocumentWrapper: @@ -35,7 +35,7 @@ class TestCustomFieldsSearch(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) # Create one custom field per type. The fields are called f"{type}_field". diff --git a/src/documents/tests/test_api_objects.py b/src/documents/tests/test_api_objects.py index 46d1da5c0..a8047d0c6 100644 --- a/src/documents/tests/test_api_objects.py +++ b/src/documents/tests/test_api_objects.py @@ -3,12 +3,10 @@ import json from unittest import mock from django.contrib.auth.models import Group -from django.contrib.auth.models import Permission from django.contrib.auth.models import User from django.db import connection from django.test import override_settings from django.test.utils import CaptureQueriesContext -from guardian.shortcuts import assign_perm from guardian.shortcuts import get_groups_with_perms from guardian.shortcuts import get_users_with_perms from rest_framework import status @@ -21,14 +19,17 @@ from documents.models import Document from documents.models import DocumentType from documents.models import StoragePath from documents.models import Tag -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object class TestApiObjects(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - user = User.objects.create_superuser(username="temp_admin") + user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=user) self.tag1 = Tag.objects.create(name="t1", is_inbox_tag=True) @@ -153,7 +154,7 @@ class TestApiObjects(DirectoriesMixin, APITestCase): # A newer document owned by another user must not leak through the # aggregate for a non-superuser who cannot view it - other = User.objects.create_user(username="other") + other = UserFactory(username="other") Document.objects.create( mime_type="application/pdf", correspondent=self.c1, @@ -162,10 +163,8 @@ class TestApiObjects(DirectoriesMixin, APITestCase): owner=other, ) - user = User.objects.create_user(username="regular") - user.user_permissions.add( - Permission.objects.get(codename="view_correspondent"), - ) + user = UserFactory(username="regular") + grant_global(user, "view_correspondent") self.client.force_authenticate(user=user) response = self.client.get("/api/correspondents/?last_correspondence=true") @@ -200,7 +199,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - user = User.objects.create_superuser(username="temp_admin") + user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=user) self.sp1 = StoragePath.objects.create(name="sp1", path="Something/{checksum}") @@ -455,11 +454,9 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): self.assertEqual(response.data, "folder/Something.pdf") def test_test_storage_path_requires_document_view_permission(self) -> None: - owner = User.objects.create_user(username="owner") - unprivileged = User.objects.create_user(username="unprivileged") - unprivileged.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + owner = UserFactory(username="owner") + unprivileged = UserFactory(username="unprivileged") + grant_global(unprivileged, "view_document") document = Document.objects.create( mime_type="application/pdf", owner=owner, @@ -481,15 +478,15 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): self.assertIn("document", response.data) def test_test_storage_path_allows_shared_document_view_permission(self) -> None: - owner = User.objects.create_user(username="owner") - viewer = User.objects.create_user(username="viewer") + owner = UserFactory(username="owner") + viewer = UserFactory(username="viewer") document = Document.objects.create( mime_type="application/pdf", owner=owner, title="Shared", checksum="123", ) - assign_perm("view_document", viewer, document) + grant_object(viewer, document, "view_document") self.client.force_authenticate(user=viewer) response = self.client.post( @@ -504,9 +501,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): ) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) - viewer.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_global(viewer, "view_document") viewer = User.objects.get(pk=viewer.pk) self.client.force_authenticate(user=viewer) response = self.client.post( @@ -545,14 +540,12 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): def test_test_storage_path_exposes_basic_document_context_but_not_sensitive_owner_data( self, ) -> None: - owner = User.objects.create_user( + owner = UserFactory( username="owner", password="password", email="owner@example.com", ) - owner.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_global(owner, "view_document") document = Document.objects.create( mime_type="application/pdf", owner=owner, @@ -614,8 +607,8 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): def test_test_storage_path_includes_related_objects_for_visible_document( self, ) -> None: - owner = User.objects.create_user(username="owner") - viewer = User.objects.create_user(username="viewer") + owner = UserFactory(username="owner") + viewer = UserFactory(username="viewer") private_correspondent = Correspondent.objects.create( name="Private Correspondent", owner=owner, @@ -627,10 +620,8 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): title="Document", checksum="123", ) - assign_perm("view_document", viewer, document) - viewer.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_object(viewer, document, "view_document") + grant_global(viewer, "view_document") self.client.force_authenticate(user=viewer) response = self.client.post( @@ -662,7 +653,7 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): self.assertEqual(response.data, "Private Correspondent.pdf") def test_test_storage_path_superuser_can_view_private_related_objects(self) -> None: - owner = User.objects.create_user(username="owner") + owner = UserFactory(username="owner") private_correspondent = Correspondent.objects.create( name="Private Correspondent", owner=owner, @@ -693,8 +684,8 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): def test_test_storage_path_includes_doc_type_storage_path_and_tags( self, ) -> None: - owner = User.objects.create_user(username="owner") - viewer = User.objects.create_user(username="viewer") + owner = UserFactory(username="owner") + viewer = UserFactory(username="viewer") private_document_type = DocumentType.objects.create( name="Private Type", owner=owner, @@ -717,10 +708,8 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): checksum="123", ) document.tags.add(private_tag) - assign_perm("view_document", viewer, document) - viewer.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_object(viewer, document, "view_document") + grant_global(viewer, "view_document") self.client.force_authenticate(user=viewer) response = self.client.post( @@ -756,8 +745,8 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): def test_test_storage_path_includes_custom_fields_for_visible_document( self, ) -> None: - owner = User.objects.create_user(username="owner") - viewer = User.objects.create_user(username="viewer") + owner = UserFactory(username="owner") + viewer = UserFactory(username="viewer") document = Document.objects.create( mime_type="application/pdf", owner=owner, @@ -773,10 +762,8 @@ class TestApiStoragePaths(DirectoriesMixin, APITestCase): field=custom_field, value_int=42, ) - assign_perm("view_document", viewer, document) - viewer.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_object(viewer, document, "view_document") + grant_global(viewer, "view_document") self.client.force_authenticate(user=viewer) response = self.client.post( @@ -798,7 +785,7 @@ class TestBulkEditObjects(APITestCase): def setUp(self) -> None: super().setUp() - self.temp_admin = User.objects.create_superuser(username="temp_admin") + self.temp_admin = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.temp_admin) self.t1 = Tag.objects.create(name="t1") @@ -1030,9 +1017,7 @@ class TestBulkEditObjects(APITestCase): THEN: - User is able to delete objects """ - self.user1.user_permissions.add( - *Permission.objects.filter(codename="delete_tag"), - ) + grant_global(self.user1, "delete_tag") self.user1.save() self.client.force_authenticate(user=self.user1) @@ -1062,9 +1047,7 @@ class TestBulkEditObjects(APITestCase): self.t2.owner = User.objects.get(username="temp_admin") self.t2.save() - self.user1.user_permissions.add( - *Permission.objects.filter(codename="delete_tag"), - ) + grant_global(self.user1, "delete_tag") self.user1.save() self.client.force_authenticate(user=self.user1) @@ -1097,9 +1080,7 @@ class TestBulkEditObjects(APITestCase): self.t2.owner = User.objects.get(username="temp_admin") self.t2.save() - self.user1.user_permissions.add( - *Permission.objects.filter(codename="delete_tag"), - ) + grant_global(self.user1, "delete_tag") self.user1.save() self.client.force_authenticate(user=self.user1) diff --git a/src/documents/tests/test_api_permissions.py b/src/documents/tests/test_api_permissions.py index 0b2c491a4..7f9c3dde2 100644 --- a/src/documents/tests/test_api_permissions.py +++ b/src/documents/tests/test_api_permissions.py @@ -5,9 +5,7 @@ from unittest import mock from allauth.mfa.models import Authenticator from allauth.mfa.totp.internal import auth as totp_auth from django.contrib.auth.models import Group -from django.contrib.auth.models import Permission from django.contrib.auth.models import User -from guardian.shortcuts import assign_perm from guardian.shortcuts import get_perms from guardian.shortcuts import get_users_with_perms from rest_framework import status @@ -19,7 +17,11 @@ 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 +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_all_global +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object class TestApiAuth(DirectoriesMixin, APITestCase): @@ -93,14 +95,14 @@ class TestApiAuth(DirectoriesMixin, APITestCase): self.assertNotIn("X-Version", response) def test_api_version_with_auth(self) -> None: - user = User.objects.create_superuser(username="test") + user = UserFactory(username="test", superuser=True) self.client.force_authenticate(user) response = self.client.get("/api/documents/") self.assertIn("X-Api-Version", response) self.assertIn("X-Version", response) def test_api_insufficient_permissions(self) -> None: - user = User.objects.create_user(username="test") + user = UserFactory(username="test") self.client.force_authenticate(user) Document.objects.create(title="Test") @@ -137,8 +139,8 @@ class TestApiAuth(DirectoriesMixin, APITestCase): ) def test_api_sufficient_permissions(self) -> None: - user = User.objects.create_user(username="test") - user.user_permissions.add(*Permission.objects.all()) + user = UserFactory(username="test") + grant_all_global(user) user.is_staff = True self.client.force_authenticate(user) @@ -166,9 +168,9 @@ class TestApiAuth(DirectoriesMixin, APITestCase): ) def test_api_get_object_permissions(self) -> None: - user1 = User.objects.create_user(username="test1") - user2 = User.objects.create_user(username="test2") - user1.user_permissions.add(*Permission.objects.filter(codename="view_document")) + user1 = UserFactory(username="test1") + user2 = UserFactory(username="test2") + grant_global(user1, "view_document") self.client.force_authenticate(user1) self.assertEqual( @@ -205,7 +207,7 @@ class TestApiAuth(DirectoriesMixin, APITestCase): THEN: - Object created with current user as owner """ - user1 = User.objects.create_superuser(username="user1") + user1 = UserFactory(username="user1", superuser=True) self.client.force_authenticate(user1) @@ -234,7 +236,7 @@ class TestApiAuth(DirectoriesMixin, APITestCase): THEN: - Object created with no owner """ - user1 = User.objects.create_superuser(username="user1") + user1 = UserFactory(username="user1", superuser=True) self.client.force_authenticate(user1) @@ -265,7 +267,7 @@ class TestApiAuth(DirectoriesMixin, APITestCase): THEN: - Object permissions are set appropriately """ - user1 = User.objects.create_superuser(username="user1") + user1 = UserFactory(username="user1", superuser=True) user2 = User.objects.create(username="user2") group1 = Group.objects.create(name="group1") @@ -313,7 +315,7 @@ class TestApiAuth(DirectoriesMixin, APITestCase): THEN: - Object permissions are set appropriately """ - user1 = User.objects.create_superuser(username="user1") + user1 = UserFactory(username="user1", superuser=True) user2 = User.objects.create(username="user2") group1 = Group.objects.create(name="group1") @@ -363,7 +365,7 @@ class TestApiAuth(DirectoriesMixin, APITestCase): mime_type="application/pdf", content="this is a document", ) - user1 = User.objects.create_superuser(username="user1") + user1 = UserFactory(username="user1", superuser=True) user2 = User.objects.create(username="user2") group1 = Group.objects.create(name="group1") @@ -413,16 +415,16 @@ class TestApiAuth(DirectoriesMixin, APITestCase): mime_type="application/pdf", content="this is a document", ) - user1 = User.objects.create_superuser(username="user1") + user1 = UserFactory(username="user1", superuser=True) user2 = User.objects.create(username="user2") group1 = Group.objects.create(name="group1") doc.owner = user1 doc.save() - assign_perm("view_document", user2, doc) - assign_perm("change_document", user2, doc) - assign_perm("view_document", group1, doc) - assign_perm("change_document", group1, doc) + grant_object(user2, doc, "view_document") + grant_object(user2, doc, "change_document") + grant_object(group1, doc, "view_document") + grant_object(group1, doc, "change_document") self.client.force_authenticate(user1) @@ -446,11 +448,9 @@ class TestApiAuth(DirectoriesMixin, APITestCase): self.assertIn("change_document", get_perms(group1, doc)) def test_document_permissions_change_requires_owner(self) -> None: - owner = User.objects.create_user(username="owner") - editor = User.objects.create_user(username="editor") - editor.user_permissions.add( - *Permission.objects.all(), - ) + owner = UserFactory(username="owner") + editor = UserFactory(username="editor") + grant_all_global(editor) doc = Document.objects.create( title="Ownered doc", @@ -460,8 +460,8 @@ class TestApiAuth(DirectoriesMixin, APITestCase): owner=owner, ) - assign_perm("view_document", editor, doc) - assign_perm("change_document", editor, doc) + grant_object(editor, doc, "view_document") + grant_object(editor, doc, "change_document") self.client.force_authenticate(editor) response = self.client.patch( @@ -499,9 +499,9 @@ class TestApiAuth(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) def test_dynamic_permissions_fields(self) -> None: - user1 = User.objects.create_user(username="user1") - user1.user_permissions.add(*Permission.objects.filter(codename="view_document")) - user2 = User.objects.create_user(username="user2") + user1 = UserFactory(username="user1") + grant_global(user1, "view_document") + user2 = UserFactory(username="user2") Document.objects.create(title="Test", content="content 1", checksum="1") doc2 = Document.objects.create( @@ -523,10 +523,10 @@ class TestApiAuth(DirectoriesMixin, APITestCase): owner=user1, ) - assign_perm("view_document", user1, doc2) - assign_perm("view_document", user1, doc3) - assign_perm("change_document", user1, doc3) - assign_perm("view_document", user2, doc4) + grant_object(user1, doc2, "view_document") + grant_object(user1, doc3, "view_document") + grant_object(user1, doc3, "change_document") + grant_object(user2, doc4, "view_document") self.client.force_authenticate(user1) @@ -574,8 +574,8 @@ class TestApiAuth(DirectoriesMixin, APITestCase): owned by someone else with no explicit guardian grant -- mirrors guardian's own ObjectPermissionChecker.has_perm() superuser shortcut. """ - superuser = User.objects.create_superuser(username="admin") - other_user = User.objects.create_user(username="user2") + superuser = UserFactory(username="admin", superuser=True) + other_user = UserFactory(username="user2") Document.objects.create( title="Test", content="content", @@ -602,7 +602,7 @@ class TestApiAuth(DirectoriesMixin, APITestCase): THEN: - MFA required error is returned """ - user1 = User.objects.create_user(username="user1") + user1 = UserFactory(username="user1") user1.set_password("password") user1.save() @@ -626,7 +626,7 @@ class TestApiAuth(DirectoriesMixin, APITestCase): THEN: - MFA code is required """ - user1 = User.objects.create_user(username="user1") + user1 = UserFactory(username="user1") user1.set_password("password") user1.save() @@ -688,7 +688,7 @@ class TestApiUser(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) def test_get_users(self) -> None: @@ -858,10 +858,8 @@ class TestApiUser(DirectoriesMixin, APITestCase): ) self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) - regular_user = User.objects.create_user(username="regular_user") - regular_user.user_permissions.add( - *Permission.objects.all(), - ) + regular_user = UserFactory(username="regular_user") + grant_all_global(regular_user) self.client.force_authenticate(regular_user) Authenticator.objects.create( user=user1, @@ -885,9 +883,9 @@ class TestApiUser(DirectoriesMixin, APITestCase): - Only superusers can change superuser status """ - user1 = User.objects.create_user(username="user1") - user1.user_permissions.add(*Permission.objects.all()) - user2 = User.objects.create_superuser(username="user2") + user1 = UserFactory(username="user1") + grant_all_global(user1) + user2 = UserFactory(username="user2", superuser=True) self.client.force_authenticate(user1) @@ -972,9 +970,9 @@ class TestApiUser(DirectoriesMixin, APITestCase): - Only superusers can change staff status """ - user1 = User.objects.create_user(username="user1") - user1.user_permissions.add(*Permission.objects.all()) - user2 = User.objects.create_superuser(username="user2") + user1 = UserFactory(username="user1") + grant_all_global(user1) + user2 = UserFactory(username="user2", superuser=True) self.client.force_authenticate(user1) @@ -1027,7 +1025,7 @@ class TestApiGroup(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) def test_get_groups(self) -> None: @@ -1128,7 +1126,7 @@ class TestBulkEditObjectPermissions(APITestCase): def setUp(self) -> None: super().setUp() - self.temp_admin = User.objects.create_superuser(username="temp_admin") + self.temp_admin = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.temp_admin) self.t1 = Tag.objects.create(name="t1") @@ -1276,7 +1274,7 @@ class TestBulkEditObjectPermissions(APITestCase): }, } - assign_perm("view_tag", self.user3, self.t1) + grant_object(self.user3, self.t1, "view_tag") self.t1.owner = self.user3 self.t1.save() @@ -1373,13 +1371,9 @@ class TestBulkEditObjectPermissions(APITestCase): """ self.t1.owner = self.user2 self.t1.save() - assign_perm("view_tag", self.user1, self.t1) - assign_perm("change_tag", self.user1, self.t1) - self.user1.user_permissions.add( - *Permission.objects.filter( - codename__in=["view_tag", "change_tag"], - ), - ) + grant_object(self.user1, self.t1, "view_tag") + grant_object(self.user1, self.t1, "change_tag") + grant_global(self.user1, "view_tag", "change_tag") user1 = User.objects.get(pk=self.user1.pk) self.client.force_authenticate(user=user1) @@ -1426,13 +1420,9 @@ class TestBulkEditObjectPermissions(APITestCase): """ owned = Tag.objects.create(name="owned", owner=self.user1) shared = Tag.objects.create(name="shared", owner=self.user2) - assign_perm("view_tag", self.user1, shared) - assign_perm("change_tag", self.user1, shared) - self.user1.user_permissions.add( - *Permission.objects.filter( - codename__in=["view_tag", "change_tag"], - ), - ) + grant_object(self.user1, shared, "view_tag") + grant_object(self.user1, shared, "change_tag") + grant_global(self.user1, "view_tag", "change_tag") user1 = User.objects.get(pk=self.user1.pk) self.client.force_authenticate(user=user1) @@ -1473,14 +1463,10 @@ class TestBulkEditObjectPermissions(APITestCase): """ self.t1.owner = self.user2 self.t1.save() - assign_perm("view_tag", self.user1, self.t1) - assign_perm("change_tag", self.user1, self.t1) - assign_perm("delete_tag", self.user1, self.t1) - self.user1.user_permissions.add( - *Permission.objects.filter( - codename__in=["view_tag", "change_tag", "delete_tag"], - ), - ) + grant_object(self.user1, self.t1, "view_tag") + grant_object(self.user1, self.t1, "change_tag") + grant_object(self.user1, self.t1, "delete_tag") + grant_global(self.user1, "view_tag", "change_tag", "delete_tag") user1 = User.objects.get(pk=self.user1.pk) self.client.force_authenticate(user=user1) @@ -1585,7 +1571,7 @@ class TestBulkEditObjectPermissions(APITestCase): - Request succeeds and null is treated as an empty user list, so the existing view permission is removed """ - assign_perm("view_tag", self.user1, self.t1) + grant_object(self.user1, self.t1, "view_tag") response = self.client.post( "/api/bulk_edit_objects/", @@ -1680,7 +1666,7 @@ class TestFullPermissionsFlag(APITestCase): def setUp(self) -> None: super().setUp() - self.admin = User.objects.create_superuser(username="admin") + self.admin = UserFactory(username="admin", superuser=True) def test_full_perms_flag(self) -> None: """ diff --git a/src/documents/tests/test_api_post_document_nfc.py b/src/documents/tests/test_api_post_document_nfc.py index 5b3088b01..2eff44e27 100644 --- a/src/documents/tests/test_api_post_document_nfc.py +++ b/src/documents/tests/test_api_post_document_nfc.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import unicodedata from typing import TYPE_CHECKING from unittest import mock @@ -7,8 +9,11 @@ import pytest from django.core.files.uploadedfile import SimpleUploadedFile if TYPE_CHECKING: + from rest_framework.test import APIClient + from documents.data_models import ConsumableDocument from documents.data_models import DocumentMetadataOverrides + from paperless_testing.dirs import PaperlessDirs @pytest.fixture() @@ -18,22 +23,14 @@ def consume_file_mock(): yield m -@pytest.fixture() -def directories(tmp_path, settings, _media_settings): - scratch = tmp_path / "scratch" - scratch.mkdir() - settings.SCRATCH_DIR = scratch - return scratch - - @pytest.mark.django_db class TestPostDocumentNFCNormalization: def test_nfd_filename_normalized_to_nfc( self, - admin_client, + admin_client: APIClient, consume_file_mock: mock.MagicMock, - directories, - ): + paperless_dirs: PaperlessDirs, + ) -> None: """Uploaded file with NFD filename must have its name stored as NFC.""" nfd = unicodedata.normalize("NFD", "Rechnung März.pdf") nfc = unicodedata.normalize("NFC", "Rechnung März.pdf") @@ -69,10 +66,10 @@ class TestPostDocumentNFCNormalization: def test_already_nfc_filename_unchanged( self, - admin_client, + admin_client: APIClient, consume_file_mock: mock.MagicMock, - directories, - ): + paperless_dirs: PaperlessDirs, + ) -> None: """Uploaded file with already-NFC filename must pass through unchanged.""" nfc = unicodedata.normalize("NFC", "Invoice_2024.pdf") diff --git a/src/documents/tests/test_api_profile.py b/src/documents/tests/test_api_profile.py index d642f52d8..31588dd56 100644 --- a/src/documents/tests/test_api_profile.py +++ b/src/documents/tests/test_api_profile.py @@ -8,7 +8,8 @@ from rest_framework import status from rest_framework.authtoken.models import Token from rest_framework.test import APITestCase -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory # see allauth.socialaccount.providers.openid.provider.OpenIDProvider @@ -55,23 +56,23 @@ class TestApiProfile(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser( + self.user = UserFactory( username="temp_admin", first_name="firstname", last_name="surname", + superuser=True, ) self.client.force_authenticate(user=self.user) - def setupSocialAccount(self) -> None: + def setupSocialAccount(self) -> SocialAccount: SocialApp.objects.create( name="Keycloak", provider="openid_connect", provider_id="keycloak-test", ) - self.user.socialaccount_set.add( - SocialAccount(uid="123456789", provider="keycloak-test"), - bulk=False, - ) + social_account = SocialAccount(uid="123456789", provider="keycloak-test") + self.user.socialaccount_set.add(social_account, bulk=False) + return social_account def test_get_profile(self) -> None: """ @@ -109,19 +110,17 @@ class TestApiProfile(DirectoriesMixin, APITestCase): THEN: - Profile is returned with social accounts """ - self.setupSocialAccount() + social_account = self.setupSocialAccount() - openid_provider = ( - MockOpenIDConnectProvider( - app=SocialApp.objects.get(provider_id="keycloak-test"), - ), + openid_provider = MockOpenIDConnectProvider( + app=SocialApp.objects.get(provider_id="keycloak-test"), ) mock_list_providers.return_value = [ openid_provider, ] mock_get_provider_account.return_value = MockOpenIDConnectProviderAccount( mock_social_account_dict={ - "name": openid_provider[0].name, + "name": openid_provider.name, }, ) @@ -133,7 +132,7 @@ class TestApiProfile(DirectoriesMixin, APITestCase): response.data["social_accounts"], [ { - "id": 1, + "id": social_account.pk, "provider": "keycloak-test", "name": "Keycloak", }, @@ -150,7 +149,7 @@ class TestApiProfile(DirectoriesMixin, APITestCase): THEN: - Profile is returned with "Unknown App" as name """ - self.setupSocialAccount() + social_account = self.setupSocialAccount() # Remove the social app SocialApp.objects.get(provider_id="keycloak-test").delete() @@ -163,7 +162,7 @@ class TestApiProfile(DirectoriesMixin, APITestCase): response.data["social_accounts"], [ { - "id": 1, + "id": social_account.pk, "provider": "keycloak-test", "name": "Unknown App", }, @@ -401,7 +400,7 @@ class TestApiTOTPViews(APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) def test_get_totp(self) -> None: diff --git a/src/documents/tests/test_api_search.py b/src/documents/tests/test_api_search.py index f191ba175..102736139 100644 --- a/src/documents/tests/test_api_search.py +++ b/src/documents/tests/test_api_search.py @@ -7,10 +7,8 @@ import time_machine from dateutil.relativedelta import relativedelta 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 guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APITestCase @@ -27,10 +25,13 @@ from documents.models import Tag from documents.models import Workflow from documents.search import get_backend from documents.search import reset_backend -from documents.tests.factories import DocumentFactory -from documents.tests.utils import DirectoriesMixin from paperless_mail.models import MailAccount from paperless_mail.models import MailRule +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object pytestmark = pytest.mark.search @@ -40,7 +41,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): super().setUp() reset_backend() - self.user = User.objects.create_superuser(username="temp_admin") + self.user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=self.user) def tearDown(self) -> None: @@ -949,9 +950,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): THEN: - Terms only within docs user has access to are returned """ - u1 = User.objects.create_user("user1") - u2 = User.objects.create_user("user2") - u1.user_permissions.add(Permission.objects.get(codename="view_document")) + u1 = UserFactory(username="user1") + u2 = UserFactory(username="user2") + grant_global(u1, "view_document") self.client.force_authenticate(user=u1) @@ -991,7 +992,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data, ["applebaum", "apples"]) - assign_perm("view_document", u1, d3) + grant_object(u1, d3, "view_document") backend.add_or_update(d3) response = self.client.get("/api/search/autocomplete/?term=app") @@ -999,10 +1000,10 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): self.assertEqual(response.data, ["applebaum", "apples", "appletini"]) def test_search_autocomplete_group_revocation_is_immediate(self) -> None: - user = User.objects.create_user("group-user") - owner = User.objects.create_user("document-owner") + user = UserFactory(username="group-user") + owner = UserFactory(username="document-owner") group = Group.objects.create(name="temporary-viewers") - user.user_permissions.add(Permission.objects.get(codename="view_document")) + grant_global(user, "view_document") user.groups.add(group) document = Document.objects.create( @@ -1011,7 +1012,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): checksum="group-revocation", owner=owner, ) - assign_perm("view_document", group, document) + grant_object(group, document, "view_document") get_backend().add_or_update(document) self.client.force_authenticate(user=user) @@ -1091,11 +1092,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): self.assertIsNone(response.data["corrected_query"]) def test_search_spelling_suggestion_suppressed_for_private_terms(self) -> None: - owner = User.objects.create_user("owner") - attacker = User.objects.create_user("attacker") - attacker.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + owner = UserFactory(username="owner") + attacker = UserFactory(username="attacker") + grant_global(attacker, "view_document") backend = get_backend() for i in range(5): @@ -1222,11 +1221,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): THEN: - The request is rejected """ - owner = User.objects.create_user("owner") - attacker = User.objects.create_user("attacker") - attacker.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + owner = UserFactory(username="owner") + attacker = UserFactory(username="attacker") + grant_global(attacker, "view_document") private_seed = Document.objects.create( title="private bank statement", @@ -1534,11 +1531,11 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): - Only owned docs are returned for regular users - All docs are returned for superuser """ - superuser = User.objects.create_superuser("superuser") - u1 = User.objects.create_user("user1") - u2 = User.objects.create_user("user2") - u1.user_permissions.add(*Permission.objects.filter(codename="view_document")) - u2.user_permissions.add(*Permission.objects.filter(codename="view_document")) + superuser = UserFactory(username="superuser", superuser=True) + u1 = UserFactory(username="user1") + u2 = UserFactory(username="user2") + grant_global(u1, "view_document") + grant_global(u2, "view_document") Document.objects.create(checksum="1", content="test 1", owner=u1) Document.objects.create(checksum="2", content="test 2", owner=u2) @@ -1588,10 +1585,10 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): THEN: - Only docs with granted view permissions are returned """ - u1 = User.objects.create_user("user1") - u2 = User.objects.create_user("user2") - u1.user_permissions.add(*Permission.objects.filter(codename="view_document")) - u2.user_permissions.add(*Permission.objects.filter(codename="view_document")) + u1 = UserFactory(username="user1") + u2 = UserFactory(username="user2") + grant_global(u1, "view_document") + grant_global(u2, "view_document") d1 = Document.objects.create(checksum="1", content="test 1", owner=u1) d2 = Document.objects.create(checksum="2", content="test 2", owner=u2) @@ -1616,9 +1613,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): r = self.client.get("/api/documents/?query=test&owner__isnull=true") self.assertEqual(r.data["count"], 1) - assign_perm("view_document", u1, d2) - assign_perm("view_document", u1, d3) - assign_perm("view_document", u2, d1) + grant_object(u1, d2, "view_document") + grant_object(u1, d3, "view_document") + grant_object(u2, d1, "view_document") backend.add_or_update(d1) backend.add_or_update(d2) @@ -1641,8 +1638,8 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): self.assertEqual(r.data["count"], 1) def test_search_sorting(self) -> None: - u1 = User.objects.create_user("user1") - u2 = User.objects.create_user("user2") + u1 = UserFactory(username="user1") + u2 = UserFactory(username="user2") c1 = Correspondent.objects.create(name="corres Ax") c2 = Correspondent.objects.create(name="corres Cx") c3 = Correspondent.objects.create(name="corres Bx") @@ -1892,8 +1889,8 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): pk=5, ) - user1 = User.objects.create_user("bank user1") - user2 = User.objects.create_superuser("user2") + user1 = UserFactory(username="bank user1") + user2 = UserFactory(username="user2", superuser=True) group1 = Group.objects.create(name="bank group1") Group.objects.create(name="group2") @@ -1925,7 +1922,7 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): sort_field="", owner=user2, ) - assign_perm("view_savedview", user1, shared_view) + grant_object(user1, shared_view, "view_savedview") mail_account1 = MailAccount.objects.create(name="bank mail account 1") mail_account2 = MailAccount.objects.create(name="mail account 2") mail_rule1 = MailRule.objects.create( @@ -2018,12 +2015,9 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase): self.assertEqual(returned.get(root.id), "latest content") def test_global_search_filters_owned_mail_objects(self) -> None: - user1 = User.objects.create_user("mail-search-user") - user2 = User.objects.create_user("other-mail-search-user") - user1.user_permissions.add( - Permission.objects.get(codename="view_mailaccount"), - Permission.objects.get(codename="view_mailrule"), - ) + user1 = UserFactory(username="mail-search-user") + user2 = UserFactory(username="other-mail-search-user") + grant_global(user1, "view_mailaccount", "view_mailrule") own_account = MailAccount.objects.create( name="bank owned account", diff --git a/src/documents/tests/test_api_search_errors.py b/src/documents/tests/test_api_search_errors.py index c8a2849b9..ea33eedae 100644 --- a/src/documents/tests/test_api_search_errors.py +++ b/src/documents/tests/test_api_search_errors.py @@ -33,7 +33,7 @@ class TestSearchQueryErrorStillBecomesA400: self, admin_client: APIClient, monkeypatch: pytest.MonkeyPatch, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -68,7 +68,7 @@ class TestLibraryDefectsPropagate: self, admin_client: APIClient, monkeypatch: pytest.MonkeyPatch, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -98,7 +98,7 @@ class TestLibraryDefectsPropagate: self, admin_client: APIClient, monkeypatch: pytest.MonkeyPatch, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -141,7 +141,7 @@ class TestSelectionPathsAgreeWithSearch: self, admin_client: APIClient, monkeypatch: pytest.MonkeyPatch, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -181,7 +181,7 @@ class TestSelectionPathsAgreeWithSearch: self, admin_client: APIClient, monkeypatch: pytest.MonkeyPatch, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -221,7 +221,7 @@ class TestSelectionPathsAgreeWithSearch: self, admin_client: APIClient, monkeypatch: pytest.MonkeyPatch, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -259,7 +259,7 @@ class TestSelectionPathsAgreeWithSearch: self, admin_client: APIClient, monkeypatch: pytest.MonkeyPatch, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -287,7 +287,7 @@ class TestSelectionPathsAgreeWithSearch: { "documents": [], "all": True, - "filters": {"more_like_id": indexed_document.pk}, + "filters": {"more_like_id": searchable_document.pk}, }, format="json", ) @@ -298,7 +298,7 @@ class TestSelectionPathsAgreeWithSearch: self, admin_client: APIClient, monkeypatch: pytest.MonkeyPatch, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -328,7 +328,7 @@ class TestSelectionPathsAgreeWithSearch: { "documents": [], "all": True, - "filters": {"more_like_id": indexed_document.pk}, + "filters": {"more_like_id": searchable_document.pk}, }, format="json", ) diff --git a/src/documents/tests/test_api_search_query_length.py b/src/documents/tests/test_api_search_query_length.py index 2d52bc9ff..77dca7bdb 100644 --- a/src/documents/tests/test_api_search_query_length.py +++ b/src/documents/tests/test_api_search_query_length.py @@ -36,7 +36,7 @@ class TestGetSearchEndpointEnforcesTheCap: def test_query_one_over_the_cap_is_a_400( self, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -66,7 +66,7 @@ class TestGetSearchEndpointEnforcesTheCap: def test_query_at_exactly_the_cap_is_accepted( self, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -86,7 +86,7 @@ class TestGetSearchEndpointEnforcesTheCap: def test_an_ordinary_query_is_unaffected( self, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -112,7 +112,7 @@ class TestPostSelectionPathsEnforceTheCap: def test_bulk_edit_query_one_over_the_cap_is_a_400( self, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -154,7 +154,7 @@ class TestPostSelectionPathsEnforceTheCap: self, bulk_update_task_mock: mock.MagicMock, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -187,7 +187,7 @@ class TestPostSelectionPathsEnforceTheCap: def test_bulk_download_query_one_over_the_cap_is_a_400( self, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -236,7 +236,7 @@ class TestGlobalSearchEnforcesTheCapToo: def test_query_one_over_the_cap_is_a_400( self, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: @@ -260,7 +260,7 @@ class TestGlobalSearchEnforcesTheCapToo: def test_query_at_exactly_the_cap_is_accepted( self, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: diff --git a/src/documents/tests/test_api_search_unterminated_date_range.py b/src/documents/tests/test_api_search_unterminated_date_range.py index f8c26d743..18dca04ba 100644 --- a/src/documents/tests/test_api_search_unterminated_date_range.py +++ b/src/documents/tests/test_api_search_unterminated_date_range.py @@ -38,7 +38,7 @@ class TestUnterminatedBracketReturnsA400: def test_unterminated_bracket_is_a_400( self, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, query: str, ) -> None: """ @@ -59,7 +59,7 @@ class TestUnterminatedBracketReturnsA400: def test_properly_closed_bracket_still_searches_cleanly( self, admin_client: APIClient, - indexed_document: Document, + searchable_document: Document, ) -> None: """ GIVEN: diff --git a/src/documents/tests/test_api_status.py b/src/documents/tests/test_api_status.py index ca6613573..6f200e54f 100644 --- a/src/documents/tests/test_api_status.py +++ b/src/documents/tests/test_api_status.py @@ -5,8 +5,6 @@ from datetime import timedelta from pathlib import Path from unittest import mock -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 rest_framework import status @@ -14,8 +12,10 @@ from rest_framework.test import APITestCase from documents.models import PaperlessTask from documents.permissions import has_system_status_permission -from documents.tests.factories import PaperlessTaskFactory from paperless import version +from paperless_testing.factories import PaperlessTaskFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global class TestSystemStatus(APITestCase): @@ -23,9 +23,7 @@ class TestSystemStatus(APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser( - username="temp_admin", - ) + self.user = UserFactory(username="temp_admin", superuser=True) self.tmp_dir = Path(tempfile.mkdtemp()) self.override = override_settings(MEDIA_ROOT=self.tmp_dir) self.override.enable() @@ -96,7 +94,7 @@ class TestSystemStatus(APITestCase): response = self.client.get(self.ENDPOINT) self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) self.assertEqual(response["WWW-Authenticate"], "Token") - normal_user = User.objects.create_user(username="normal_user") + normal_user = UserFactory(username="normal_user") self.client.force_login(normal_user) response = self.client.get(self.ENDPOINT) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) @@ -107,10 +105,8 @@ class TestSystemStatus(APITestCase): response = self.client.get(self.ENDPOINT) self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) - user = User.objects.create_user(username="status_user") - user.user_permissions.add( - Permission.objects.get(codename="view_system_monitoring"), - ) + user = UserFactory(username="status_user") + grant_global(user, "view_system_monitoring") self.client.force_login(user) response = self.client.get(self.ENDPOINT) diff --git a/src/documents/tests/test_api_tasks.py b/src/documents/tests/test_api_tasks.py index 59767f9af..31ec632ec 100644 --- a/src/documents/tests/test_api_tasks.py +++ b/src/documents/tests/test_api_tasks.py @@ -11,22 +11,21 @@ from datetime import timedelta from unittest import mock import pytest -from django.contrib.auth.models import Permission from django.contrib.auth.models import User from django.utils import timezone -from guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APIClient from documents.filters import PaperlessTaskFilterSet from documents.models import PaperlessTask -from documents.tests.factories import DocumentFactory -from documents.tests.factories import PaperlessTaskFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import PaperlessTaskFactory +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object pytestmark = pytest.mark.api ENDPOINT = "/api/tasks/" -ACCEPT_V10 = "application/json; version=10" ACCEPT_V9 = "application/json; version=9" @@ -346,21 +345,16 @@ class TestGetTasksV10: self, admin_user: User, regular_user: User, + user_client: APIClient, ) -> None: """Regular users see their own tasks and unowned (system) tasks; other users' tasks are hidden.""" - regular_user.user_permissions.add( - Permission.objects.get(codename="view_paperlesstask"), - ) - - client = APIClient() - client.force_authenticate(user=regular_user) - client.credentials(HTTP_ACCEPT=ACCEPT_V10) + grant_global(regular_user, "view_paperlesstask") PaperlessTaskFactory(owner=admin_user) # other user — not visible unowned_task = PaperlessTaskFactory() # unowned (system task) — visible own_task = PaperlessTaskFactory(owner=regular_user) - response = client.get(ENDPOINT) + response = user_client.get(ENDPOINT) assert response.status_code == status.HTTP_200_OK assert response.data["count"] == 2 @@ -590,9 +584,7 @@ class TestGetTasksV9: regular_user: User, ) -> None: """Non-staff users see their own tasks plus unowned tasks via v9 API.""" - regular_user.user_permissions.add( - Permission.objects.get(codename="view_paperlesstask"), - ) + grant_global(regular_user, "view_paperlesstask") client = APIClient() client.force_authenticate(user=regular_user) @@ -732,19 +724,17 @@ class TestAcknowledge: assert response.status_code == status.HTTP_403_FORBIDDEN - def test_succeeds_with_change_permission(self, regular_user: User) -> None: + def test_succeeds_with_change_permission( + self, + regular_user: User, + user_client: APIClient, + ) -> None: """Users granted change_paperlesstask permission can acknowledge tasks.""" - regular_user.user_permissions.add( - Permission.objects.get(codename="change_paperlesstask"), - ) + grant_global(regular_user, "change_paperlesstask") regular_user.save() - client = APIClient() - client.force_authenticate(user=regular_user) - client.credentials(HTTP_ACCEPT=ACCEPT_V10) - task = PaperlessTaskFactory() - response = client.post( + response = user_client.post( ENDPOINT + "acknowledge/", {"tasks": [task.id]}, format="json", @@ -807,9 +797,7 @@ class TestSummaryPermissions: regular_user, ) -> None: """A user with view_system_monitoring but no document permissions can access summary/.""" - regular_user.user_permissions.add( - Permission.objects.get(codename="view_system_monitoring"), - ) + grant_global(regular_user, "view_system_monitoring") response = user_client.get(ENDPOINT + "summary/") @@ -822,9 +810,7 @@ class TestSummaryPermissions: admin_user, ) -> None: """Monitoring user sees aggregate data for all tasks, not just unowned ones.""" - regular_user.user_permissions.add( - Permission.objects.get(codename="view_system_monitoring"), - ) + grant_global(regular_user, "view_system_monitoring") PaperlessTaskFactory( owner=admin_user, task_type=PaperlessTask.TaskType.CONSUME_FILE, @@ -845,9 +831,7 @@ class TestSummaryPermissions: ) -> None: """A regular user with view_paperlesstask but not view_system_monitoring sees only their own tasks and unowned tasks in the summary, not other users' tasks.""" - regular_user.user_permissions.add( - Permission.objects.get(codename="view_paperlesstask"), - ) + grant_global(regular_user, "view_paperlesstask") PaperlessTaskFactory( owner=regular_user, @@ -1012,9 +996,7 @@ class TestDuplicateDocumentsPermissions: @pytest.fixture() def user_v9_client(self, regular_user: User) -> APIClient: - regular_user.user_permissions.add( - Permission.objects.get(codename="view_paperlesstask"), - ) + grant_global(regular_user, "view_paperlesstask") client = APIClient() client.force_authenticate(user=regular_user) client.credentials(HTTP_ACCEPT=ACCEPT_V9) @@ -1085,7 +1067,7 @@ class TestDuplicateDocumentsPermissions: ) -> None: """A user with explicit guardian view_document permission sees the duplicate_of document.""" doc = DocumentFactory(owner=admin_user, title="Granted Doc") - assign_perm("view_document", regular_user, doc) + grant_object(regular_user, doc, "view_document") PaperlessTaskFactory( owner=regular_user, status=PaperlessTask.Status.SUCCESS, diff --git a/src/documents/tests/test_api_trash.py b/src/documents/tests/test_api_trash.py index 58c4ad295..792f9ca00 100644 --- a/src/documents/tests/test_api_trash.py +++ b/src/documents/tests/test_api_trash.py @@ -1,21 +1,21 @@ from datetime import date -from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from django.core.cache import cache from rest_framework import status from rest_framework.test import APITestCase from documents.models import Document -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_all_global class TestTrashAPI(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_user(username="temp_admin") - self.user.user_permissions.add(*Permission.objects.all()) + self.user = UserFactory(username="temp_admin") + grant_all_global(self.user) self.client.force_authenticate(user=self.user) cache.clear() @@ -70,7 +70,7 @@ class TestTrashAPI(DirectoriesMixin, APITestCase): self.assertEqual(Document.global_objects.count(), 0) def test_trash_list_requires_global_document_view_permission(self) -> None: - user = User.objects.create_user(username="trash_owner") + user = UserFactory(username="trash_owner") document = Document.objects.create(title="Owned", owner=user) document.delete() self.client.force_authenticate(user) @@ -140,7 +140,7 @@ class TestTrashAPI(DirectoriesMixin, APITestCase): created=date(2023, 1, 2), ) document_not_owned.delete() - user2 = User.objects.create_user(username="user2") + user2 = UserFactory(username="user2") document_u2 = Document.objects.create( title="Title3", content="content3", @@ -158,7 +158,7 @@ class TestTrashAPI(DirectoriesMixin, APITestCase): self.assertEqual(resp.data["results"][1]["id"], document_u1.pk) # superuser sees all documents - superuser = User.objects.create_superuser(username="superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) resp = self.client.get("/api/trash/") self.assertEqual(resp.status_code, status.HTTP_200_OK) @@ -174,7 +174,7 @@ class TestTrashAPI(DirectoriesMixin, APITestCase): - 403 Forbidden """ - user2 = User.objects.create_user(username="user2") + user2 = UserFactory(username="user2") document = Document.objects.create( title="Title", content="content", diff --git a/src/documents/tests/test_api_uisettings.py b/src/documents/tests/test_api_uisettings.py index 82ee5d0fa..7743626c2 100644 --- a/src/documents/tests/test_api_uisettings.py +++ b/src/documents/tests/test_api_uisettings.py @@ -1,13 +1,13 @@ import json from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from django.test import override_settings from rest_framework import status from rest_framework.test import APITestCase -from documents.tests.utils import DirectoriesMixin from paperless.version import __full_version_str__ +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory class TestApiUiSettings(DirectoriesMixin, APITestCase): @@ -15,7 +15,7 @@ class TestApiUiSettings(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.test_user = User.objects.create_superuser(username="test") + self.test_user = UserFactory(username="test", superuser=True) self.test_user.first_name = "Test" self.test_user.last_name = "User" self.test_user.save() @@ -91,7 +91,7 @@ class TestApiUiSettings(DirectoriesMixin, APITestCase): ) def test_api_set_ui_settings_insufficient_global_permissions(self) -> None: - not_superuser = User.objects.create_user(username="test_not_superuser") + not_superuser = UserFactory(username="test_not_superuser") self.client.force_authenticate(user=not_superuser) settings = { @@ -111,7 +111,7 @@ class TestApiUiSettings(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) def test_api_set_ui_settings_sufficient_global_permissions(self) -> None: - not_superuser = User.objects.create_user(username="test_not_superuser") + not_superuser = UserFactory(username="test_not_superuser") not_superuser.user_permissions.add( *Permission.objects.filter(codename__contains="uisettings"), ) diff --git a/src/documents/tests/test_api_workflows.py b/src/documents/tests/test_api_workflows.py index 7c1b9b6c5..4b5e6eb48 100644 --- a/src/documents/tests/test_api_workflows.py +++ b/src/documents/tests/test_api_workflows.py @@ -14,7 +14,8 @@ from documents.models import Tag from documents.models import Workflow from documents.models import WorkflowAction from documents.models import WorkflowTrigger -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory class TestApiWorkflows(DirectoriesMixin, APITestCase): @@ -25,7 +26,7 @@ class TestApiWorkflows(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - user = User.objects.create_superuser(username="temp_admin") + user = UserFactory(username="temp_admin", superuser=True) self.client.force_authenticate(user=user) self.user2 = User.objects.create(username="user2") self.user3 = User.objects.create(username="user3") diff --git a/src/documents/tests/test_barcodes.py b/src/documents/tests/test_barcodes.py index 84abcf2b1..521b87a6d 100644 --- a/src/documents/tests/test_barcodes.py +++ b/src/documents/tests/test_barcodes.py @@ -1,28 +1,45 @@ +from __future__ import annotations + import shutil -from collections.abc import Generator from contextlib import contextmanager from pathlib import Path -from unittest import mock +from typing import TYPE_CHECKING +import pytest +import zxingcpp from django.conf import settings from django.test import TestCase from django.test import override_settings +from rest_framework import status from documents import tasks from documents.barcodes import BarcodePlugin +from documents.barcodes import read_barcode_values 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.models import Document +from documents.models import DocumentBarcode from documents.models import Tag from documents.plugins.base import StopConsumeTaskError from documents.tests.utils import ConsumeTaskMixin -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import DummyProgressManager -from documents.tests.utils import FileSystemAssertsMixin from documents.tests.utils import SampleDirMixin +from paperless.config import BarcodeConfig from paperless.models import ApplicationConfiguration +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.fakes.progress import FakeProgressManager + +if TYPE_CHECKING: + from collections.abc import Callable + from collections.abc import Generator + + from pytest_django.fixtures import Settings + from pytest_mock import MockerFixture + from rest_framework.test import APIClient + + from paperless_testing.dirs import PaperlessDirs class GetReaderPluginMixin: @@ -31,7 +48,7 @@ class GetReaderPluginMixin: reader = BarcodePlugin( ConsumableDocument(DocumentSource.ConsumeFolder, original_file=filepath), DocumentMetadataOverrides(), - DummyProgressManager(filepath.name, None), + FakeProgressManager(filepath.name, None), self.dirs.scratch_dir, "task-id", ) @@ -86,6 +103,7 @@ class TestBarcode( self.assertDictEqual(separator_page_numbers, {1: False}) @override_settings(CONSUMER_ENABLE_ASN_BARCODE=True) + @pytest.mark.usefixtures("fake_progress_manager") def test_asn_barcode_duplicate_in_trash_fails(self) -> None: """ GIVEN: @@ -110,15 +128,14 @@ class TestBarcode( dupe_asn = settings.SCRATCH_DIR / "barcode-39-asn-123-second.pdf" shutil.copy(test_file, dupe_asn) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertRaisesRegex(ConsumerError, r"ASN 123.*trash"): - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=dupe_asn, - ), - None, - ) + with self.assertRaisesRegex(ConsumerError, r"ASN 123.*trash"): + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dupe_asn, + ), + None, + ) @override_settings( CONSUMER_BARCODE_TIFF_SUPPORT=True, @@ -606,6 +623,7 @@ class TestBarcodeNewConsume( TestCase, ): @override_settings(CONSUMER_ENABLE_BARCODES=True) + @pytest.mark.usefixtures("fake_progress_manager") def test_consume_barcode_file(self) -> None: """ GIVEN: @@ -624,34 +642,33 @@ class TestBarcodeNewConsume( overrides = DocumentMetadataOverrides(tag_ids=[1, 2, 9]) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - self.assertEqual( - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=temp_copy, - ), - overrides, + self.assertEqual( + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=temp_copy, ), - {"reason": "Barcode splitting complete!"}, - ) - # 2 new document consume tasks created - self.assertEqual(self.consume_file_mock.call_count, 2) + overrides, + ), + {"reason": "Barcode splitting complete!"}, + ) + # 2 new document consume tasks created + self.assertEqual(self.consume_file_mock.call_count, 2) - self.assertIsNotFile(temp_copy) + self.assertIsNotFile(temp_copy) - # Check the split files exist - # Check the original_path is set - # Check the source is unchanged - # Check the overrides are unchanged - for ( - new_input_doc, - new_doc_overrides, - ) in self.get_all_consume_task_call_args(): - self.assertIsFile(new_input_doc.original_file) - self.assertEqual(new_input_doc.original_path, temp_copy) - self.assertEqual(new_input_doc.source, DocumentSource.ConsumeFolder) - self.assertEqual(overrides, new_doc_overrides) + # Check the split files exist + # Check the original_path is set + # Check the source is unchanged + # Check the overrides are unchanged + for ( + new_input_doc, + new_doc_overrides, + ) in self.get_all_consume_task_call_args(): + self.assertIsFile(new_input_doc.original_file) + self.assertEqual(new_input_doc.original_path, temp_copy) + self.assertEqual(new_input_doc.source, DocumentSource.ConsumeFolder) + self.assertEqual(overrides, new_doc_overrides) class TestAsnBarcode(DirectoriesMixin, SampleDirMixin, GetReaderPluginMixin, TestCase): @@ -660,7 +677,7 @@ class TestAsnBarcode(DirectoriesMixin, SampleDirMixin, GetReaderPluginMixin, Tes reader = BarcodePlugin( ConsumableDocument(DocumentSource.ConsumeFolder, original_file=filepath), DocumentMetadataOverrides(), - DummyProgressManager(filepath.name, None), + FakeProgressManager(filepath.name, None), self.dirs.scratch_dir, "task-id", ) @@ -745,6 +762,7 @@ class TestAsnBarcode(DirectoriesMixin, SampleDirMixin, GetReaderPluginMixin, Tes self.assertEqual(asn, None) @override_settings(CONSUMER_ENABLE_ASN_BARCODE=True) + @pytest.mark.usefixtures("fake_progress_manager") def test_consume_barcode_file_asn_assignment(self) -> None: """ GIVEN: @@ -762,19 +780,18 @@ class TestAsnBarcode(DirectoriesMixin, SampleDirMixin, GetReaderPluginMixin, Tes dst = settings.SCRATCH_DIR / "barcode-39-asn-123.pdf" shutil.copy(test_file, dst) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=dst, - ), - None, - ) + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dst, + ), + None, + ) - document = Document.objects.first() - assert document is not None + document = Document.objects.first() + assert document is not None - self.assertEqual(document.archive_serial_number, 123) + self.assertEqual(document.archive_serial_number, 123) def test_scan_file_for_qrcode_without_upscale(self) -> None: """ @@ -819,7 +836,7 @@ class TestTagBarcode(DirectoriesMixin, SampleDirMixin, GetReaderPluginMixin, Tes reader = BarcodePlugin( ConsumableDocument(DocumentSource.ConsumeFolder, original_file=filepath), DocumentMetadataOverrides(), - DummyProgressManager(filepath.name, None), + FakeProgressManager(filepath.name, None), self.dirs.scratch_dir, "task-id", ) @@ -1024,6 +1041,7 @@ class TestTagBarcode(DirectoriesMixin, SampleDirMixin, GetReaderPluginMixin, Tes CELERY_TASK_ALWAYS_EAGER=True, OCR_MODE="auto", ) + @pytest.mark.usefixtures("fake_progress_manager") def test_consume_barcode_file_tag_split_and_assignment(self) -> None: """ GIVEN: @@ -1042,34 +1060,33 @@ class TestTagBarcode(DirectoriesMixin, SampleDirMixin, GetReaderPluginMixin, Tes dst = settings.SCRATCH_DIR / "split-by-tag-basic.pdf" shutil.copy(test_file, dst) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - result = tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=dst, - ), - None, - ) + result = tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dst, + ), + None, + ) - self.assertEqual(result, {"reason": "Barcode splitting complete!"}) + self.assertEqual(result, {"reason": "Barcode splitting complete!"}) - documents = Document.objects.all().order_by("id") - self.assertEqual(documents.count(), 3) + documents = Document.objects.all().order_by("id") + self.assertEqual(documents.count(), 3) - doc1 = documents[0] - self.assertEqual(doc1.tags.count(), 0) + doc1 = documents[0] + self.assertEqual(doc1.tags.count(), 0) - doc2 = documents[1] - self.assertEqual(doc2.tags.count(), 1) - _tag_1 = doc2.tags.first() - assert _tag_1 is not None - self.assertEqual(_tag_1.name, "invoice") + doc2 = documents[1] + self.assertEqual(doc2.tags.count(), 1) + _tag_1 = doc2.tags.first() + assert _tag_1 is not None + self.assertEqual(_tag_1.name, "invoice") - doc3 = documents[2] - self.assertEqual(doc3.tags.count(), 1) - _tag_2 = doc3.tags.first() - assert _tag_2 is not None - self.assertEqual(_tag_2.name, "receipt") + doc3 = documents[2] + self.assertEqual(doc3.tags.count(), 1) + _tag_2 = doc3.tags.first() + assert _tag_2 is not None + self.assertEqual(_tag_2.name, "receipt") @override_settings( CONSUMER_ENABLE_TAG_BARCODE=True, @@ -1127,3 +1144,301 @@ class TestTagBarcode(DirectoriesMixin, SampleDirMixin, GetReaderPluginMixin, Tes document_list = reader.separate_pages(separator_pages) self.assertEqual(len(document_list), 3) + + +SAMPLE_VALUES = [ + {"page": 1, "value": "javascript:alert(1)", "format": "QRCode"}, + {"page": 2, "value": "https://example.com/invoice/4711", "format": "QRCode"}, +] + + +@pytest.fixture +def samples_dir() -> Path: + return Path(__file__).parent / "samples" + + +@pytest.fixture +def barcode_samples_dir(samples_dir: Path) -> Path: + return samples_dir / "barcodes" + + +@pytest.fixture +def store_barcodes(settings: Settings) -> None: + settings.CONSUMER_STORE_BARCODE_VALUES = True + + +@pytest.fixture +def barcode_reader( + paperless_dirs: PaperlessDirs, +) -> Generator[Callable[[Path], BarcodePlugin], None, None]: + readers: list[BarcodePlugin] = [] + + def make(path: Path) -> BarcodePlugin: + reader = BarcodePlugin( + ConsumableDocument(DocumentSource.ConsumeFolder, original_file=path), + DocumentMetadataOverrides(), + FakeProgressManager(path.name, None), + paperless_dirs.scratch_dir, + "task-id", + ) + reader.setup() + readers.append(reader) + return reader + + yield make + for reader in readers: + reader.cleanup() + + +@pytest.fixture +def consume_sample( + paperless_dirs: PaperlessDirs, + barcode_samples_dir: Path, + fake_progress_manager: type[FakeProgressManager], + settings: Settings, +) -> Callable[..., Document]: + settings.CELERY_TASK_ALWAYS_EAGER = True + settings.OCR_MODE = "auto" + + def consume(name: str, *, root_document_id: int | None = None) -> Document: + dst = paperless_dirs.scratch_dir / name + shutil.copy(barcode_samples_dir / name, dst) + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ApiUpload + if root_document_id + else DocumentSource.ConsumeFolder, + original_file=dst, + root_document_id=root_document_id, + ), + None, + ) + return Document.objects.latest("id") + + return consume + + +def _stored(document: Document) -> list[dict]: + return list(document.barcodes.values("page", "value", "format")) + + +def test_formats_cover_zxing() -> None: + """ + DocumentBarcode.Format matches the concrete formats of zxing-cpp, so a + zxing-cpp update that adds or removes one fails here + """ + members = zxingcpp.BarcodeFormat.__members__ + # skip NONE and the groups like AllLinear, including their aliases + seen = {int(m) for n, m in members.items() if n == "NONE" or n.startswith("All")} + concrete = set() + for name, member in members.items(): + # aliases such as DataBarExpanded come after the name zxing reports + if int(member) not in seen: + seen.add(int(member)) + concrete.add(name) + assert set(DocumentBarcode.Format.values) == concrete + + +@pytest.mark.django_db +class TestBarcodeValues: + @pytest.mark.parametrize( + ("filename", "mime_type", "tiff_support", "expected"), + [ + pytest.param("simple.jpg", "image/jpeg", True, None, id="jpeg"), + pytest.param("simple.tiff", "image/tiff", False, None, id="tiff-off"), + pytest.param("simple.tiff", "image/tiff", True, [], id="tiff-on"), + ], + ) + def test_read_values_file_types( + self, + paperless_dirs: PaperlessDirs, + samples_dir: Path, + settings: Settings, + filename: str, + mime_type: str, + tiff_support: bool, # noqa: FBT001 + expected: list | None, + ) -> None: + """ + Files the scan doesn't support return None, so stored barcodes are + kept instead of being replaced with an empty list + """ + settings.CONSUMER_BARCODE_TIFF_SUPPORT = tiff_support + values = read_barcode_values( + samples_dir / filename, + mime_type, + BarcodeConfig(), + paperless_dirs.scratch_dir, + ) + assert values == expected + + def test_values_detected( + self, + barcode_reader: Callable[[Path], BarcodePlugin], + barcode_samples_dir: Path, + store_barcodes: None, + ) -> None: + reader = barcode_reader(barcode_samples_dir / "barcode-qr-url.pdf") + assert reader.able_to_run + reader.run() + assert reader.metadata.barcodes == SAMPLE_VALUES + + def test_values_disabled( + self, + barcode_reader: Callable[[Path], BarcodePlugin], + barcode_samples_dir: Path, + settings: Settings, + ) -> None: + settings.CONSUMER_ENABLE_ASN_BARCODE = True + reader = barcode_reader(barcode_samples_dir / "barcode-qr-url.pdf") + reader.run() + assert reader.metadata.barcodes is None + + def test_consume_and_reprocess( + self, + consume_sample: Callable[..., Document], + admin_client: APIClient, + store_barcodes: None, + ) -> None: + """ + GIVEN: + - PDF with a QR code on each of its two pages + WHEN: + - File is consumed, the values are lost, and the document is reprocessed + THEN: + - The barcodes are stored, shown in the API and searchable + - Reprocessing reads them again + """ + document = consume_sample("barcode-qr-url.pdf") + assert _stored(document) == SAMPLE_VALUES + + response = admin_client.get(f"/api/documents/{document.pk}/metadata/") + assert response.status_code == status.HTTP_200_OK + assert response.data["barcodes"] == SAMPLE_VALUES + response = admin_client.get(f"/api/documents/{document.pk}/") + assert "barcodes" not in response.data + response = admin_client.get("/api/documents/?query=barcodes:invoice") + assert [x["id"] for x in response.data["results"]] == [document.pk] + response = admin_client.get("/api/documents/?query=invoice") + assert response.data["results"] == [] + + document.barcodes.all().delete() + modified = Document.objects.get(pk=document.pk).modified + tasks.update_document_content_maybe_archive_file(document.pk) + + assert _stored(document) == SAMPLE_VALUES + assert Document.objects.get(pk=document.pk).modified > modified + + @pytest.mark.parametrize( + "read_values", + [ + pytest.param({"side_effect": RuntimeError("broken")}, id="scan-fails"), + pytest.param({"return_value": None}, id="not-scannable"), + ], + ) + def test_reprocess_keeps_values( + self, + consume_sample: Callable[..., Document], + mocker: MockerFixture, + store_barcodes: None, + read_values: dict, + ) -> None: + """ + GIVEN: + - A document with stored barcodes + WHEN: + - It is reprocessed, but the barcodes can't be read + THEN: + - The stored barcodes are kept + """ + document = consume_sample("barcode-qr-url.pdf") + mocker.patch("documents.tasks.read_barcode_values", **read_values) + + tasks.update_document_content_maybe_archive_file(document.pk) + + assert _stored(document) == SAMPLE_VALUES + + def test_reprocess_tiff_support_off_keeps_values( + self, + consume_sample: Callable[..., Document], + settings: Settings, + store_barcodes: None, + ) -> None: + """ + GIVEN: + - A TIFF document with barcodes stored while TIFF support was on + WHEN: + - TIFF support is turned off and the document is reprocessed + THEN: + - The stored barcodes are kept + """ + settings.CONSUMER_BARCODE_TIFF_SUPPORT = True + document = consume_sample("patch-code-t-middle.tiff") + stored = _stored(document) + assert stored + + settings.CONSUMER_BARCODE_TIFF_SUPPORT = False + tasks.update_document_content_maybe_archive_file(document.pk) + + assert _stored(document) == stored + + def test_reprocess_values_disabled( + self, + consume_sample: Callable[..., Document], + settings: Settings, + store_barcodes: None, + ) -> None: + document = consume_sample("barcode-qr-url.pdf") + settings.CONSUMER_STORE_BARCODE_VALUES = False + + assert tasks._read_barcodes_for_reprocess(document) is None + + def test_consume_version_stores_own_values( + self, + consume_sample: Callable[..., Document], + admin_client: APIClient, + store_barcodes: None, + ) -> None: + """ + GIVEN: + - A document with stored barcodes + WHEN: + - A new version with a different barcode is consumed, like after + rotating or removing pages + THEN: + - The version keeps its own barcodes, the original ones are kept + - The metadata and the search use those of the newest version + """ + root = consume_sample("barcode-qr-url.pdf") + version = consume_sample("barcode-128-custom.pdf", root_document_id=root.pk) + assert version.root_document == root + assert _stored(version) == [ + {"page": 1, "value": "CUSTOM BARCODE", "format": "Code128"}, + ] + assert root.barcodes.count() == 2 + assert [x.value for x in root.get_effective_barcodes()] == ["CUSTOM BARCODE"] + + response = admin_client.get(f"/api/documents/{root.pk}/metadata/") + assert [x["value"] for x in response.data["barcodes"]] == ["CUSTOM BARCODE"] + response = admin_client.get('/api/documents/?query=barcodes:"custom barcode"') + assert [x["id"] for x in response.data["results"]] == [root.pk] + response = admin_client.get("/api/documents/?query=barcodes:invoice") + assert response.data["results"] == [] + + def test_consume_version_scan_fails( + self, + consume_sample: Callable[..., Document], + mocker: MockerFixture, + store_barcodes: None, + ) -> None: + """ + A failed scan of a new version is logged and doesn't stop consumption + """ + root = consume_sample("barcode-qr-url.pdf") + mocker.patch( + "documents.consumer.read_barcode_values", + side_effect=RuntimeError("broken"), + ) + version = consume_sample("barcode-128-custom.pdf", root_document_id=root.pk) + assert version.root_document == root + assert not version.barcodes.exists() diff --git a/src/documents/tests/test_bulk_edit.py b/src/documents/tests/test_bulk_edit.py index bfd134516..1b67a320f 100644 --- a/src/documents/tests/test_bulk_edit.py +++ b/src/documents/tests/test_bulk_edit.py @@ -10,7 +10,6 @@ from django.contrib.auth.models import User from django.db import connection from django.test import TestCase from django.test.utils import CaptureQueriesContext -from guardian.shortcuts import assign_perm from guardian.shortcuts import get_groups_with_perms from guardian.shortcuts import get_users_with_perms @@ -23,7 +22,8 @@ from documents.models import DocumentType from documents.models import StoragePath from documents.models import Tag from documents.permissions import set_permissions_for_objects -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.permissions import grant_object class TestBulkEdit(DirectoriesMixin, TestCase): @@ -440,7 +440,7 @@ class TestBulkEdit(DirectoriesMixin, TestCase): def test_set_permissions(self, m) -> None: doc_ids = [self.doc1.id, self.doc2.id, self.doc3.id] - assign_perm("view_document", self.group1, self.doc1) + grant_object(self.group1, self.doc1, "view_document") permissions = { "view": { @@ -482,8 +482,8 @@ class TestBulkEdit(DirectoriesMixin, TestCase): self.doc1.owner = self.user1 self.doc1.save() - assign_perm("view_document", self.user1, self.doc1) - assign_perm("view_document", self.group1, self.doc1) + grant_object(self.user1, self.doc1, "view_document") + grant_object(self.group1, self.doc1, "view_document") permissions = { "view": { @@ -609,7 +609,7 @@ class TestBulkEdit(DirectoriesMixin, TestCase): self.doc1.owner = self.user1 self.doc1.save() self.user1.groups.add(self.group1) - assign_perm("view_document", self.group1, self.doc1) + grant_object(self.group1, self.doc1, "view_document") bulk_edit.set_permissions( [self.doc1.id], diff --git a/src/documents/tests/test_classifier.py b/src/documents/tests/test_classifier.py index 69f78ca01..ae8921ad6 100644 --- a/src/documents/tests/test_classifier.py +++ b/src/documents/tests/test_classifier.py @@ -1,5 +1,4 @@ import pickle -import re import warnings from datetime import UTC from datetime import datetime @@ -28,21 +27,13 @@ from documents.models import DocumentType from documents.models import MatchingModel from documents.models import StoragePath from documents.models import Tag -from documents.tests.factories import DocumentFactory -from documents.tests.factories import TagFactory -from documents.tests.utils import DirectoriesMixin +from documents.tests.helpers import dummy_preprocess from paperless.settings import CLASSIFIER_LANGUAGES from paperless.signed_pickle import HMAC_SIZE from paperless.signed_pickle import signed_pickle_dumps - - -def dummy_preprocess(content: str) -> str: - """ - Simpler, faster pre-processing for testing purposes - """ - content = content.lower().strip() - content = re.sub(r"\s+", " ", content) - return content +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import TagFactory class TestClassifier(DirectoriesMixin, TestCase): diff --git a/src/documents/tests/test_consumer.py b/src/documents/tests/test_consumer.py index 7c98f3552..a4e48379f 100644 --- a/src/documents/tests/test_consumer.py +++ b/src/documents/tests/test_consumer.py @@ -30,11 +30,12 @@ from documents.models import Tag from documents.parsers import ParseError from documents.plugins.helpers import ProgressStatusOptions from documents.tasks import sanity_check -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import DummyProgressManager -from documents.tests.utils import FileSystemAssertsMixin from documents.tests.utils import GetConsumerMixin from paperless_mail.models import MailRule +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.fakes.progress import FakeProgressManager class _BaseNewStyleParser: @@ -769,14 +770,14 @@ class TestConsumer( original_modified = timezone.now() - datetime.timedelta(days=1) Document.objects.filter(pk=root_doc.pk).update(modified=original_modified) - actor = User.objects.create_user( + actor = UserFactory( username="actor", email="actor@example.com", password="password", ) version_file = self.get_test_file2() - status = DummyProgressManager(version_file.name, None) + status = FakeProgressManager(version_file.name, None) overrides = DocumentMetadataOverrides( version_label="v2", actor_id=actor.pk, @@ -839,7 +840,7 @@ class TestConsumer( assert root_doc is not None version_file = self.get_test_file2() - status = DummyProgressManager(version_file.name, None) + status = FakeProgressManager(version_file.name, None) overrides = DocumentMetadataOverrides( filename="valid_pdf_version-upload", actor_id=999999, @@ -896,7 +897,7 @@ class TestConsumer( assert root_doc is not None def consume_version(version_file: Path) -> Document: - status = DummyProgressManager(version_file.name, None) + status = FakeProgressManager(version_file.name, None) overrides = DocumentMetadataOverrides() doc = ConsumableDocument( DocumentSource.ApiUpload, diff --git a/src/documents/tests/test_document_list_effective_content_annotation.py b/src/documents/tests/test_document_list_effective_content_annotation.py index 717ee950b..4656bff5f 100644 --- a/src/documents/tests/test_document_list_effective_content_annotation.py +++ b/src/documents/tests/test_document_list_effective_content_annotation.py @@ -9,11 +9,11 @@ from django.test.utils import CaptureQueriesContext from rest_framework import status from documents.models import Document -from documents.tests.factories import DocumentFactory from documents.versioning import LATEST_VERSION_CONTENT_PREFETCH_ATTR from documents.versioning import has_prefetched_effective_content from documents.versioning import latest_version_content_prefetch from documents.views import DocumentViewSet +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from rest_framework.test import APIClient diff --git a/src/documents/tests/test_double_sided.py b/src/documents/tests/test_double_sided.py index 1189512df..7ea806e93 100644 --- a/src/documents/tests/test_double_sided.py +++ b/src/documents/tests/test_double_sided.py @@ -2,8 +2,8 @@ import datetime as dt import os import shutil from pathlib import Path -from unittest import mock +import pytest from django.test import TestCase from django.test import override_settings from pdfminer.high_level import extract_text @@ -15,22 +15,26 @@ from documents.data_models import ConsumableDocument from documents.data_models import DocumentSource from documents.double_sided import STAGING_FILE_NAME from documents.double_sided import TIMEOUT_MINUTES -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import DummyProgressManager -from documents.tests.utils import FileSystemAssertsMixin +from documents.tests.utils import SampleDirMixin +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin +@pytest.mark.usefixtures("fake_progress_manager") @override_settings( CONSUMER_RECURSIVE=True, CONSUMER_ENABLE_COLLATE_DOUBLE_SIDED=True, ) -class TestDoubleSided(DirectoriesMixin, FileSystemAssertsMixin, TestCase): - SAMPLE_DIR = Path(__file__).parent / "samples" - +class TestDoubleSided( + DirectoriesMixin, + FileSystemAssertsMixin, + SampleDirMixin, + TestCase, +): def setUp(self) -> None: super().setUp() - self.dirs.double_sided_dir = self.dirs.consumption_dir / "double-sided" - self.dirs.double_sided_dir.mkdir() + self.double_sided_dir = self.dirs.consumption_dir / "double-sided" + self.double_sided_dir.mkdir() self.staging_file = self.dirs.scratch_dir / STAGING_FILE_NAME def consume_file(self, srcname, dstname: str | Path = "foo.pdf"): @@ -39,20 +43,16 @@ class TestDoubleSided(DirectoriesMixin, FileSystemAssertsMixin, TestCase): destination file does not exist afterwards """ src = self.SAMPLE_DIR / srcname - dst = self.dirs.double_sided_dir / dstname + dst = self.double_sided_dir / dstname dst.parent.mkdir(parents=True, exist_ok=True) shutil.copy(src, dst) - with mock.patch( - "documents.tasks.ProgressManager", - DummyProgressManager, - ): - msg = tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=dst, - ), - None, - ) + msg = tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=dst, + ), + None, + ) self.assertIsNotFile(dst) return msg @@ -214,31 +214,41 @@ class TestDoubleSided(DirectoriesMixin, FileSystemAssertsMixin, TestCase): self.assertIsNotFile(self.staging_file) self.assertIsInstance(msg.get("document_id"), int) - def test_subdirectory_upload(self) -> None: + def test_consume_double_sided_in_nested_dir(self) -> None: """ GIVEN: - A staging file exists WHEN: - - A file gets uploaded into foo/bar/double-sided - or double-sided/foo/bar + - A file is uploaded into foo/bar/double-sided THEN: - - The collated file gets put into foo/bar + - The collated file is placed into foo/bar """ - # TODO: parameterize this instead - for path in [ - Path("foo") / "bar" / "double-sided", - Path("double-sided") / "foo" / "bar", - ]: - with self.subTest(path=str(path)): - # Ensure we get fresh directories for each run - self.tearDown() - self.setUp() + self.create_staging_file() + self.consume_file( + "double-sided-odd.pdf", + Path("foo") / "bar" / "double-sided" / "foo.pdf", + ) + self.assertIsFile( + self.dirs.consumption_dir / "foo" / "bar" / "foo-collated.pdf", + ) - self.create_staging_file() - self.consume_file("double-sided-odd.pdf", Path(path) / "foo.pdf") - self.assertIsFile( - self.dirs.consumption_dir / "foo" / "bar" / "foo-collated.pdf", - ) + def test_consume_double_sided_with_nested_subdir(self) -> None: + """ + GIVEN: + - A staging file exists + WHEN: + - A file is uploaded into double-sided/foo/bar + THEN: + - The collated file is placed into foo/bar + """ + self.create_staging_file() + self.consume_file( + "double-sided-odd.pdf", + Path("double-sided") / "foo" / "bar" / "foo.pdf", + ) + self.assertIsFile( + self.dirs.consumption_dir / "foo" / "bar" / "foo-collated.pdf", + ) @override_settings(CONSUMER_ENABLE_COLLATE_DOUBLE_SIDED=False) def test_disabled_double_sided_dir_upload(self) -> None: diff --git a/src/documents/tests/test_file_handling.py b/src/documents/tests/test_file_handling.py index 081ffdcbd..46c54f98f 100644 --- a/src/documents/tests/test_file_handling.py +++ b/src/documents/tests/test_file_handling.py @@ -8,7 +8,6 @@ from unittest import mock import pytest from auditlog.context import disable_auditlog from django.conf import settings -from django.contrib.auth.models import User from django.db import DatabaseError from django.db import connection from django.test import TestCase @@ -30,9 +29,10 @@ from documents.models import DocumentType from documents.models import StoragePath from documents.serialisers import DocumentSerializer from documents.tasks import empty_trash -from documents.tests.factories import DocumentFactory -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import FileSystemAssertsMixin +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import UserFactory class TestFileHandling(DirectoriesMixin, FileSystemAssertsMixin, TestCase): @@ -1323,7 +1323,7 @@ class TestFilenameGeneration(DirectoriesMixin, TestCase): - Document without owner returns "none" """ - u1 = User.objects.create_user("user1") + u1 = UserFactory(username="user1") owned_doc = Document.objects.create( title="The Title", diff --git a/src/documents/tests/test_filepath_nfc.py b/src/documents/tests/test_filepath_nfc.py index e1d3ef9a8..0647d737d 100644 --- a/src/documents/tests/test_filepath_nfc.py +++ b/src/documents/tests/test_filepath_nfc.py @@ -13,10 +13,10 @@ import pytest from documents.file_handling import generate_filename from documents.models import CustomField from documents.models import CustomFieldInstance -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory @pytest.mark.django_db diff --git a/src/documents/tests/test_management.py b/src/documents/tests/test_management.py index aa6befb9b..a5a2e6233 100644 --- a/src/documents/tests/test_management.py +++ b/src/documents/tests/test_management.py @@ -20,8 +20,8 @@ if TYPE_CHECKING: from documents.file_handling import generate_filename from documents.models import Document from documents.tasks import update_document_content_maybe_archive_file -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import FileSystemAssertsMixin +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin sample_file: Path = Path(__file__).parent / "samples" / "simple.pdf" diff --git a/src/documents/tests/test_management_exporter.py b/src/documents/tests/test_management_exporter.py index 2ffded5e6..facea8ca2 100644 --- a/src/documents/tests/test_management_exporter.py +++ b/src/documents/tests/test_management_exporter.py @@ -26,13 +26,13 @@ from django.test import override_settings from django.utils import timezone from guardian.models import GroupObjectPermission from guardian.models import UserObjectPermission -from guardian.shortcuts import assign_perm from documents.management.commands import document_exporter from documents.models import Correspondent from documents.models import CustomField from documents.models import CustomFieldInstance from documents.models import Document +from documents.models import DocumentBarcode from documents.models import DocumentType from documents.models import Note from documents.models import ShareLink @@ -46,11 +46,13 @@ from documents.models import WorkflowTrigger from documents.sanity_checker import check_sanity from documents.settings import EXPORTER_FILE_NAME from documents.settings import EXPORTER_SHARE_LINK_BUNDLE_NAME -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import FileSystemAssertsMixin from documents.tests.utils import SampleDirMixin -from documents.tests.utils import paperless_environment from paperless_mail.models import MailAccount +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.dirs import paperless_environment +from paperless_testing.factories import DocumentBarcodeFactory +from paperless_testing.permissions import grant_object @pytest.mark.management @@ -105,8 +107,8 @@ class TestExportImport( user=self.user, ) - assign_perm("view_document", self.user2, self.d2) - assign_perm("view_document", self.group1, self.d3) + grant_object(self.user2, self.d2, "view_document") + grant_object(self.group1, self.d3, "view_document") self.t1 = Tag.objects.create(name="t") self.dt1 = DocumentType.objects.create(name="dt") @@ -677,12 +679,13 @@ class TestExportImport( THEN: - Error is raised """ - args = ["document_exporter", "/tmp/foo/bar"] + with tempfile.TemporaryDirectory() as tmp_dir: + args = ["document_exporter", str(Path(tmp_dir) / "does-not-exist")] - with self.assertRaises(CommandError) as e: - call_command(*args, skip_checks=True) + with self.assertRaises(CommandError) as e: + call_command(*args, skip_checks=True) - self.assertEqual("That path doesn't exist", str(e.exception)) + self.assertEqual("That path doesn't exist", str(e.exception)) def test_export_target_exists_but_is_file(self) -> None: """ @@ -855,6 +858,37 @@ class TestExportImport( self.assertEqual(Document.objects.count(), 4) self.assertEqual(CustomFieldInstance.objects.count(), 1) + def _export_import_barcodes(self, *, split_manifest: bool) -> None: + shutil.rmtree(Path(self.dirs.media_dir) / "documents") + shutil.copytree( + Path(__file__).parent / "samples" / "documents", + Path(self.dirs.media_dir) / "documents", + ) + DocumentBarcodeFactory(document=self.d1, value="https://example.com") + DocumentBarcodeFactory(document=self.d2, page=2, value="DE8937") + + self._do_export(split_manifest=split_manifest) + + with paperless_environment(): + Document.objects.all().delete() + self.assertEqual(DocumentBarcode.objects.count(), 0) + call_command( + "document_importer", + "--no-progress-bar", + self.target, + skip_checks=True, + ) + self.assertEqual( + set(DocumentBarcode.objects.values_list("document", "page", "value")), + {(self.d1.pk, 1, "https://example.com"), (self.d2.pk, 2, "DE8937")}, + ) + + def test_export_import_barcodes(self) -> None: + self._export_import_barcodes(split_manifest=False) + + def test_export_import_barcodes_split_manifest(self) -> None: + self._export_import_barcodes(split_manifest=True) + def test_folder_prefix(self) -> None: """ GIVEN: diff --git a/src/documents/tests/test_management_fuzzy.py b/src/documents/tests/test_management_fuzzy.py index a5f98a2ec..fdfe459c7 100644 --- a/src/documents/tests/test_management_fuzzy.py +++ b/src/documents/tests/test_management_fuzzy.py @@ -8,7 +8,7 @@ from django.core.management import call_command from django.test import TestCase from documents.models import Document -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import DocumentFactory @pytest.mark.management @@ -123,14 +123,14 @@ class TestFuzzyMatchCommand(TestCase): - Output contains clickable links to the documents instead of titles """ # Content similarity is 86.667 - Document.objects.create( + doc1 = Document.objects.create( checksum="BEEFCAFE", title="A", content="first document scanned by bob", mime_type="application/pdf", filename="test.pdf", ) - Document.objects.create( + doc2 = Document.objects.create( checksum="DEADBEAF", title="A", content="first document scanned by alice", @@ -145,8 +145,8 @@ class TestFuzzyMatchCommand(TestCase): "http://localhost:8000", ) self.assertIn("Found 1 matching pair(s)", stdout) - self.assertIn("http://localhost:8000/documents/1/details", stdout) - self.assertIn("http://localhost:8000/documents/2/details", stdout) + self.assertIn(f"http://localhost:8000/documents/{doc1.pk}/details", stdout) + self.assertIn(f"http://localhost:8000/documents/{doc2.pk}/details", stdout) def test_with_3_matches(self) -> None: """ @@ -198,14 +198,14 @@ class TestFuzzyMatchCommand(TestCase): - Documents 1 and 2 remain """ # Content similarity is 86.667 - Document.objects.create( + doc1 = Document.objects.create( checksum="BEEFCAFE", title="A", content="first document scanned by bob", mime_type="application/pdf", filename="test.pdf", ) - Document.objects.create( + doc2 = Document.objects.create( checksum="DEADBEAF", title="A", content="second document scanned by alice", @@ -235,8 +235,8 @@ class TestFuzzyMatchCommand(TestCase): self.assertIn("Deleting 1 document(s)", stdout) self.assertEqual(Document.objects.count(), 2) - self.assertIsNotNone(Document.objects.get(pk=1)) - self.assertIsNotNone(Document.objects.get(pk=2)) + self.assertIsNotNone(Document.objects.get(pk=doc1.pk)) + self.assertIsNotNone(Document.objects.get(pk=doc2.pk)) def test_document_deletion_cancelled(self) -> None: """ diff --git a/src/documents/tests/test_management_importer.py b/src/documents/tests/test_management_importer.py index bd74e7a16..4f64fe137 100644 --- a/src/documents/tests/test_management_importer.py +++ b/src/documents/tests/test_management_importer.py @@ -15,9 +15,9 @@ from documents.management.commands.document_importer import _deserialize_record from documents.models import Document from documents.settings import EXPORTER_ARCHIVE_NAME from documents.settings import EXPORTER_FILE_NAME -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import FileSystemAssertsMixin from documents.tests.utils import SampleDirMixin +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin @pytest.mark.management diff --git a/src/documents/tests/test_management_retagger.py b/src/documents/tests/test_management_retagger.py index 605068038..d909946a8 100644 --- a/src/documents/tests/test_management_retagger.py +++ b/src/documents/tests/test_management_retagger.py @@ -14,12 +14,12 @@ from documents.models import DocumentType from documents.models import MatchingModel from documents.models import StoragePath from documents.models import Tag -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory # --------------------------------------------------------------------------- # Module-level type aliases diff --git a/src/documents/tests/test_management_superuser.py b/src/documents/tests/test_management_superuser.py index f2741ba53..2c6f99abe 100644 --- a/src/documents/tests/test_management_superuser.py +++ b/src/documents/tests/test_management_superuser.py @@ -7,14 +7,14 @@ from django.contrib.auth.models import User from django.core.management import call_command from django.test import TestCase -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin @pytest.mark.management class TestManageSuperUser(DirectoriesMixin, TestCase): def call_command(self, environ): out = StringIO() - with mock.patch.dict(os.environ, environ): + with mock.patch.dict(os.environ, environ, clear=True): call_command( "manage_superuser", "--no-color", diff --git a/src/documents/tests/test_management_thumbnails.py b/src/documents/tests/test_management_thumbnails.py index 0b016f0cd..4da0caf5a 100644 --- a/src/documents/tests/test_management_thumbnails.py +++ b/src/documents/tests/test_management_thumbnails.py @@ -9,8 +9,8 @@ from django.test import TestCase from documents.management.commands.document_thumbnails import _process_document from documents.models import Document from documents.parsers import get_default_thumbnail -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import FileSystemAssertsMixin +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin @pytest.mark.management diff --git a/src/documents/tests/test_matchables.py b/src/documents/tests/test_matchables.py index 9ac406787..3ff6fd335 100644 --- a/src/documents/tests/test_matchables.py +++ b/src/documents/tests/test_matchables.py @@ -7,10 +7,10 @@ from documents import matching from documents.models import Document from documents.models import MatchingModel from documents.signals import document_consumption_finished -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import TagFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import TagFactory @pytest.fixture( diff --git a/src/documents/tests/test_merge_documents_as_versions.py b/src/documents/tests/test_merge_documents_as_versions.py index 8b9a7bf35..bbe4b04cc 100644 --- a/src/documents/tests/test_merge_documents_as_versions.py +++ b/src/documents/tests/test_merge_documents_as_versions.py @@ -2,8 +2,6 @@ import json from unittest import mock from auditlog.models import LogEntry -from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType from django.test import TestCase from rest_framework import status @@ -12,6 +10,8 @@ from rest_framework.test import APITestCase from documents.bulk_edit import merge_as_versions from documents.models import Document from documents.serialisers import MergeDocumentsAsVersionsSerializer +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global class TestMergeDocumentsAsVersionsSerializer(TestCase): @@ -294,7 +294,7 @@ class TestMergeDocumentsAsVersions(TestCase): @mock.patch("documents.bulk_edit.bulk_update_documents.apply_async") @mock.patch("documents.search.get_backend") def test_writes_audit_log_entry(self, *_mocks) -> None: - user = User.objects.create_user(username="merger") + user = UserFactory(username="merger") root = Document.objects.create(checksum="A", title="Root") source = Document.objects.create(checksum="B", title="Source") LogEntry.objects.all().delete() @@ -335,12 +335,8 @@ class TestMergeDocumentsAsVersions(TestCase): class TestMergeDocumentsAsVersionsAPI(APITestCase): def setUp(self) -> None: - self.user = User.objects.create_user(username="user") - self.user.user_permissions.add( - Permission.objects.get(codename="change_document"), - Permission.objects.get(codename="view_document"), - Permission.objects.get(codename="delete_document"), - ) + self.user = UserFactory(username="user") + grant_global(self.user, "change_document", "view_document", "delete_document") self.doc1 = Document.objects.create( checksum="A", title="A", @@ -382,7 +378,7 @@ class TestMergeDocumentsAsVersionsAPI(APITestCase): @mock.patch("documents.views.bulk_edit.merge_as_versions") def test_requires_change_permission(self, merge_mock) -> None: merge_mock.__name__ = "merge_as_versions" - user = User.objects.create_user(username="no-change") + user = UserFactory(username="no-change") self.doc1.owner = user self.doc1.save() self.doc2.owner = user @@ -405,11 +401,8 @@ class TestMergeDocumentsAsVersionsAPI(APITestCase): def test_requires_delete_permission(self, merge_mock) -> None: merge_mock.__name__ = "merge_as_versions" # Owns them and may change them, but may not make them stop being documents - user = User.objects.create_user(username="no-delete") - user.user_permissions.add( - Permission.objects.get(codename="change_document"), - Permission.objects.get(codename="view_document"), - ) + user = UserFactory(username="no-delete") + grant_global(user, "change_document", "view_document") for doc in (self.doc1, self.doc2): doc.owner = user doc.save() diff --git a/src/documents/tests/test_migration_saved_view_visibility.py b/src/documents/tests/test_migration_saved_view_visibility.py index c4996761a..c46a8c8e0 100644 --- a/src/documents/tests/test_migration_saved_view_visibility.py +++ b/src/documents/tests/test_migration_saved_view_visibility.py @@ -1,4 +1,4 @@ -from documents.tests.utils import TestMigrations +from paperless_testing.migrations import TestMigrations SAVED_VIEWS_KEY = "saved_views" DASHBOARD_VIEWS_VISIBLE_IDS_KEY = "dashboard_views_visible_ids" diff --git a/src/documents/tests/test_migration_sha256_checksums.py b/src/documents/tests/test_migration_sha256_checksums.py index 4a53b724c..7063d96bd 100644 --- a/src/documents/tests/test_migration_sha256_checksums.py +++ b/src/documents/tests/test_migration_sha256_checksums.py @@ -7,7 +7,7 @@ from django.conf import settings from django.db import connection from django.test import override_settings -from documents.tests.utils import TestMigrations +from paperless_testing.migrations import TestMigrations def _sha256(data: bytes) -> str: diff --git a/src/documents/tests/test_migration_share_link_bundle.py b/src/documents/tests/test_migration_share_link_bundle.py index 1d56469ca..e5eaefda3 100644 --- a/src/documents/tests/test_migration_share_link_bundle.py +++ b/src/documents/tests/test_migration_share_link_bundle.py @@ -1,4 +1,4 @@ -from documents.tests.utils import TestMigrations +from paperless_testing.migrations import TestMigrations class TestMigrateShareLinkBundlePermissions(TestMigrations): diff --git a/src/documents/tests/test_models.py b/src/documents/tests/test_models.py index 4aa28cfdc..44440be29 100644 --- a/src/documents/tests/test_models.py +++ b/src/documents/tests/test_models.py @@ -2,8 +2,8 @@ import pytest from documents.models import Correspondent from documents.models import Document -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory @pytest.mark.django_db diff --git a/src/documents/tests/test_permission_filtering_security.py b/src/documents/tests/test_permission_filtering_security.py index d8cdc98aa..f48095d48 100644 --- a/src/documents/tests/test_permission_filtering_security.py +++ b/src/documents/tests/test_permission_filtering_security.py @@ -1,15 +1,13 @@ from __future__ import annotations from http import HTTPStatus +from typing import TYPE_CHECKING from unittest.mock import patch import pytest from django.contrib.auth.models import AnonymousUser 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 guardian.shortcuts import assign_perm from rest_framework.test import APIClient from documents.matching import match_correspondents @@ -24,11 +22,17 @@ from documents.permissions import permitted_document_ids from documents.permissions import permitted_object_ids from documents.permissions import restrict_queryset_to_visible from documents.serialisers import _get_viewable_duplicates -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object + +if TYPE_CHECKING: + from paperless_testing.dirs import PaperlessDirs def assert_visible_document_ids(actual_ids, *, expected_visible, expected_hidden): @@ -47,8 +51,8 @@ def assert_visible_document_ids(actual_ids, *, expected_visible, expected_hidden @pytest.mark.django_db class TestPermittedDocumentIdsSecurity: def test_owner_sees_own_document(self): - user = User.objects.create_user(username="alice") - stranger = User.objects.create_user(username="mallory") + user = UserFactory(username="alice") + stranger = UserFactory(username="mallory") owned = DocumentFactory(owner=user) strangers_doc = DocumentFactory(owner=stranger) @@ -61,7 +65,7 @@ class TestPermittedDocumentIdsSecurity: ) def test_unowned_document_visible_to_everyone(self): - user = User.objects.create_user(username="alice") + user = UserFactory(username="alice") unowned = DocumentFactory(owner=None) assert_visible_document_ids( @@ -71,12 +75,12 @@ class TestPermittedDocumentIdsSecurity: ) def test_explicit_user_permission_grants_visibility(self): - grantee = User.objects.create_user(username="alice") - stranger = User.objects.create_user(username="mallory") - owner = User.objects.create_user(username="owner") + grantee = UserFactory(username="alice") + stranger = UserFactory(username="mallory") + owner = UserFactory(username="owner") shared = DocumentFactory(owner=owner) not_shared = DocumentFactory(owner=owner) - assign_perm("view_document", grantee, shared) + grant_object(grantee, shared, "view_document") assert_visible_document_ids( permitted_document_ids(grantee), @@ -90,13 +94,13 @@ class TestPermittedDocumentIdsSecurity: ) def test_explicit_group_permission_grants_visibility_to_members_only(self): - owner = User.objects.create_user(username="owner") - member = User.objects.create_user(username="member") - non_member = User.objects.create_user(username="non_member") + owner = UserFactory(username="owner") + member = UserFactory(username="member") + non_member = UserFactory(username="non_member") group = Group.objects.create(name="finance") member.groups.add(group) shared = DocumentFactory(owner=owner) - assign_perm("view_document", group, shared) + grant_object(group, shared, "view_document") assert_visible_document_ids( permitted_document_ids(member), @@ -110,7 +114,7 @@ class TestPermittedDocumentIdsSecurity: ) def test_soft_deleted_document_excluded_by_default(self): - owner = User.objects.create_user(username="owner") + owner = UserFactory(username="owner") doc = DocumentFactory(owner=owner) doc.delete() # soft delete doc.refresh_from_db() @@ -126,8 +130,8 @@ class TestPermittedDocumentIdsSecurity: ) def test_superuser_sees_everything_including_no_perm_documents(self): - superuser = User.objects.create_superuser(username="root") - owner = User.objects.create_user(username="owner") + superuser = UserFactory(username="root", superuser=True) + owner = UserFactory(username="owner") doc = DocumentFactory(owner=owner) assert_visible_document_ids( @@ -137,7 +141,7 @@ class TestPermittedDocumentIdsSecurity: ) def test_anonymous_user_sees_only_unowned_documents(self): - owner = User.objects.create_user(username="owner") + owner = UserFactory(username="owner") owned = DocumentFactory(owner=owner) unowned = DocumentFactory(owner=None) @@ -151,7 +155,7 @@ class TestPermittedDocumentIdsSecurity: @pytest.mark.django_db class TestPermittedDocumentIdsIncludeDeleted: def test_include_deleted_true_reveals_soft_deleted_owned_document(self): - owner = User.objects.create_user(username="owner") + owner = UserFactory(username="owner") doc = DocumentFactory(owner=owner) doc.delete() @@ -162,8 +166,8 @@ class TestPermittedDocumentIdsIncludeDeleted: ) def test_include_deleted_true_still_respects_permission_boundary(self): - owner = User.objects.create_user(username="owner") - stranger = User.objects.create_user(username="mallory") + owner = UserFactory(username="owner") + stranger = UserFactory(username="mallory") doc = DocumentFactory(owner=owner) doc.delete() @@ -191,14 +195,12 @@ class TestAiChatAllDocumentsPermissionBoundary: def test_chat_all_documents_excludes_unshared_document(self, mock_stream_chat): mock_stream_chat.return_value = iter([b"data"]) - owner = User.objects.create_user(username="owner") - asker = User.objects.create_user(username="asker") - asker.user_permissions.add( - *Permission.objects.filter(codename="view_document"), - ) + owner = UserFactory(username="owner") + asker = UserFactory(username="asker") + grant_global(asker, "view_document") shared = DocumentFactory(owner=owner) not_shared = DocumentFactory(owner=owner) - assign_perm("view_document", asker, shared) + grant_object(asker, shared, "view_document") client = APIClient() client.force_authenticate(user=asker) @@ -219,13 +221,13 @@ class TestAiChatAllDocumentsPermissionBoundary: @pytest.mark.django_db class TestDuplicateDocumentsPermissionBoundary: def test_get_viewable_duplicates_includes_soft_deleted_but_respects_perms(self): - owner = User.objects.create_user(username="owner") - stranger = User.objects.create_user(username="mallory") + owner = UserFactory(username="owner") + stranger = UserFactory(username="mallory") original = DocumentFactory(owner=owner, checksum="dupe-checksum") dup_visible = DocumentFactory(owner=owner, checksum="dupe-checksum") dup_hidden = DocumentFactory(owner=owner, checksum="dupe-checksum") dup_hidden.delete() # soft delete, should still be found (include_deleted=True) - assign_perm("view_document", stranger, dup_visible) + grant_object(stranger, dup_visible, "view_document") result_owner = _get_viewable_duplicates(original, owner) assert {d.pk for d in result_owner} == {dup_visible.pk, dup_hidden.pk} @@ -237,13 +239,13 @@ class TestDuplicateDocumentsPermissionBoundary: @pytest.mark.django_db class TestPermittedDocumentIdsArbitraryPermission: def test_change_document_permission_is_distinct_from_view(self): - owner = User.objects.create_user(username="owner") - viewer_only = User.objects.create_user(username="viewer") - editor = User.objects.create_user(username="editor") + owner = UserFactory(username="owner") + viewer_only = UserFactory(username="viewer") + editor = UserFactory(username="editor") doc = DocumentFactory(owner=owner) - assign_perm("view_document", viewer_only, doc) - assign_perm("change_document", editor, doc) - assign_perm("view_document", editor, doc) + grant_object(viewer_only, doc, "view_document") + grant_object(editor, doc, "change_document") + grant_object(editor, doc, "view_document") assert_visible_document_ids( permitted_document_ids(editor, perm="change_document"), @@ -257,10 +259,10 @@ class TestPermittedDocumentIdsArbitraryPermission: ) def test_qualified_permission_string_is_normalized_to_codename(self): - owner = User.objects.create_user(username="owner") - editor = User.objects.create_user(username="editor") + owner = UserFactory(username="owner") + editor = UserFactory(username="editor") doc = DocumentFactory(owner=owner) - assign_perm("change_document", editor, doc) + grant_object(editor, doc, "change_document") assert_visible_document_ids( permitted_document_ids(editor, perm="documents.change_document"), @@ -269,11 +271,11 @@ class TestPermittedDocumentIdsArbitraryPermission: ) def test_delete_permission_with_include_deleted_for_trash_restore(self): - owner = User.objects.create_user(username="owner") - stranger = User.objects.create_user(username="mallory") - view_only = User.objects.create_user(username="viewer") + owner = UserFactory(username="owner") + stranger = UserFactory(username="mallory") + view_only = UserFactory(username="viewer") doc = DocumentFactory(owner=owner) - assign_perm("view_document", view_only, doc) + grant_object(view_only, doc, "view_document") doc.delete() assert_visible_document_ids( @@ -307,11 +309,9 @@ class TestEmailDocumentPermissionBoundary: self, rest_api_client, ): - owner = User.objects.create_user(username="owner") - requester = User.objects.create_user(username="requester") - requester.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + owner = UserFactory(username="owner") + requester = UserFactory(username="requester") + grant_global(requester, "view_document") rest_api_client.force_authenticate(user=requester) hidden = DocumentFactory(owner=owner) @@ -339,19 +339,17 @@ class TestBulkEditChangePermissionBoundary: # permitted document must not be partially applied just because it # was bundled with a forbidden one, proving the endpoint checks # every document in the batch rather than only the first/last. - owner = User.objects.create_user(username="owner") - requester = User.objects.create_user(username="requester") + owner = UserFactory(username="owner") + requester = UserFactory(username="requester") # grant the global change_document permission so the object-level # check (not the global has_perm check) is what's under test - requester.user_permissions.add( - Permission.objects.get(codename="change_document"), - ) + grant_global(requester, "change_document") rest_api_client.force_authenticate(user=requester) changeable = DocumentFactory(owner=owner) - assign_perm("view_document", requester, changeable) - assign_perm("change_document", requester, changeable) # fully permitted + grant_object(requester, changeable, "view_document") + grant_object(requester, changeable, "change_document") # fully permitted target = DocumentFactory(owner=owner) - assign_perm("view_document", requester, target) # view only, NOT change + grant_object(requester, target, "view_document") # view only, NOT change response = rest_api_client.post( "/api/documents/bulk_edit/", @@ -369,15 +367,14 @@ class TestBulkEditChangePermissionBoundary: class TestBulkDownloadPermissionChecksRootDocument: def test_download_requires_global_view_permission( self, - rest_api_client, - paperless_dirs, - _media_settings, - ): - owner = User.objects.create_user(username="owner") - requester = User.objects.create_user(username="requester") + rest_api_client: APIClient, + paperless_dirs: PaperlessDirs, + ) -> None: + owner = UserFactory(username="owner") + requester = UserFactory(username="requester") root = DocumentFactory(owner=owner) root.source_path.write_bytes(b"%PDF-1.4 test") - assign_perm("view_document", requester, root) + grant_object(requester, root, "view_document") rest_api_client.force_authenticate(user=requester) response = rest_api_client.post( @@ -390,21 +387,18 @@ class TestBulkDownloadPermissionChecksRootDocument: def test_permission_checked_on_root_not_on_version( self, - rest_api_client, - paperless_dirs, - _media_settings, - ): - owner = User.objects.create_user(username="owner") - requester = User.objects.create_user(username="requester") - requester.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + rest_api_client: APIClient, + paperless_dirs: PaperlessDirs, + ) -> None: + owner = UserFactory(username="owner") + requester = UserFactory(username="requester") + grant_global(requester, "view_document") rest_api_client.force_authenticate(user=requester) root = DocumentFactory(owner=owner) # a version of root that the requester has NOT been individually granted version = DocumentFactory(owner=owner, root_document=root, version_index=1) version.source_path.write_bytes(b"%PDF-1.4 test") - assign_perm("view_document", requester, root) # granted on ROOT only + grant_object(requester, root, "view_document") # granted on ROOT only response = rest_api_client.post( "/api/documents/bulk_download/", @@ -422,11 +416,9 @@ class TestBulkDownloadPermissionChecksRootDocument: # root-or-version bug; a user with no grant at all (the old # `stranger` case) can't tell the two apart, since they're denied # either way. - version_only_grantee = User.objects.create_user(username="version_only_grantee") - version_only_grantee.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) - assign_perm("view_document", version_only_grantee, version) + version_only_grantee = UserFactory(username="version_only_grantee") + grant_global(version_only_grantee, "view_document") + grant_object(version_only_grantee, version, "view_document") rest_api_client.force_authenticate(user=version_only_grantee) response = rest_api_client.post( "/api/documents/bulk_download/", @@ -438,6 +430,53 @@ class TestBulkDownloadPermissionChecksRootDocument: ) # version-only grant must not substitute for root permission +@pytest.mark.django_db +class TestDocumentOperationPermissionChecksRootDocument: + @pytest.mark.parametrize( + ("endpoint", "payload"), + [ + pytest.param("/api/documents/merge/", {}, id="merge"), + pytest.param("/api/documents/rotate/", {"degrees": 90}, id="rotate"), + ], + ) + @pytest.mark.parametrize("version_owner", ["none", "requester"]) + def test_version_operation_acts_on_root( + self, + rest_api_client: APIClient, + endpoint: str, + payload: dict, + version_owner: str, + ) -> None: + owner = UserFactory(username="owner") + requester = UserFactory(username="requester") + grant_global(requester, "change_document") + grant_global(requester, "add_document") + rest_api_client.force_authenticate(user=requester) + root = DocumentFactory(owner=owner) + # A version whose owner went stale, e.g. created before the root changed hands + version = DocumentFactory( + owner=requester if version_owner == "requester" else None, + root_document=root, + version_index=1, + ) + + with ( + patch("documents.views.bulk_edit.merge") as mock_merge, + patch("documents.views.bulk_edit.rotate") as mock_rotate, + ): + mock_merge.__name__ = "merge" + mock_rotate.__name__ = "rotate" + response = rest_api_client.post( + endpoint, + {"documents": [version.pk], **payload}, + format="json", + ) + + assert response.status_code == HTTPStatus.FORBIDDEN + mock_merge.assert_not_called() + mock_rotate.assert_not_called() + + @pytest.mark.django_db @pytest.mark.usefixtures("_search_index") class TestTrashRestorePermissionBoundary: @@ -445,14 +484,12 @@ class TestTrashRestorePermissionBoundary: self, rest_api_client, ): - owner = User.objects.create_user(username="owner") - requester = User.objects.create_user(username="requester") - requester.user_permissions.add( - Permission.objects.get(codename="delete_document"), - ) + owner = UserFactory(username="owner") + requester = UserFactory(username="requester") + grant_global(requester, "delete_document") rest_api_client.force_authenticate(user=requester) doc = DocumentFactory(owner=owner) - assign_perm("view_document", requester, doc) # view only, NOT delete + grant_object(requester, doc, "view_document") # view only, NOT delete doc.delete() response = rest_api_client.post( @@ -466,14 +503,12 @@ class TestTrashRestorePermissionBoundary: self, rest_api_client, ): - owner = User.objects.create_user(username="owner") - requester = User.objects.create_user(username="requester") - requester.user_permissions.add( - Permission.objects.get(codename="delete_document"), - ) + owner = UserFactory(username="owner") + requester = UserFactory(username="requester") + grant_global(requester, "delete_document") rest_api_client.force_authenticate(user=requester) doc = DocumentFactory(owner=owner) - assign_perm("delete_document", requester, doc) + grant_object(requester, doc, "delete_document") doc.delete() response = rest_api_client.post( @@ -484,11 +519,11 @@ class TestTrashRestorePermissionBoundary: assert response.status_code == HTTPStatus.OK def test_restore_requires_global_delete_permission(self, rest_api_client): - owner = User.objects.create_user(username="owner") - requester = User.objects.create_user(username="requester") + owner = UserFactory(username="owner") + requester = UserFactory(username="requester") rest_api_client.force_authenticate(user=requester) doc = DocumentFactory(owner=owner) - assign_perm("delete_document", requester, doc) + grant_object(requester, doc, "delete_document") doc.delete() response = rest_api_client.post( @@ -513,14 +548,12 @@ class TestTrashViewExcludesExplicitlyGrantedDocuments: """ def test_explicit_grant_does_not_leak_trashed_document(self, rest_api_client): - owner = User.objects.create_user(username="trash_owner") - grantee = User.objects.create_user(username="trash_grantee") - grantee.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + owner = UserFactory(username="trash_owner") + grantee = UserFactory(username="trash_grantee") + grant_global(grantee, "view_document") doc = DocumentFactory(owner=owner) doc.delete() # soft delete - assign_perm("view_document", grantee, doc) + grant_object(grantee, doc, "view_document") rest_api_client.force_authenticate(user=grantee) response = rest_api_client.get("/api/trash/") @@ -542,8 +575,8 @@ class TestTrashViewExcludesExplicitlyGrantedDocuments: ) class TestPermittedObjectIdsGenericModels: def test_owner_sees_own_object(self, model, factory, perm): - owner = User.objects.create_user(username=f"owner_{model.__name__}") - stranger = User.objects.create_user(username=f"stranger_{model.__name__}") + owner = UserFactory(username=f"owner_{model.__name__}") + stranger = UserFactory(username=f"stranger_{model.__name__}") owned = factory(owner=owner) strangers = factory(owner=stranger) @@ -556,14 +589,14 @@ class TestPermittedObjectIdsGenericModels: @pytest.mark.parametrize("is_superuser", [False, True]) def test_inactive_user_sees_nothing(self, model, factory, perm, is_superuser): suffix = f"{model.__name__}_{is_superuser}" - user = User.objects.create_user( + user = UserFactory( username=f"inactive_{suffix}", is_active=False, is_superuser=is_superuser, ) - other = User.objects.create_user(username=f"other_{suffix}") + other = UserFactory(username=f"other_{suffix}") granted = factory(owner=other) - assign_perm(perm, user, granted) + grant_object(user, granted, perm) assert_visible_document_ids( permitted_object_ids(user, model, perm), @@ -576,7 +609,7 @@ class TestPermittedObjectIdsGenericModels: ) def test_unowned_object_visible_to_everyone(self, model, factory, perm): - user = User.objects.create_user(username=f"user_{model.__name__}") + user = UserFactory(username=f"user_{model.__name__}") unowned = factory(owner=None) assert_visible_document_ids( @@ -586,12 +619,12 @@ class TestPermittedObjectIdsGenericModels: ) def test_explicit_permission_grants_visibility(self, model, factory, perm): - owner = User.objects.create_user(username=f"owner2_{model.__name__}") - grantee = User.objects.create_user(username=f"grantee_{model.__name__}") - stranger = User.objects.create_user(username=f"stranger2_{model.__name__}") + owner = UserFactory(username=f"owner2_{model.__name__}") + grantee = UserFactory(username=f"grantee_{model.__name__}") + stranger = UserFactory(username=f"stranger2_{model.__name__}") shared = factory(owner=owner) not_shared = factory(owner=owner) - assign_perm(perm, grantee, shared) + grant_object(grantee, shared, perm) assert_visible_document_ids( permitted_object_ids(grantee, model, perm), @@ -610,13 +643,13 @@ class TestPermittedObjectIdsGenericModels: factory, perm, ): - owner = User.objects.create_user(username=f"owner3_{model.__name__}") - member = User.objects.create_user(username=f"member_{model.__name__}") - non_member = User.objects.create_user(username=f"nonmember_{model.__name__}") + owner = UserFactory(username=f"owner3_{model.__name__}") + member = UserFactory(username=f"member_{model.__name__}") + non_member = UserFactory(username=f"nonmember_{model.__name__}") group = Group.objects.create(name=f"group_{model.__name__}") member.groups.add(group) shared = factory(owner=owner) - assign_perm(perm, group, shared) + grant_object(group, shared, perm) assert_visible_document_ids( permitted_object_ids(member, model, perm), @@ -630,8 +663,8 @@ class TestPermittedObjectIdsGenericModels: ) def test_superuser_sees_everything(self, model, factory, perm): - superuser = User.objects.create_superuser(username=f"root_{model.__name__}") - owner = User.objects.create_user(username=f"owner4_{model.__name__}") + superuser = UserFactory(username=f"root_{model.__name__}", superuser=True) + owner = UserFactory(username=f"owner4_{model.__name__}") obj = factory(owner=owner) assert_visible_document_ids( @@ -644,8 +677,8 @@ class TestPermittedObjectIdsGenericModels: @pytest.mark.django_db class TestMatchingRespectsObjectPermissions: def test_match_tags_only_considers_tags_visible_to_user(self): - owner = User.objects.create_user(username="tag_owner") - classifying_user = User.objects.create_user(username="classifier_user") + owner = UserFactory(username="tag_owner") + classifying_user = UserFactory(username="classifier_user") visible_tag = TagFactory( owner=owner, match="invoice", @@ -656,7 +689,7 @@ class TestMatchingRespectsObjectPermissions: match="invoice", matching_algorithm=Tag.MATCH_LITERAL, ) - assign_perm("view_tag", classifying_user, visible_tag) + grant_object(classifying_user, visible_tag, "view_tag") doc = DocumentFactory(owner=classifying_user, content="an invoice document") matched = match_tags(doc, classifier=None, user=classifying_user) @@ -665,8 +698,8 @@ class TestMatchingRespectsObjectPermissions: assert hidden_tag.pk not in matched_ids def test_match_correspondents_only_considers_correspondents_visible_to_user(self): - owner = User.objects.create_user(username="correspondent_owner") - classifying_user = User.objects.create_user(username="classifier_user2") + owner = UserFactory(username="correspondent_owner") + classifying_user = UserFactory(username="classifier_user2") visible_correspondent = CorrespondentFactory( owner=owner, match="invoice", @@ -677,7 +710,7 @@ class TestMatchingRespectsObjectPermissions: match="invoice", matching_algorithm=Correspondent.MATCH_LITERAL, ) - assign_perm("view_correspondent", classifying_user, visible_correspondent) + grant_object(classifying_user, visible_correspondent, "view_correspondent") doc = DocumentFactory(owner=classifying_user, content="an invoice document") matched = match_correspondents(doc, classifier=None, user=classifying_user) @@ -686,8 +719,8 @@ class TestMatchingRespectsObjectPermissions: assert hidden_correspondent.pk not in matched_ids def test_match_document_types_only_considers_document_types_visible_to_user(self): - owner = User.objects.create_user(username="document_type_owner") - classifying_user = User.objects.create_user(username="classifier_user3") + owner = UserFactory(username="document_type_owner") + classifying_user = UserFactory(username="classifier_user3") visible_document_type = DocumentTypeFactory( owner=owner, match="invoice", @@ -698,7 +731,7 @@ class TestMatchingRespectsObjectPermissions: match="invoice", matching_algorithm=DocumentType.MATCH_LITERAL, ) - assign_perm("view_documenttype", classifying_user, visible_document_type) + grant_object(classifying_user, visible_document_type, "view_documenttype") doc = DocumentFactory(owner=classifying_user, content="an invoice document") matched = match_document_types(doc, classifier=None, user=classifying_user) @@ -707,8 +740,8 @@ class TestMatchingRespectsObjectPermissions: assert hidden_document_type.pk not in matched_ids def test_match_storage_paths_only_considers_storage_paths_visible_to_user(self): - owner = User.objects.create_user(username="storage_path_owner") - classifying_user = User.objects.create_user(username="classifier_user4") + owner = UserFactory(username="storage_path_owner") + classifying_user = UserFactory(username="classifier_user4") visible_storage_path = StoragePathFactory( owner=owner, match="invoice", @@ -719,7 +752,7 @@ class TestMatchingRespectsObjectPermissions: match="invoice", matching_algorithm=StoragePath.MATCH_LITERAL, ) - assign_perm("view_storagepath", classifying_user, visible_storage_path) + grant_object(classifying_user, visible_storage_path, "view_storagepath") doc = DocumentFactory(owner=classifying_user, content="an invoice document") matched = match_storage_paths(doc, classifier=None, user=classifying_user) @@ -731,14 +764,12 @@ class TestMatchingRespectsObjectPermissions: @pytest.mark.django_db class TestBulkEditObjectsApplyToAllPermissionBoundary: def test_apply_to_all_tags_excludes_unpermitted_tag(self, rest_api_client): - owner = User.objects.create_user(username="tags_owner") - requester = User.objects.create_user(username="tags_requester") - new_owner = User.objects.create_user(username="tags_new_owner") + owner = UserFactory(username="tags_owner") + requester = UserFactory(username="tags_requester") + new_owner = UserFactory(username="tags_new_owner") # grant the global change_tag permission so the object-level # filtering (not the global has_perm check) is what's under test - requester.user_permissions.add( - Permission.objects.get(codename="change_tag"), - ) + grant_global(requester, "change_tag") rest_api_client.force_authenticate(user=requester) visible = TagFactory(owner=requester) hidden = TagFactory(owner=owner) @@ -771,16 +802,14 @@ class TestBulkEditObjectsApplyToAllPermissionBoundary: request rather than being silently skipped. Editing permissions is limited to the owner, same as documents. """ - owner = User.objects.create_user(username="shared_tags_owner") - requester = User.objects.create_user(username="shared_tags_requester") - requester.user_permissions.add( - Permission.objects.get(codename="change_tag"), - ) + owner = UserFactory(username="shared_tags_owner") + requester = UserFactory(username="shared_tags_requester") + grant_global(requester, "change_tag") rest_api_client.force_authenticate(user=requester) owned = TagFactory(owner=requester) shared = TagFactory(owner=owner) - assign_perm("view_tag", requester, shared) - assign_perm("change_tag", requester, shared) + grant_object(requester, shared, "view_tag") + grant_object(requester, shared, "change_tag") response = rest_api_client.post( "/api/bulk_edit_objects/", @@ -831,14 +860,12 @@ class TestBulkEditObjectsTagDescendantPartialPermission: would pass/fail based on FK cascade behavior, not on whether the descendant-expansion logic itself respected per-object permissions. """ - owner = User.objects.create_user(username="tag_hierarchy_owner") - requester = User.objects.create_user(username="tag_hierarchy_requester") - new_owner = User.objects.create_user(username="tag_hierarchy_new_owner") + owner = UserFactory(username="tag_hierarchy_owner") + requester = UserFactory(username="tag_hierarchy_requester") + new_owner = UserFactory(username="tag_hierarchy_new_owner") # global change_tag permission so the has_perm() gate passes and the # object-level permitted_object_ids filtering is what's under test - requester.user_permissions.add( - Permission.objects.get(codename="change_tag"), - ) + grant_global(requester, "change_tag") rest_api_client.force_authenticate(user=requester) parent = TagFactory(owner=requester, name="parent-tag") @@ -890,7 +917,7 @@ class TestRestrictQuerysetToVisible: - The queryset is returned unfiltered, rather than permitted_object_ids(None, ...)'s narrower "unowned rows only" """ - owner = User.objects.create_user(username="vis_none_owner") + owner = UserFactory(username="vis_none_owner") tag = TagFactory(owner=owner) visible = restrict_queryset_to_visible(Tag.objects.all(), None, "view_tag") @@ -907,8 +934,8 @@ class TestRestrictQuerysetToVisible: - The queryset is returned unfiltered, skipping the permission lookup entirely """ - superuser = User.objects.create_superuser(username="vis_active_super") - owner = User.objects.create_user(username="vis_active_super_owner") + superuser = UserFactory(username="vis_active_super", superuser=True) + owner = UserFactory(username="vis_active_super_owner") tag = TagFactory(owner=owner) visible = restrict_queryset_to_visible( @@ -930,7 +957,7 @@ class TestRestrictQuerysetToVisible: deactivation has to win over the superuser shortcut, matching permitted_object_ids's own ordering """ - user = User.objects.create_user( + user = UserFactory( username="vis_inactive_super", is_active=False, is_superuser=True, @@ -951,8 +978,8 @@ class TestRestrictQuerysetToVisible: THEN: - Only the rows permitted_object_ids() reports are visible """ - user = User.objects.create_user(username="vis_regular") - other = User.objects.create_user(username="vis_regular_other") + user = UserFactory(username="vis_regular") + other = UserFactory(username="vis_regular_other") own = TagFactory(owner=user) hidden = TagFactory(owner=other) diff --git a/src/documents/tests/test_permitted_objects_filter.py b/src/documents/tests/test_permitted_objects_filter.py index b087f091b..80403252e 100644 --- a/src/documents/tests/test_permitted_objects_filter.py +++ b/src/documents/tests/test_permitted_objects_filter.py @@ -1,11 +1,11 @@ import pytest -from django.contrib.auth.models import User -from guardian.shortcuts import assign_perm from rest_framework.test import APIRequestFactory from documents.filters import PermittedObjectsFilter from documents.models import Tag -from documents.tests.factories import TagFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_object class _DummyView: @@ -15,8 +15,8 @@ class _DummyView: @pytest.mark.django_db class TestPermittedObjectsFilter: def test_superuser_bypasses_filtering_entirely(self): - superuser = User.objects.create_superuser(username="root") - owner = User.objects.create_user(username="owner") + superuser = UserFactory(username="root", superuser=True) + owner = UserFactory(username="owner") TagFactory(owner=owner) request = APIRequestFactory().get("/") request.user = superuser @@ -29,13 +29,13 @@ class TestPermittedObjectsFilter: assert result.count() == Tag.objects.count() def test_non_superuser_sees_only_owned_unowned_and_granted(self): - owner = User.objects.create_user(username="owner") - grantee = User.objects.create_user(username="grantee") + owner = UserFactory(username="owner") + grantee = UserFactory(username="grantee") owned = TagFactory(owner=grantee) unowned = TagFactory(owner=None) granted = TagFactory(owner=owner) hidden = TagFactory(owner=owner) - assign_perm("view_tag", grantee, granted) + grant_object(grantee, granted, "view_tag") request = APIRequestFactory().get("/") request.user = grantee @@ -49,11 +49,11 @@ class TestPermittedObjectsFilter: assert hidden.pk not in visible_ids def test_include_granted_false_excludes_explicitly_shared_objects(self): - owner = User.objects.create_user(username="owner2") - grantee = User.objects.create_user(username="grantee2") + owner = UserFactory(username="owner2") + grantee = UserFactory(username="grantee2") owned = TagFactory(owner=grantee) granted = TagFactory(owner=owner) - assign_perm("view_tag", grantee, granted) + grant_object(grantee, granted, "view_tag") request = APIRequestFactory().get("/") request.user = grantee @@ -74,15 +74,15 @@ class TestPermittedObjectsFilter: [("inactive", False), ("inactive_super", True)], ) def test_inactive_user_sees_nothing(self, username: str, *, is_superuser: bool): - user = User.objects.create_user( + user = UserFactory( username=username, is_active=False, is_superuser=is_superuser, ) TagFactory(owner=None) TagFactory(owner=user) - granted = TagFactory(owner=User.objects.create_user(username=f"o_{username}")) - assign_perm("view_tag", user, granted) + granted = TagFactory(owner=UserFactory(username=f"o_{username}")) + grant_object(user, granted, "view_tag") request = APIRequestFactory().get("/") request.user = user @@ -94,7 +94,7 @@ class TestPermittedObjectsFilter: assert result.count() == 0 def test_inactive_user_sees_nothing_with_include_granted_false(self): - user = User.objects.create_user(username="inactive_owner", is_active=False) + user = UserFactory(username="inactive_owner", is_active=False) TagFactory(owner=user) TagFactory(owner=None) request = APIRequestFactory().get("/") diff --git a/src/documents/tests/test_sanity_check.py b/src/documents/tests/test_sanity_check.py index f282f3ea5..e04367f7b 100644 --- a/src/documents/tests/test_sanity_check.py +++ b/src/documents/tests/test_sanity_check.py @@ -19,7 +19,7 @@ if TYPE_CHECKING: from collections.abc import Iterable from documents.models import Document - from documents.tests.conftest import PaperlessDirs + from paperless_testing.dirs import PaperlessDirs class TestSanityCheckMessages: @@ -46,14 +46,14 @@ class TestSanityCheckMessages: class TestCheckSanityNoDocuments: """Sanity checks against an empty archive.""" - @pytest.mark.usefixtures("_media_settings") + @pytest.mark.usefixtures("paperless_dirs") def test_no_documents(self) -> None: messages = check_sanity() assert not messages.has_error assert not messages.has_warning assert messages.total_issue_count == 0 - @pytest.mark.usefixtures("_media_settings") + @pytest.mark.usefixtures("paperless_dirs") def test_no_issues_logs_clean(self, caplog: pytest.LogCaptureFixture) -> None: messages = check_sanity() with caplog.at_level(logging.INFO, logger="paperless.sanity_checker"): @@ -214,18 +214,17 @@ class TestCheckSanityOrphans: sample_doc: Document, paperless_dirs: PaperlessDirs, ) -> None: - (paperless_dirs.originals / "orphan.pdf").touch() + (paperless_dirs.originals_dir / "orphan.pdf").touch() messages = check_sanity() assert messages.has_warning assert any("Orphaned file" in m["message"] for m in messages[None]) - @pytest.mark.usefixtures("_media_settings") def test_ignorable_files_not_flagged( self, paperless_dirs: PaperlessDirs, ) -> None: - (paperless_dirs.media / ".DS_Store").touch() - (paperless_dirs.media / "desktop.ini").touch() + (paperless_dirs.media_dir / ".DS_Store").touch() + (paperless_dirs.media_dir / "desktop.ini").touch() messages = check_sanity() assert not messages.has_warning @@ -269,13 +268,13 @@ class TestCheckSanityLogMessages: paperless_dirs: PaperlessDirs, caplog: pytest.LogCaptureFixture, ) -> None: - (paperless_dirs.originals / "orphan.pdf").touch() + (paperless_dirs.originals_dir / "orphan.pdf").touch() messages = check_sanity() with caplog.at_level(logging.WARNING, logger="paperless.sanity_checker"): messages.log_messages() assert "Orphaned file" in caplog.text - @pytest.mark.usefixtures("_media_settings") + @pytest.mark.usefixtures("paperless_dirs") def test_logs_unknown_doc_pk(self, caplog: pytest.LogCaptureFixture) -> None: """A doc PK not in the DB logs 'Unknown' as the title.""" messages = check_sanity() diff --git a/src/documents/tests/test_share_link_bundles.py b/src/documents/tests/test_share_link_bundles.py index 9934ffe99..55cc61bde 100644 --- a/src/documents/tests/test_share_link_bundles.py +++ b/src/documents/tests/test_share_link_bundles.py @@ -6,10 +6,8 @@ from pathlib import Path from unittest import mock from django.conf import settings -from django.contrib.auth.models import Permission from django.contrib.auth.models import User from django.utils import timezone -from guardian.shortcuts import assign_perm from rest_framework import serializers from rest_framework import status from rest_framework.test import APITestCase @@ -20,8 +18,11 @@ from documents.models import ShareLinkBundle from documents.serialisers import ShareLinkBundleSerializer from documents.tasks import build_share_link_bundle from documents.tasks import cleanup_expired_share_link_bundles -from documents.tests.factories import DocumentFactory -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object class ShareLinkBundleAPITests(DirectoriesMixin, APITestCase): @@ -29,7 +30,7 @@ class ShareLinkBundleAPITests(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="bundle_admin") + self.user = UserFactory(username="bundle_admin", superuser=True) self.client.force_authenticate(self.user) self.document = DocumentFactory.create() @@ -55,13 +56,11 @@ class ShareLinkBundleAPITests(DirectoriesMixin, APITestCase): self, delay_mock, ) -> None: - owner = User.objects.create_user(username="document_owner") - requester = User.objects.create_user(username="bundle_creator") - requester.user_permissions.add( - Permission.objects.get(codename="add_sharelinkbundle"), - ) + owner = UserFactory(username="document_owner") + requester = UserFactory(username="bundle_creator") + grant_global(requester, "add_sharelinkbundle") document = DocumentFactory.create(owner=owner) - assign_perm("view_document", requester, document) + grant_object(requester, document, "view_document") self.client.force_authenticate(requester) payload = { "document_ids": [document.pk], @@ -72,9 +71,7 @@ class ShareLinkBundleAPITests(DirectoriesMixin, APITestCase): response = self.client.post(self.ENDPOINT, payload, format="json") self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) - requester.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_global(requester, "view_document") requester = User.objects.get(pk=requester.pk) self.client.force_authenticate(requester) response = self.client.post(self.ENDPOINT, payload, format="json") @@ -342,15 +339,6 @@ class ShareLinkBundleBuildTaskTests(DirectoriesMixin, APITestCase): ) self.document.archive_checksum = "" self.document.save() - self.addCleanup( - setattr, - settings, - "SHARE_LINK_BUNDLE_DIR", - settings.SHARE_LINK_BUNDLE_DIR, - ) - settings.SHARE_LINK_BUNDLE_DIR = ( - Path(settings.MEDIA_ROOT) / "documents" / "share_link_bundles" - ) def _write_document_file(self, *, archive: bool, content: bytes) -> Path: if archive: diff --git a/src/documents/tests/test_tag_hierarchy.py b/src/documents/tests/test_tag_hierarchy.py index ed0bff351..5384fd187 100644 --- a/src/documents/tests/test_tag_hierarchy.py +++ b/src/documents/tests/test_tag_hierarchy.py @@ -1,7 +1,5 @@ from unittest import mock -from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from rest_framework import status from rest_framework.test import APITestCase @@ -13,16 +11,16 @@ from documents.models import WorkflowAction from documents.models import WorkflowTrigger from documents.serialisers import TagSerializer from documents.signals.handlers import run_workflows -from documents.tests.utils import DirectoriesMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global class TestTagHierarchyPermissions(APITestCase): def test_children_only_include_visible_tags(self) -> None: - owner = User.objects.create_user(username="owner") - requester = User.objects.create_user(username="requester") - requester.user_permissions.add( - Permission.objects.get(codename="view_tag"), - ) + owner = UserFactory(username="owner") + requester = UserFactory(username="requester") + grant_global(requester, "view_tag") parent = Tag.objects.create(name="Visible parent", owner=requester) hidden_child = Tag.objects.create( name="Hidden child", @@ -49,7 +47,7 @@ class TestTagHierarchyPermissions(APITestCase): class TestTagHierarchy(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser(username="admin") + self.user = UserFactory(username="admin", superuser=True) self.client.force_authenticate(user=self.user) self.parent = Tag.objects.create(name="Parent") diff --git a/src/documents/tests/test_task_signals.py b/src/documents/tests/test_task_signals.py index 41856236f..70de18ae5 100644 --- a/src/documents/tests/test_task_signals.py +++ b/src/documents/tests/test_task_signals.py @@ -17,7 +17,8 @@ from documents.signals.handlers import task_failure_handler from documents.signals.handlers import task_postrun_handler from documents.signals.handlers import task_prerun_handler from documents.signals.handlers import task_revoked_handler -from documents.tests.factories import PaperlessTaskFactory +from paperless_testing.factories import PaperlessTaskFactory +from paperless_testing.factories import UserFactory @pytest.fixture @@ -34,8 +35,8 @@ def consume_input_doc(): @pytest.fixture -def consume_overrides(django_user_model): - user = django_user_model.objects.create_user(username="testuser") +def consume_overrides(): + user = UserFactory(username="testuser") overrides = mock.MagicMock(spec=DocumentMetadataOverrides) overrides.owner_id = user.id return overrides diff --git a/src/documents/tests/test_tasks.py b/src/documents/tests/test_tasks.py index 107c1dc6b..247b6a529 100644 --- a/src/documents/tests/test_tasks.py +++ b/src/documents/tests/test_tasks.py @@ -17,9 +17,9 @@ from documents.models import Tag from documents.models import WorkflowAction 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 +from documents.tests.helpers import dummy_preprocess +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin @pytest.mark.django_db diff --git a/src/documents/tests/test_version_conditionals.py b/src/documents/tests/test_version_conditionals.py index a2531c7e6..af22c1124 100644 --- a/src/documents/tests/test_version_conditionals.py +++ b/src/documents/tests/test_version_conditionals.py @@ -14,8 +14,8 @@ from documents.conditionals import preview_etag from documents.conditionals import thumbnail_etag from documents.conditionals import thumbnail_last_modified from documents.models import Document -from documents.tests.utils import DirectoriesMixin from documents.versioning import resolve_effective_document_by_pk +from paperless_testing.dirs import DirectoriesMixin if TYPE_CHECKING: from rest_framework.request import Request diff --git a/src/documents/tests/test_views.py b/src/documents/tests/test_views.py index ce0024db9..df2601120 100644 --- a/src/documents/tests/test_views.py +++ b/src/documents/tests/test_views.py @@ -15,7 +15,6 @@ from django.test import TestCase from django.test import override_settings from django.test.utils import CaptureQueriesContext from django.utils import timezone -from guardian.shortcuts import assign_perm from rest_framework import status from documents.caching import get_llm_suggestion_cache @@ -29,11 +28,14 @@ from documents.models import StoragePath from documents.models import Tag from documents.models import UiSettings from documents.signals.handlers import update_llm_suggestions_cache -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import read_streaming_response from paperless.models import ApplicationConfiguration from paperless_ai.exceptions import LLMProviderError from paperless_ai.exceptions import LLMTimeoutError +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory +from paperless_testing.http import read_streaming_response +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object class TestViews(DirectoriesMixin, TestCase): @@ -43,7 +45,7 @@ class TestViews(DirectoriesMixin, TestCase): ApplicationConfiguration.objects.get_or_create() def setUp(self) -> None: - self.user = User.objects.create_user("testuser") + self.user = UserFactory(username="testuser") super().setUp() def test_login_redirect(self) -> None: @@ -141,9 +143,7 @@ class TestViews(DirectoriesMixin, TestCase): codename__contains="sharelink", ) self.user.user_permissions.add(*sharelink_permissions) - self.user.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_global(self.user, "view_document") self.user.save() self.client.force_login(self.user) @@ -205,9 +205,7 @@ class TestViews(DirectoriesMixin, TestCase): codename__contains="sharelink", ) self.user.user_permissions.add(*sharelink_permissions) - self.user.user_permissions.add( - Permission.objects.get(codename="view_document"), - ) + grant_global(self.user, "view_document") self.client.force_login(self.user) create_response = self.client.post( @@ -240,16 +238,16 @@ class TestViews(DirectoriesMixin, TestCase): group2 = Group.objects.create(name="group2") group3 = Group.objects.create(name="group3") t1 = Tag.objects.create(name="invoice", pk=1) - assign_perm("view_tag", self.user, t1) - assign_perm("view_tag", user2, t1) - assign_perm("view_tag", user3, t1) - assign_perm("view_tag", group1, t1) - assign_perm("view_tag", group2, t1) - assign_perm("view_tag", group3, t1) - assign_perm("change_tag", self.user, t1) - assign_perm("change_tag", user2, t1) - assign_perm("change_tag", group1, t1) - assign_perm("change_tag", group2, t1) + grant_object(self.user, t1, "view_tag") + grant_object(user2, t1, "view_tag") + grant_object(user3, t1, "view_tag") + grant_object(group1, t1, "view_tag") + grant_object(group2, t1, "view_tag") + grant_object(group3, t1, "view_tag") + grant_object(self.user, t1, "change_tag") + grant_object(user2, t1, "change_tag") + grant_object(group1, t1, "change_tag") + grant_object(group2, t1, "change_tag") Tag.objects.create(name="bank statement", pk=2) d1 = Document.objects.create( @@ -338,7 +336,7 @@ class TestViews(DirectoriesMixin, TestCase): class TestAISuggestions(DirectoriesMixin, TestCase): def setUp(self) -> None: - self.user = User.objects.create_superuser(username="testuser") + self.user = UserFactory(username="testuser", superuser=True) self.document = Document.objects.create( title="Test Document", filename="test.pdf", @@ -425,14 +423,10 @@ class TestAISuggestions(DirectoriesMixin, TestCase): requester; the invisible tag id does not leak into either the matched or suggested tags """ - tag_owner = User.objects.create_user(username="cache_tag_owner") + tag_owner = UserFactory(username="cache_tag_owner") invisible_tag = Tag.objects.create(name="cache_restricted", owner=tag_owner) - requester = User.objects.create_user(username="cache_requester") - requester.user_permissions.add( - *Permission.objects.filter( - codename__in=["view_document", "change_document", "view_tag"], - ), - ) + requester = UserFactory(username="cache_requester") + grant_global(requester, "view_document", "change_document", "view_tag") mock_get_cache.return_value = MagicMock( suggestions={ "title": "Untitled", @@ -637,7 +631,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase): - The classification runs with the second user's visibility context without evicting the first user's result """ - second_user = User.objects.create_superuser(username="second_user") + second_user = UserFactory(username="second_user", superuser=True) empty_choices = { "tags": {"existing_ids": [], "new_names": []}, "correspondents": {"existing_ids": [], "new_names": []}, @@ -875,14 +869,10 @@ class TestAISuggestions(DirectoriesMixin, TestCase): permission filtering survives the full request path - it does not appear in either the matched or suggested tags """ - tag_owner = User.objects.create_user(username="tagowner") + tag_owner = UserFactory(username="tagowner") invisible_tag = Tag.objects.create(name="restricted", owner=tag_owner) - requester = User.objects.create_user(username="requester") - requester.user_permissions.add( - *Permission.objects.filter( - codename__in=["view_document", "change_document", "view_tag"], - ), - ) + requester = UserFactory(username="requester") + grant_global(requester, "view_document", "change_document", "view_tag") mock_get_ai_classification.return_value = { "title": "Untitled", @@ -956,7 +946,7 @@ class TestAIChatStreamingView(DirectoriesMixin, TestCase): ENDPOINT = "/api/documents/chat/" def setUp(self) -> None: - self.user = User.objects.create_user(username="testuser", password="pass") + self.user = UserFactory(username="testuser", password="pass") self.client.force_login(user=self.user) self.document = Document.objects.create( title="Test Document", @@ -966,9 +956,7 @@ class TestAIChatStreamingView(DirectoriesMixin, TestCase): super().setUp() def grant_view_document_permission(self) -> None: - self.user.user_permissions.add( - *Permission.objects.filter(codename="view_document"), - ) + grant_global(self.user, "view_document") @override_settings(AI_ENABLED=False) def test_post_ai_disabled(self) -> None: diff --git a/src/documents/tests/test_workflows.py b/src/documents/tests/test_workflows.py index 8f241e289..3bd9e0775 100644 --- a/src/documents/tests/test_workflows.py +++ b/src/documents/tests/test_workflows.py @@ -17,7 +17,6 @@ from django.contrib.auth.models import User from django.core import mail from django.test import override_settings from django.utils import timezone -from guardian.shortcuts import assign_perm from guardian.shortcuts import get_groups_with_perms from guardian.shortcuts import get_users_with_perms from httpx import ConnectError @@ -64,13 +63,16 @@ from documents.models import WorkflowTrigger from documents.plugins.base import StopConsumeTaskError from documents.serialisers import WorkflowTriggerSerializer from documents.signals import document_consumption_finished -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import DummyProgressManager -from documents.tests.utils import FileSystemAssertsMixin from documents.tests.utils import SampleDirMixin from documents.workflows.actions import execute_password_removal_action from paperless_mail.models import MailAccount from paperless_mail.models import MailRule +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object class TestWorkflows( @@ -127,6 +129,7 @@ class TestWorkflows( return super().setUp() + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_match(self) -> None: """ GIVEN: @@ -179,74 +182,74 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="INFO") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - ), - None, - ) + with self.assertLogs("paperless.matching", level="INFO") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) - document = Document.objects.first() - assert document is not None - self.assertEqual(document.correspondent, self.c) - self.assertEqual(document.document_type, self.dt) - self.assertEqual(list(document.tags.all()), [self.t1, self.t2, self.t3]) - self.assertEqual(document.storage_path, self.sp) - self.assertEqual(document.owner, self.user2) - self.assertEqual( - list( - get_users_with_perms( - document, - only_with_perms_in=["view_document"], - ), + document = Document.objects.first() + assert document is not None + self.assertEqual(document.correspondent, self.c) + self.assertEqual(document.document_type, self.dt) + self.assertEqual(list(document.tags.all()), [self.t1, self.t2, self.t3]) + self.assertEqual(document.storage_path, self.sp) + self.assertEqual(document.owner, self.user2) + self.assertEqual( + list( + get_users_with_perms( + document, + only_with_perms_in=["view_document"], ), - [self.user3], - ) - self.assertEqual( - list( - get_groups_with_perms( - document, - ), + ), + [self.user3], + ) + self.assertEqual( + list( + get_groups_with_perms( + document, ), - [self.group1], - ) - self.assertEqual( - list( - get_users_with_perms( - document, - only_with_perms_in=["change_document"], - ), + ), + [self.group1], + ) + self.assertEqual( + list( + get_users_with_perms( + document, + only_with_perms_in=["change_document"], ), - [self.user3], - ) - self.assertEqual( - list( - get_groups_with_perms( - document, - ), + ), + [self.user3], + ) + self.assertEqual( + list( + get_groups_with_perms( + document, ), - [self.group1], - ) - self.assertEqual( - document.title, - f"Doc from {self.c.name}", - ) - self.assertEqual( - list(document.custom_fields.all().values_list("field", flat=True)), - [self.cf1.pk, self.cf2.pk], - ) - self.assertEqual( - document.custom_fields.get(field=self.cf2.pk).value, - 42, - ) + ), + [self.group1], + ) + self.assertEqual( + document.title, + f"Doc from {self.c.name}", + ) + self.assertEqual( + list(document.custom_fields.all().values_list("field", flat=True)), + [self.cf1.pk, self.cf2.pk], + ) + self.assertEqual( + document.custom_fields.get(field=self.cf2.pk).value, + 42, + ) info = cm.output[0] expected_str = f"Document matched {trigger} from {w}" self.assertIn(expected_str, info) + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_match_mailrule(self) -> None: """ GIVEN: @@ -291,65 +294,65 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="INFO") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - mailrule_id=self.rule1.pk, + with self.assertLogs("paperless.matching", level="INFO") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + mailrule_id=self.rule1.pk, + ), + None, + ) + document = Document.objects.first() + assert document is not None + self.assertEqual(document.correspondent, self.c) + self.assertEqual(document.document_type, self.dt) + self.assertEqual(list(document.tags.all()), [self.t1, self.t2, self.t3]) + self.assertEqual(document.storage_path, self.sp) + self.assertEqual(document.owner, self.user2) + self.assertEqual( + list( + get_users_with_perms( + document, + only_with_perms_in=["view_document"], ), - None, - ) - document = Document.objects.first() - assert document is not None - self.assertEqual(document.correspondent, self.c) - self.assertEqual(document.document_type, self.dt) - self.assertEqual(list(document.tags.all()), [self.t1, self.t2, self.t3]) - self.assertEqual(document.storage_path, self.sp) - self.assertEqual(document.owner, self.user2) - self.assertEqual( - list( - get_users_with_perms( - document, - only_with_perms_in=["view_document"], - ), + ), + [self.user3], + ) + self.assertEqual( + list( + get_groups_with_perms( + document, ), - [self.user3], - ) - self.assertEqual( - list( - get_groups_with_perms( - document, - ), + ), + [self.group1], + ) + self.assertEqual( + list( + get_users_with_perms( + document, + only_with_perms_in=["change_document"], ), - [self.group1], - ) - self.assertEqual( - list( - get_users_with_perms( - document, - only_with_perms_in=["change_document"], - ), + ), + [self.user3], + ) + self.assertEqual( + list( + get_groups_with_perms( + document, ), - [self.user3], - ) - self.assertEqual( - list( - get_groups_with_perms( - document, - ), - ), - [self.group1], - ) - self.assertEqual( - document.title, - f"Doc from {self.c.name}", - ) + ), + [self.group1], + ) + self.assertEqual( + document.title, + f"Doc from {self.c.name}", + ) info = cm.output[0] expected_str = f"Document matched {trigger} from {w}" self.assertIn(expected_str, info) + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_match_multiple(self) -> None: """ GIVEN: @@ -410,42 +413,42 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="INFO") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, + with self.assertLogs("paperless.matching", level="INFO") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) + document = Document.objects.first() + assert document is not None + # workflow 1 + self.assertEqual(document.document_type, self.dt) + # workflow 2 + self.assertEqual(document.correspondent, self.c2) + self.assertEqual(document.storage_path, self.sp) + # workflow 1 & 2 + self.assertEqual( + list(document.tags.all()), + [self.t1, self.t2, self.t3], + ) + self.assertEqual( + list( + get_users_with_perms( + document, + only_with_perms_in=["view_document"], ), - None, - ) - document = Document.objects.first() - assert document is not None - # workflow 1 - self.assertEqual(document.document_type, self.dt) - # workflow 2 - self.assertEqual(document.correspondent, self.c2) - self.assertEqual(document.storage_path, self.sp) - # workflow 1 & 2 - self.assertEqual( - list(document.tags.all()), - [self.t1, self.t2, self.t3], - ) - self.assertEqual( - list( - get_users_with_perms( - document, - only_with_perms_in=["view_document"], - ), - ), - [self.user2, self.user3], - ) + ), + [self.user2, self.user3], + ) expected_str = f"Document matched {trigger1} from {w1}" self.assertIn(expected_str, cm.output[0]) expected_str = f"Document matched {trigger2} from {w2}" self.assertIn(expected_str, cm.output[1]) + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_fnmatch_path(self) -> None: """ GIVEN: @@ -479,22 +482,22 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="DEBUG") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - ), - None, - ) - document = Document.objects.first() - assert document is not None - self.assertEqual(document.title, "Doc fnmatch title") + with self.assertLogs("paperless.matching", level="DEBUG") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) + document = Document.objects.first() + assert document is not None + self.assertEqual(document.title, "Doc fnmatch title") expected_str = f"Document matched {trigger} from {w}" self.assertIn(expected_str, cm.output[0]) + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_no_match_filename(self) -> None: """ GIVEN: @@ -532,47 +535,47 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="DEBUG") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - ), - None, - ) - document = Document.objects.first() - assert document is not None - self.assertIsNone(document.correspondent) - self.assertIsNone(document.document_type) - self.assertEqual(document.tags.all().count(), 0) - self.assertIsNone(document.storage_path) - self.assertIsNone(document.owner) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["view_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["change_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual(document.title, "simple") + with self.assertLogs("paperless.matching", level="DEBUG") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) + document = Document.objects.first() + assert document is not None + self.assertIsNone(document.correspondent) + self.assertIsNone(document.document_type) + self.assertEqual(document.tags.all().count(), 0) + self.assertIsNone(document.storage_path) + self.assertIsNone(document.owner) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["view_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["change_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual(document.title, "simple") expected_str = f"Document did not match {w}" self.assertIn(expected_str, cm.output[0]) expected_str = f"Document filename {test_file.name} does not match" self.assertIn(expected_str, cm.output[1]) + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_no_match_path(self) -> None: """ GIVEN: @@ -609,41 +612,40 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="DEBUG") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - ), - None, - ) - document = Document.objects.first() - assert document is not None - self.assertIsNone(document.correspondent) - self.assertIsNone(document.document_type) - self.assertEqual(document.tags.all().count(), 0) - self.assertIsNone(document.storage_path) - self.assertIsNone(document.owner) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["view_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["change_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual(document.title, "simple") + with self.assertLogs("paperless.matching", level="DEBUG") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) + document = Document.objects.first() + assert document is not None + self.assertIsNone(document.correspondent) + self.assertIsNone(document.document_type) + self.assertEqual(document.tags.all().count(), 0) + self.assertIsNone(document.storage_path) + self.assertIsNone(document.owner) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["view_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["change_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual(document.title, "simple") expected_str = f"Document did not match {w}" self.assertIn(expected_str, cm.output[0]) @@ -652,6 +654,7 @@ class TestWorkflows( ) self.assertIn(expected_str, cm.output[1]) + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_no_match_mail_rule(self) -> None: """ GIVEN: @@ -688,48 +691,48 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="DEBUG") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - mailrule_id=99, - ), - None, - ) - document = Document.objects.first() - assert document is not None - self.assertIsNone(document.correspondent) - self.assertIsNone(document.document_type) - self.assertEqual(document.tags.all().count(), 0) - self.assertIsNone(document.storage_path) - self.assertIsNone(document.owner) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["view_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["change_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual(document.title, "simple") + with self.assertLogs("paperless.matching", level="DEBUG") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + mailrule_id=99, + ), + None, + ) + document = Document.objects.first() + assert document is not None + self.assertIsNone(document.correspondent) + self.assertIsNone(document.document_type) + self.assertEqual(document.tags.all().count(), 0) + self.assertIsNone(document.storage_path) + self.assertIsNone(document.owner) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["view_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["change_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual(document.title, "simple") expected_str = f"Document did not match {w}" self.assertIn(expected_str, cm.output[0]) expected_str = "Document mail rule 99 !=" self.assertIn(expected_str, cm.output[1]) + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_no_match_source(self) -> None: """ GIVEN: @@ -766,41 +769,40 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="DEBUG") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ApiUpload, - original_file=test_file, - ), - None, - ) - document = Document.objects.first() - assert document is not None - self.assertIsNone(document.correspondent) - self.assertIsNone(document.document_type) - self.assertEqual(document.tags.all().count(), 0) - self.assertIsNone(document.storage_path) - self.assertIsNone(document.owner) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["view_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["change_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual(document.title, "simple") + with self.assertLogs("paperless.matching", level="DEBUG") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ApiUpload, + original_file=test_file, + ), + None, + ) + document = Document.objects.first() + assert document is not None + self.assertIsNone(document.correspondent) + self.assertIsNone(document.document_type) + self.assertEqual(document.tags.all().count(), 0) + self.assertIsNone(document.storage_path) + self.assertIsNone(document.owner) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["view_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["change_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual(document.title, "simple") expected_str = f"Document did not match {w}" self.assertIn(expected_str, cm.output[0]) @@ -842,6 +844,7 @@ class TestWorkflows( expected_str = f"No matching triggers with type {WorkflowTrigger.WorkflowTriggerType.DOCUMENT_ADDED} found" self.assertIn(expected_str, cm.output[1]) + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_repeat_custom_fields(self) -> None: """ GIVEN: @@ -877,21 +880,20 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="INFO") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - ), - None, - ) - document = Document.objects.first() - assert document is not None - self.assertEqual( - list(document.custom_fields.all().values_list("field", flat=True)), - [self.cf1.pk], - ) + with self.assertLogs("paperless.matching", level="INFO") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) + document = Document.objects.first() + assert document is not None + self.assertEqual( + list(document.custom_fields.all().values_list("field", flat=True)), + [self.cf1.pk], + ) expected_str = f"Document matched {trigger} from {w}" self.assertIn(expected_str, cm.output[0]) @@ -1059,6 +1061,41 @@ class TestWorkflows( self.assertEqual(doc.correspondent, self.c2) self.assertEqual(doc.title, f"Doc created in {created.year}") + @pytest.mark.usefixtures("_search_index") + def test_document_added_workflow_indexes_final_title(self) -> None: + trigger = WorkflowTrigger.objects.create( + type=WorkflowTrigger.WorkflowTriggerType.DOCUMENT_ADDED, + filter_filename="*sample*", + ) + action = WorkflowAction.objects.create( + assign_title="Linked document", + assign_owner=self.user2, + ) + link_field = CustomField.objects.create( + name="Related documents", + data_type=CustomField.FieldDataType.DOCUMENTLINK, + ) + action.assign_custom_fields.add(link_field) + workflow = Workflow.objects.create(name="Link workflow", order=0) + workflow.triggers.add(trigger) + workflow.actions.add(action) + + doc = DocumentFactory.create() + document_consumption_finished.send(sender=self.__class__, document=doc) + + self.assertTrue(doc.custom_fields.filter(field=link_field).exists()) + doc.refresh_from_db() + self.assertEqual(doc.title, "Linked document") + + grant_global(self.user2, "view_document") + self.client.force_authenticate(user=self.user2) + response = self.client.get("/api/documents/?title_search=linked") + self.assertEqual(response.status_code, 200) + self.assertEqual( + [result["id"] for result in response.data["results"]], + [doc.pk], + ) + def test_document_added_no_match_filename(self) -> None: trigger = WorkflowTrigger.objects.create( type=WorkflowTrigger.WorkflowTriggerType.DOCUMENT_ADDED, @@ -1952,7 +1989,7 @@ class TestWorkflows( original_filename="sample.pdf", ) - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) self.client.patch( @@ -1963,6 +2000,7 @@ class TestWorkflows( self.assertEqual(doc.custom_fields.all().count(), 1) + @pytest.mark.usefixtures("fake_progress_manager") def test_document_consumption_workflow_month_placeholder_addded(self) -> None: trigger = WorkflowTrigger.objects.create( type=WorkflowTrigger.WorkflowTriggerType.CONSUMPTION, @@ -1982,26 +2020,25 @@ class TestWorkflows( w.actions.add(action) w.save() - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) test_file = shutil.copy( self.SAMPLE_DIR / "simple.pdf", self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ApiUpload, - original_file=test_file, - ), - None, - ) - document = Document.objects.first() - assert document is not None - self.assertRegex( - document.title, - r"Doc added in \w{3,}", - ) # Match any 3-letter month name + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ApiUpload, + original_file=test_file, + ), + None, + ) + document = Document.objects.first() + assert document is not None + self.assertRegex( + document.title, + r"Doc added in \w{3,}", + ) # Match any 3-letter month name def test_document_updated_workflow_existing_custom_field_empty_value(self) -> None: """ @@ -2040,7 +2077,7 @@ class TestWorkflows( value_text="existing value", ) - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) self.client.patch( @@ -2084,7 +2121,7 @@ class TestWorkflows( ) CustomFieldInstance.objects.create(document=doc, field=self.cf1) - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) self.client.patch( @@ -2129,12 +2166,12 @@ class TestWorkflows( original_filename="sample.pdf", ) - assign_perm("documents.view_document", self.user2, doc) - assign_perm("documents.change_document", self.user2, doc) - assign_perm("documents.view_document", self.group1, doc) - assign_perm("documents.change_document", self.group1, doc) + grant_object(self.user2, doc, "documents.view_document") + grant_object(self.user2, doc, "documents.change_document") + grant_object(self.group1, doc, "documents.view_document") + grant_object(self.group1, doc, "documents.change_document") - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) self.client.patch( @@ -2900,12 +2937,12 @@ class TestWorkflows( doc.tags.set([self.t1, self.t2]) CustomFieldInstance.objects.create(document=doc, field=self.cf1) doc.save() - assign_perm("documents.view_document", self.user3, doc) - assign_perm("documents.change_document", self.user3, doc) - assign_perm("documents.view_document", self.group1, doc) - assign_perm("documents.change_document", self.group1, doc) + grant_object(self.user3, doc, "documents.view_document") + grant_object(self.user3, doc, "documents.change_document") + grant_object(self.group1, doc, "documents.view_document") + grant_object(self.group1, doc, "documents.change_document") - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) self.client.patch( @@ -2977,7 +3014,7 @@ class TestWorkflows( doc.refresh_from_db() doc.tags.set([self.t1, self.t2]) - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) self.client.patch( f"/api/documents/{doc.id}/", @@ -3041,7 +3078,7 @@ class TestWorkflows( doc.refresh_from_db() doc.tags.set([self.t1]) - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) self.client.patch( f"/api/documents/{doc.id}/", @@ -3097,12 +3134,12 @@ class TestWorkflows( doc.tags.set([self.t1, self.t2]) CustomFieldInstance.objects.create(document=doc, field=self.cf1) doc.save() - assign_perm("documents.view_document", self.user3, doc) - assign_perm("documents.change_document", self.user3, doc) - assign_perm("documents.view_document", self.group1, doc) - assign_perm("documents.change_document", self.group1, doc) + grant_object(self.user3, doc, "documents.view_document") + grant_object(self.user3, doc, "documents.change_document") + grant_object(self.group1, doc, "documents.view_document") + grant_object(self.group1, doc, "documents.change_document") - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) self.client.patch( @@ -3124,6 +3161,7 @@ class TestWorkflows( group_perms: QuerySet[Any] = get_groups_with_perms(doc) self.assertNotIn(self.group1, group_perms) + @pytest.mark.usefixtures("fake_progress_manager") def test_removal_action_document_consumed(self) -> None: """ GIVEN: @@ -3188,74 +3226,74 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="INFO") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - ), - None, - ) + with self.assertLogs("paperless.matching", level="INFO") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) - document = Document.objects.first() - assert document is not None + document = Document.objects.first() + assert document is not None - self.assertIsNone(document.correspondent) - self.assertIsNone(document.document_type) - self.assertEqual( - list(document.tags.all()), - [self.t2, self.t3], - ) - self.assertIsNone(document.storage_path) - self.assertIsNone(document.owner) - self.assertEqual( - list( - get_users_with_perms( - document, - only_with_perms_in=["view_document"], - ), + self.assertIsNone(document.correspondent) + self.assertIsNone(document.document_type) + self.assertEqual( + list(document.tags.all()), + [self.t2, self.t3], + ) + self.assertIsNone(document.storage_path) + self.assertIsNone(document.owner) + self.assertEqual( + list( + get_users_with_perms( + document, + only_with_perms_in=["view_document"], ), - [self.user2], - ) - self.assertEqual( - list( - get_groups_with_perms( - document, - ), + ), + [self.user2], + ) + self.assertEqual( + list( + get_groups_with_perms( + document, ), - [self.group2], - ) - self.assertEqual( - list( - get_users_with_perms( - document, - only_with_perms_in=["change_document"], - ), + ), + [self.group2], + ) + self.assertEqual( + list( + get_users_with_perms( + document, + only_with_perms_in=["change_document"], ), - [self.user2], - ) - self.assertEqual( - list( - get_groups_with_perms( - document, - ), + ), + [self.user2], + ) + self.assertEqual( + list( + get_groups_with_perms( + document, ), - [self.group2], - ) - self.assertEqual( - document.title, - "Doc from None", - ) - self.assertEqual( - list(document.custom_fields.all().values_list("field", flat=True)), - [self.cf2.pk], - ) + ), + [self.group2], + ) + self.assertEqual( + document.title, + "Doc from None", + ) + self.assertEqual( + list(document.custom_fields.all().values_list("field", flat=True)), + [self.cf2.pk], + ) info = cm.output[0] expected_str = f"Document matched {trigger} from {w}" self.assertIn(expected_str, info) + @pytest.mark.usefixtures("fake_progress_manager") def test_removal_action_document_consumed_remove_all(self) -> None: """ GIVEN: @@ -3312,49 +3350,48 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="INFO") as cm: - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - ), - None, - ) - document = Document.objects.first() - assert document is not None - self.assertIsNone(document.correspondent) - self.assertIsNone(document.document_type) - self.assertEqual(document.tags.all().count(), 0) + with self.assertLogs("paperless.matching", level="INFO") as cm: + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) + document = Document.objects.first() + assert document is not None + self.assertIsNone(document.correspondent) + self.assertIsNone(document.document_type) + self.assertEqual(document.tags.all().count(), 0) - self.assertIsNone(document.storage_path) - self.assertIsNone(document.owner) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["view_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual( - get_users_with_perms( - document, - only_with_perms_in=["change_document"], - ).count(), - 0, - ) - group_perms: QuerySet[Any] = get_groups_with_perms(document) - self.assertEqual(group_perms.count(), 0) - self.assertEqual( - document.custom_fields.all() - .values_list( - "field", - ) - .count(), - 0, + self.assertIsNone(document.storage_path) + self.assertIsNone(document.owner) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["view_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual( + get_users_with_perms( + document, + only_with_perms_in=["change_document"], + ).count(), + 0, + ) + group_perms: QuerySet[Any] = get_groups_with_perms(document) + self.assertEqual(group_perms.count(), 0) + self.assertEqual( + document.custom_fields.all() + .values_list( + "field", ) + .count(), + 0, + ) info = cm.output[0] expected_str = f"Document matched {trigger} from {w}" @@ -3395,7 +3432,7 @@ class TestWorkflows( original_filename="sample.pdf", ) - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) self.client.force_authenticate(user=superuser) self.client.patch( @@ -3836,6 +3873,7 @@ class TestWorkflows( ) @mock.patch("httpx.post") @mock.patch("django.core.mail.message.EmailMessage.send") + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_email_consumption_started( self, mock_email_send, @@ -3881,15 +3919,14 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="INFO"): - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - ), - None, - ) + with self.assertLogs("paperless.matching", level="INFO"): + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) mock_email_send.assert_called_once() @@ -4191,7 +4228,11 @@ class TestWorkflows( expected_str = "Error occurred sending webhook" self.assertIn(expected_str, cm.output[0]) - def test_workflow_webhook_action_url_invalid_params_headers(self) -> None: + @mock.patch("documents.workflows.webhooks.send_webhook.apply_async") + def test_workflow_webhook_action_url_invalid_params_headers( + self, + mock_post, + ) -> None: """ GIVEN: - Document updated workflow with webhook action @@ -4200,6 +4241,7 @@ class TestWorkflows( - Document that matches is updated THEN: - Error is logged + - The webhook is still queued, with empty data and headers """ trigger = WorkflowTrigger.objects.create( type=WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED, @@ -4236,6 +4278,11 @@ class TestWorkflows( expected_str = "Error occurred parsing webhook headers" self.assertIn(expected_str, cm.output[1]) + mock_post.assert_called_once() + kwargs = mock_post.call_args.kwargs["kwargs"] + self.assertEqual(kwargs["data"], {}) + self.assertEqual(kwargs["headers"], {}) + @mock.patch("httpx.Client.post") def test_workflow_webhook_send_webhook_task(self, mock_post) -> None: mock_post.return_value = mock.Mock( @@ -4303,6 +4350,7 @@ class TestWorkflows( self.assertIn(expected_str, cm.output[0]) @mock.patch("documents.workflows.webhooks.send_webhook.apply_async") + @pytest.mark.usefixtures("fake_progress_manager") def test_workflow_webhook_action_consumption(self, mock_post) -> None: """ GIVEN: @@ -4343,15 +4391,14 @@ class TestWorkflows( self.dirs.scratch_dir / "simple.pdf", ) - with mock.patch("documents.tasks.ProgressManager", DummyProgressManager): - with self.assertLogs("paperless.matching", level="INFO"): - tasks.consume_file( - ConsumableDocument( - source=DocumentSource.ConsumeFolder, - original_file=test_file, - ), - None, - ) + with self.assertLogs("paperless.matching", level="INFO"): + tasks.consume_file( + ConsumableDocument( + source=DocumentSource.ConsumeFolder, + original_file=test_file, + ), + None, + ) mock_post.assert_called_once() @@ -4412,18 +4459,18 @@ class TestWorkflows( ) @mock.patch("documents.bulk_edit.remove_password") - def test_password_removal_action_fails_without_correct_password( + def test_password_removal_action_skips_blank_and_whitespace_passwords( self, mock_remove_password, ) -> None: """ GIVEN: - Workflow password removal action - - No correct password provided + - Only blank and whitespace-only passwords configured WHEN: - Document updated triggering the workflow THEN: - - Password removal is attempted for all passwords and fails + - Password removal is not attempted """ doc = Document.objects.create( title="Protected", @@ -4444,6 +4491,60 @@ class TestWorkflows( mock_remove_password.assert_not_called() + @mock.patch("documents.bulk_edit.remove_password") + def test_password_removal_action_fails_without_correct_password( + self, + mock_remove_password, + ) -> None: + """ + GIVEN: + - Workflow password removal action + - No configured password is correct + WHEN: + - Document updated triggering the workflow + THEN: + - Password removal is attempted for every configured password and fails + """ + doc = Document.objects.create( + title="Protected", + checksum="pw-checksum-3", + ) + trigger = WorkflowTrigger.objects.create( + type=WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED, + ) + action = WorkflowAction.objects.create( + type=WorkflowAction.WorkflowActionType.PASSWORD_REMOVAL, + passwords=["wrong", "also-wrong"], + ) + workflow = Workflow.objects.create(name="Password workflow wrong passwords") + workflow.triggers.add(trigger) + workflow.actions.add(action) + + mock_remove_password.side_effect = ValueError("wrong password") + + with self.assertLogs("paperless.workflows.actions", level="ERROR"): + run_workflows(trigger.type, doc) + + assert mock_remove_password.call_count == 2 + mock_remove_password.assert_has_calls( + [ + mock.call( + [doc.id], + password="wrong", + update_document=True, + user=doc.owner, + source_paths_by_id=None, + ), + mock.call( + [doc.id], + password="also-wrong", + update_document=True, + user=doc.owner, + source_paths_by_id=None, + ), + ], + ) + @mock.patch("documents.bulk_edit.remove_password") def test_password_removal_action_skips_without_passwords( self, @@ -5357,7 +5458,7 @@ class TestDateWorkflowLocalization( c = Correspondent.objects.create(name="Correspondent Name") client = APIClient() - superuser = User.objects.create_superuser("superuser") + superuser = UserFactory(username="superuser", superuser=True) client.force_authenticate(user=superuser) trigger = WorkflowTrigger.objects.create( @@ -5413,6 +5514,7 @@ class TestDateWorkflowLocalization( ), ], ) + @pytest.mark.usefixtures("fake_progress_manager") def test_document_consumption_workflow_localization( self, tmp_path: Path, @@ -5449,10 +5551,6 @@ class TestDateWorkflowLocalization( # Temporarily override "now" for the environment so templates using # added/created placeholders behave as if it's a different system date. with ( - mock.patch( - "documents.tasks.ProgressManager", - DummyProgressManager, - ), mock.patch( "django.utils.timezone.now", return_value=self.TEST_DATETIME, diff --git a/src/documents/tests/utils.py b/src/documents/tests/utils.py index 7e08b65a8..63e907855 100644 --- a/src/documents/tests/utils.py +++ b/src/documents/tests/utils.py @@ -1,242 +1,16 @@ -import shutil -import tempfile -import time -import warnings -from collections import namedtuple -from collections.abc import Callable from collections.abc import Generator from collections.abc import Iterator from contextlib import contextmanager -from os import PathLike from pathlib import Path -from typing import Any from unittest import mock -import httpx -import pytest -from django.apps import apps -from django.db import connection -from django.db.migrations.executor import MigrationExecutor -from django.http import StreamingHttpResponse -from django.test import TransactionTestCase -from django.test import override_settings - from documents.consumer import AsnCheckPlugin from documents.consumer import ConsumerPlugin from documents.consumer import ConsumerPreflightPlugin from documents.data_models import ConsumableDocument from documents.data_models import DocumentMetadataOverrides from documents.data_models import DocumentSource -from documents.parsers import ParseError -from documents.plugins.helpers import ProgressStatusOptions - - -def setup_directories(): - dirs = namedtuple("Dirs", ()) - - dirs.data_dir = Path(tempfile.mkdtemp()).resolve() - dirs.scratch_dir = Path(tempfile.mkdtemp()).resolve() - dirs.media_dir = Path(tempfile.mkdtemp()).resolve() - dirs.consumption_dir = Path(tempfile.mkdtemp()).resolve() - dirs.static_dir = Path(tempfile.mkdtemp()).resolve() - 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" - - 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, - SCRATCH_DIR=dirs.scratch_dir, - MEDIA_ROOT=dirs.media_dir, - ORIGINALS_DIR=dirs.originals_dir, - THUMBNAIL_DIR=dirs.thumbnail_dir, - ARCHIVE_DIR=dirs.archive_dir, - CONSUMPTION_DIR=dirs.consumption_dir, - LOGGING_DIR=dirs.logging_dir, - INDEX_DIR=dirs.index_dir, - STATIC_ROOT=dirs.static_dir, - MODEL_FILE=dirs.data_dir / "classification_model.pickle", - MEDIA_LOCK=dirs.media_dir / "media.lock", - ) - dirs.settings_override.enable() - - return dirs - - -def remove_dirs(dirs) -> None: - shutil.rmtree(dirs.media_dir, ignore_errors=True) - shutil.rmtree(dirs.data_dir, ignore_errors=True) - shutil.rmtree(dirs.scratch_dir, ignore_errors=True) - shutil.rmtree(dirs.consumption_dir, ignore_errors=True) - shutil.rmtree(dirs.static_dir, ignore_errors=True) - dirs.settings_override.disable() - - -@contextmanager -def paperless_environment(): - dirs = None - try: - dirs = setup_directories() - yield dirs - finally: - if dirs: - remove_dirs(dirs) - - -def util_call_with_backoff( - method_or_callable: Callable, - args: list | tuple, - *, - skip_on_50x_err=True, -) -> tuple[bool, Any]: - """ - For whatever reason, the images started during the test pipeline like to - segfault sometimes, crash and otherwise fail randomly, when run with the - exact files that usually pass. - - So, this function will retry the given method/function up to 3 times, with larger backoff - periods between each attempt, in hopes the issue resolves itself during - one attempt to parse. - - This will wait the following: - - Attempt 1 - 20s following failure - - Attempt 2 - 40s following failure - - Attempt 3 - 80s following failure - - """ - result = None - succeeded = False - retry_time = 20.0 - retry_count = 0 - status_codes = [] - max_retry_count = 3 - - while retry_count < max_retry_count and not succeeded: - try: - result = method_or_callable(*args) - - succeeded = True - except ParseError as e: # pragma: no cover - cause_exec = e.__cause__ - if cause_exec is not None and isinstance(cause_exec, httpx.HTTPStatusError): - status_codes.append(cause_exec.response.status_code) - warnings.warn( - f"HTTP Exception for {cause_exec.request.url} - {cause_exec}", - ) - else: - warnings.warn(f"Unexpected error: {e}") - except Exception as e: # pragma: no cover - warnings.warn(f"Unexpected error: {e}") - - retry_count = retry_count + 1 - - time.sleep(retry_time) - retry_time = retry_time * 2.0 - - if ( - not succeeded - and status_codes - and skip_on_50x_err - and all(httpx.codes.is_server_error(code) for code in status_codes) - ): - pytest.skip("Repeated HTTP 50x for service") # pragma: no cover - - return succeeded, result - - -def read_streaming_response(response: StreamingHttpResponse) -> bytes: - """Consume a StreamingHttpResponse/FileResponse and close it.""" - content = b"".join(response.streaming_content) - response.close() - return content - - -class DirectoriesMixin: - """ - Creates and overrides settings for all folders and paths, then ensures - they are cleaned up on exit - """ - - def setUp(self) -> None: - from documents.search import reset_backend - - reset_backend() - self.dirs = setup_directories() - super().setUp() - - def tearDown(self) -> None: - from documents.search import reset_backend - - super().tearDown() - reset_backend() - remove_dirs(self.dirs) - - -class FileSystemAssertsMixin: - """ - Utilities for checks various state information of the file system - """ - - def assertIsFile(self, path: PathLike[str] | str) -> None: - self.assertTrue(Path(path).resolve().is_file(), f"File does not exist: {path}") - - def assertIsNotFile(self, path: PathLike[str] | str) -> None: - self.assertFalse(Path(path).resolve().is_file(), f"File does exist: {path}") - - def assertIsDir(self, path: PathLike[str] | str) -> None: - self.assertTrue(Path(path).resolve().is_dir(), f"Dir does not exist: {path}") - - def assertIsNotDir(self, path: PathLike[str] | str) -> None: - self.assertFalse(Path(path).resolve().is_dir(), f"Dir does exist: {path}") - - def assertFilesEqual( - self, - path1: PathLike[str] | str, - path2: PathLike[str] | str, - ) -> None: - path1 = Path(path1) - path2 = Path(path2) - import hashlib - - hash1 = hashlib.sha256(path1.read_bytes()).hexdigest() - hash2 = hashlib.sha256(path2.read_bytes()).hexdigest() - - self.assertEqual(hash1, hash2, "File SHA256 mismatch") - - def assertFileCountInDir(self, path: PathLike[str] | str, count: int) -> None: - path = Path(path).resolve() - self.assertTrue(path.is_dir(), f"Path {path} is not a directory") - files = [x for x in path.iterdir() if x.is_file()] - self.assertEqual( - len(files), - count, - f"Path {path} contains {len(files)} files instead of {count} files", - ) - - -class ConsumerProgressMixin: - """ - Mocks the Consumer _send_progress, preventing attempts to connect to Redis - and allowing access to its calls for verification - """ - - def setUp(self) -> None: - self.send_progress_patcher = mock.patch( - "documents.consumer.Consumer._send_progress", - ) - self.send_progress_mock = self.send_progress_patcher.start() - super().setUp() - - def tearDown(self) -> None: - super().tearDown() - self.send_progress_patcher.stop() +from paperless_testing.fakes.progress import FakeProgressManager class ConsumeTaskMixin: @@ -274,64 +48,6 @@ class ConsumeTaskMixin: yield (task_kwargs["input_doc"], task_kwargs["overrides"]) -class TestMigrations(TransactionTestCase): - @property - def app(self): - return apps.get_containing_app_config(type(self).__module__).name - - migrate_from = None - dependencies = None - migrate_to = None - auto_migrate = True - - def setUp(self) -> None: - super().setUp() - - assert self.migrate_from and self.migrate_to, ( - f"TestCase '{type(self).__name__}' must define migrate_from and migrate_to properties" - ) - self.migrate_from = [(self.app, self.migrate_from)] - if self.dependencies is not None: - self.migrate_from.extend(self.dependencies) - self.migrate_to = [(self.app, self.migrate_to)] - executor = MigrationExecutor(connection) - old_apps = executor.loader.project_state(self.migrate_from).apps - - # Reverse to the original migration - executor.migrate(self.migrate_from) - - self.setUpBeforeMigration(old_apps) - - self.apps = old_apps - - if self.auto_migrate: - self.performMigration() - - def performMigration(self) -> None: - # Run the migration to test - executor = MigrationExecutor(connection) - executor.loader.build_graph() # reload. - executor.migrate(self.migrate_to) - - self.apps = executor.loader.project_state(self.migrate_to).apps - - def setUpBeforeMigration(self, apps) -> None: - pass - - def tearDown(self) -> None: - """ - Ensure the database schema is restored to the latest migration after - each migration test, so subsequent tests run against HEAD. - """ - try: - executor = MigrationExecutor(connection) - executor.loader.build_graph() - targets = executor.loader.graph.leaf_nodes() - executor.migrate(targets) - finally: - super().tearDown() - - class SampleDirMixin: SAMPLE_DIR = Path(__file__).parent / "samples" @@ -348,7 +64,7 @@ class GetConsumerMixin: mailrule_id: int | None = None, ) -> Generator[ConsumerPlugin, None, None]: # Store this for verification - self.status = DummyProgressManager(filepath.name, None) + self.status = FakeProgressManager(filepath.name, None) doc = ConsumableDocument( source, original_file=filepath, @@ -384,63 +100,3 @@ class GetConsumerMixin: yield reader finally: reader.cleanup() - - -class DummyProgressManager: - """ - A dummy handler for progress management that doesn't actually try to - connect to Redis. Payloads are stored for test assertions if needed. - - Use it with - mock.patch("documents.tasks.ProgressManager", DummyProgressManager) - """ - - def __init__(self, filename: str, task_id: str | None = None) -> None: - self.filename = filename - self.task_id = task_id - self.payloads = [] - - def __enter__(self): - self.open() - return self - - def __exit__(self, exc_type, exc_val, exc_tb) -> None: - self.close() - - def open(self) -> None: - pass - - def close(self) -> None: - pass - - def send_progress( - self, - status: ProgressStatusOptions, - message: str, - current_progress: int, - max_progress: int, - *, - document_id: int | None = None, - owner_id: int | None = None, - users_can_view: list[int] | None = None, - groups_can_view: list[int] | None = None, - ) -> None: - # Ensure the layer is open - self.open() - - payload = { - "type": "status_update", - "data": { - "filename": self.filename, - "task_id": self.task_id, - "current_progress": current_progress, - "max_progress": max_progress, - "status": status, - "message": message, - "document_id": document_id, - "owner_id": owner_id, - "users_can_view": users_can_view or [], - "groups_can_view": groups_can_view or [], - }, - } - self.payloads.append(payload) diff --git a/src/documents/versioning.py b/src/documents/versioning.py index b1f0862f0..a3c005587 100644 --- a/src/documents/versioning.py +++ b/src/documents/versioning.py @@ -166,6 +166,25 @@ def get_latest_version_for_root( return latest or root_doc +def latest_version(document: Document) -> Document: + """ + The newest version of a root document, or the document itself if it has + no versions or is a version. Reads a prefetched "versions" lookup when + there is one and queries otherwise. + """ + if document.root_document_id is not None or document.pk is None: + return document + prefetched_cache = getattr(document, "_prefetched_objects_cache", None) + prefetched_versions = ( + prefetched_cache.get("versions") if isinstance(prefetched_cache, dict) else None + ) + if prefetched_versions is None: + return get_latest_version_for_root(document) + if not prefetched_versions: + return document + return sort_versions_newest_first(list(prefetched_versions))[0] + + def resolve_requested_version_for_root( root_doc: Document, request: Request, diff --git a/src/documents/views.py b/src/documents/views.py index cc09709a4..515fd33d9 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -49,7 +49,6 @@ from django.db.models import Sum from django.db.models import When from django.db.models.functions import Coalesce from django.db.models.functions import Lower -from django.db.models.manager import Manager from django.http import FileResponse from django.http import Http404 from django.http import HttpRequest @@ -194,6 +193,7 @@ from documents.serialisers import BulkEditSerializer from documents.serialisers import CorrespondentSerializer from documents.serialisers import CustomFieldSerializer from documents.serialisers import DeleteDocumentsSerializer +from documents.serialisers import DocumentBarcodeSerializer from documents.serialisers import DocumentSelectionSerializer from documents.serialisers import DocumentSerializer from documents.serialisers import DocumentTypeSerializer @@ -846,6 +846,7 @@ class EmailDocumentDetailSchema(EmailSerializer): required=False, ), "lang": serializers.CharField(), + "barcodes": DocumentBarcodeSerializer(many=True), }, ), HTTPStatus.BAD_REQUEST: None, @@ -1193,6 +1194,7 @@ class DocumentViewSet( "version_label", "root_document_id", "version_index", + "page_count", ), ), "tags", @@ -1272,13 +1274,16 @@ class DocumentViewSet( if ( "version" not in request.query_params or not isinstance(response.data, dict) - or "content" not in response.data + or not ({"content", "page_count"} & response.data.keys()) ): return response root_doc = self.get_object() content_doc = self._resolve_file_doc(root_doc, request) - response.data["content"] = content_doc.content or "" + if "content" in response.data: + response.data["content"] = content_doc.content or "" + if "page_count" in response.data: + response.data["page_count"] = content_doc.page_count return response def update(self, request, *args, **kwargs): @@ -1523,6 +1528,7 @@ class DocumentViewSet( "original_filename": doc.original_filename, "archive_size": archive_filesize, "archive_metadata": archive_metadata, + "barcodes": DocumentBarcodeSerializer(doc.barcodes.all(), many=True).data, } lang = "en" @@ -2968,11 +2974,15 @@ class DocumentOperationPermissionMixin(PassUserMixin, DocumentSelectionMixin): if user.is_superuser: return True - document_objs = Document.objects.select_related("owner").filter( - pk__in=documents, - ) + root_docs = { + get_root_document(doc) + for doc in Document.objects.select_related( + "owner", + "root_document__owner", + ).filter(pk__in=documents) + } user_is_owner_of_all_documents = all( - (doc.owner == user or doc.owner is None) for doc in document_objs + (doc.owner == user or doc.owner is None) for doc in root_docs ) # check global and object permissions for all documents @@ -2980,9 +2990,13 @@ class DocumentOperationPermissionMixin(PassUserMixin, DocumentSelectionMixin): user.has_perm( "documents.change_document", ) - and not document_objs.exclude( + and not Document.global_objects.filter( + pk__in=[doc.pk for doc in root_docs], + ) + .exclude( pk__in=permitted_document_ids(user, perm="change_document"), - ).exists() + ) + .exists() ) # check ownership for methods that change original document @@ -3141,6 +3155,38 @@ class BulkEditView(DocumentOperationPermissionMixin): serializer_class = BulkEditSerializer + @staticmethod + def _snapshot_field(doc_ids: list[int], field: str) -> dict[int, Any]: + """ + Returns each document's current value of field, for the audit log. + + Tags and custom fields are one row per value, so they are gathered + into a sorted list of pks per document (empty when there are none). + Reading them through Document.values() instead would join those rows + and return one arbitrary value per document. + """ + if field == "tags": + rows = ( + Document.tags.through.objects.filter(document_id__in=doc_ids) + .order_by("tag_id") + .values_list("document_id", "tag_id") + ) + elif field == "custom_fields": + rows = ( + CustomFieldInstance.objects.filter(document_id__in=doc_ids) + .order_by("pk") + .values_list("document_id", "pk") + ) + else: + return dict( + Document.objects.filter(pk__in=doc_ids).values_list("pk", field), + ) + + values: dict[int, list[int]] = {doc_id: [] for doc_id in doc_ids} + for doc_id, pk in rows: + values[doc_id].append(pk) + return values + def post(self, request, *args, **kwargs): request_method = request.data.get("method") api_version = int(request.version or settings.REST_FRAMEWORK["DEFAULT_VERSION"]) @@ -3187,41 +3233,19 @@ class BulkEditView(DocumentOperationPermissionMixin): try: modified_field = self.MODIFIED_FIELD_BY_METHOD.get(method.__name__, None) if settings.AUDIT_LOG_ENABLED and modified_field: - old_documents = { - obj["pk"]: obj - for obj in Document.objects.filter(pk__in=documents).values( - "pk", - "correspondent", - "document_type", - "storage_path", - "tags", - "custom_fields", - "deleted_at", - "checksum", - ) - } + old_values = self._snapshot_field(documents, modified_field) result = method(documents, **parameters) if settings.AUDIT_LOG_ENABLED and modified_field: - new_documents = Document.objects.filter(pk__in=documents) - for doc in new_documents: - old_value = old_documents[doc.pk][modified_field] - new_value = getattr(doc, modified_field) - - if isinstance(new_value, Model): - # correspondent, document type, etc. - new_value = new_value.pk - elif isinstance(new_value, Manager): - # tags, custom fields - new_value = list(new_value.values_list("pk", flat=True)) - + new_values = self._snapshot_field(documents, modified_field) + for doc in Document.objects.filter(pk__in=documents): LogEntry.objects.log_create( instance=doc, changes={ modified_field: [ - old_value, - new_value, + old_values[doc.pk], + new_values[doc.pk], ], }, action=LogEntry.Action.UPDATE, diff --git a/src/locale/af_ZA/LC_MESSAGES/django.po b/src/locale/af_ZA/LC_MESSAGES/django.po index f61bf2f46..67afdb1b2 100644 --- a/src/locale/af_ZA/LC_MESSAGES/django.po +++ b/src/locale/af_ZA/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Afrikaans\n" "Language: af_ZA\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "eienaar" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Geen" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Enige woord" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Alle woorde" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Presiese ooreenkoms" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Reguliere uitdrukking" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "" @@ -89,20 +89,20 @@ msgstr "" msgid "Automatic" msgstr "Outomaties" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "naam" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "ooreenkoms" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "ooreenkomsalgoritme" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "hoofletterongevoelig" @@ -166,7 +166,7 @@ msgstr "bergpaaie" msgid "title" msgstr "titel" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "inhoud" @@ -202,8 +202,8 @@ msgstr "bladsy telling" msgid "The number of pages of the document." msgstr "Bladsy telling in die dokument." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "geskep" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumente" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabel" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Klein Kaarte" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Groot Kaarte" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titel" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Geskep" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "sorteerveld" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "sorteer omgekeerd" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "bewaarde aansig" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "bewaarde aansigte" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "titel bevat" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "inhoud bevat" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN is" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korrespondent is" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "dokumenttipe is" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "is in inmandjie" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "het etiket" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "het enige etiket" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "geskep voor" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "geskep na" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "jaar geskep is" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "maand geskep is" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dag geskep is" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "toegevoeg voor" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "toegevoeg na" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "gewysig voor" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "gewysig na" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "het geen etiket nie" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "het geen ASN nie" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "titel of inhoud bevat" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "deursoek inhoud" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "het etikette in" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN groter as" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN kleiner as" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "bewaarpad is" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "reëltipe" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "waarde" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "filterreël" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "filterreëls" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Taak-ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Resultaatdata" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Bevestig" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "gebruiker" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "nota" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notas" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Verwerk slegs dokumente wat volledig met hierdie lêernaam ooreenkom indien gespesifiseer. U kan jokertekens soos *.pdf of *faktuur* gebruik. Hoofletterongevoelig." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-pos" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "volgorde" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "ken hierdie etiket toe" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "ken hierdie dokumenttipe toe" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "ken hierdie korrespondent toe" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Ongeldige kleur." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Lêertipe %(type)s word nie ondersteun nie" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Ongeldige veranderlike bespeur." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Engels (VS)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabies" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Belorussies" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalaans" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tsjeggies" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Deens" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Duits" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Engels (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spaans" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Fins" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Frans" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italiaans" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburgs" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Nederlands" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Pools" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugees (Brasilië)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugees" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Roemeens" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russies" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Sloweens" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serwies" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Sweeds" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turks" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Vereenvoudigde Sjinees" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administrasie" diff --git a/src/locale/am_ET/LC_MESSAGES/django.po b/src/locale/am_ET/LC_MESSAGES/django.po index d16dec6f1..032e74b59 100644 --- a/src/locale/am_ET/LC_MESSAGES/django.po +++ b/src/locale/am_ET/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Amharic\n" "Language: am_ET\n" @@ -57,31 +57,31 @@ msgstr "ከፍተኛው የጥገኝነት ጥልቀት አልፏል።" msgid "Custom field not found" msgstr "ይህ ልማድ አልተገኘም" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "ባለቤት" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "ምንም" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "ማንኛውም ቃል" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "ሁሉም ቃል" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "ትክክለኛ ተዛማጅ" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "መደበኛ አገላለጽ" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "ግልጽ ያልሆነ ቃል" @@ -89,20 +89,20 @@ msgstr "ግልጽ ያልሆነ ቃል" msgid "Automatic" msgstr "" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "ስም" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "የሚጋጠም/ ተዛማጅ" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "ተዛማጅ ስልተ ቀመር" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "ግድ የለሽ ነው" @@ -166,7 +166,7 @@ msgstr "የማከማቻ መንገዶች" msgid "title" msgstr "ርዕስ" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "ይዘት" @@ -202,8 +202,8 @@ msgstr "የገጽ ብዛት" msgid "The number of pages of the document." msgstr "የሰነዱ የገጾች ብዛት።" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "የተፈጠረ" @@ -267,1395 +267,1416 @@ msgstr "የስሪት መለያ" msgid "Optional short label for a document version." msgstr "ለሰነድ ስሪት አማራጭ አጭር መለያ።" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "ሰነድ" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "ሰነዶች" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "መለያዎች" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "ጠረጴዛ" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "ትናንሽ ካርዶች" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "ትላልቅ ካርዶች" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "ርዕስ" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "የተሰራው" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "የተጨመረው" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "ዘጋቢ" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "የሰነድ አይነት" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "የማጠራቀሚያ መንገድ" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "ማስታወሻ" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "ባለቤት" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "የተጋራ" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "ገጾች" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "ቦታ ማሰናዳት" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "ቦታ መመለስ" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "የገጽ ብዛት ማያ" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "የማሳያ ሁኔታን ይመልከቱ" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "የሰነድ ማሳያ መስኮች" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "የተመዘገበ እይታ" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "የተመዘገቡ እይታዎች" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "ርዕሱ የሚያካትተው" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "ይዘቱ የያዘው" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN ማለት" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "ተከታታይ ማለት" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "የሰነድ አይነት ማለት" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "በገቢ መልዕክት ሳጥን ውስጥ ነው" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "መለያ ያለው" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "ማንኛውም መለያ ያለው" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "በፊት የተፈጠረ" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "በኋላ የተፈጠረ" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "የተፈጠረበት አመት" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "የተፈጠረበት ወር" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "የተፈጠረበት ቀን" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "በፊት የተጨመረ" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "በኋላ የተጨመረ" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "በፊት የተቀናበረ" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "" diff --git a/src/locale/ar_AR/LC_MESSAGES/django.po b/src/locale/ar_AR/LC_MESSAGES/django.po index bf509f2d6..07c69e219 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Arabic\n" "Language: ar_SA\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "لم يتم العثور على حقل مخصص" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "مالك" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "لا شيء" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "أي كلمة" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "كل الكلمات" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "تطابق تام" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "التعابير النظامية" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "كلمة مبهمة" @@ -89,20 +89,20 @@ msgstr "كلمة مبهمة" msgid "Automatic" msgstr "تلقائي" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "اسم" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "تطابق" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "خوارزمية مطابقة" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "غير حساس" @@ -166,7 +166,7 @@ msgstr "مسارات التخزين" msgid "title" msgstr "عنوان" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "محتوى" @@ -202,8 +202,8 @@ msgstr "عدد الصفحات" msgid "The number of pages of the document." msgstr "2 - عدد صفحات الوثيقة." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "أُنشئ" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "مستند" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "المستندات" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "أرشيف" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "تصفية" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "سِمَات" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "جدول" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "بطاقات صغيرة" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "بطاقات كبيرة" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "العنوان" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "تمّ إنشاؤه" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "تمّت إضافته" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "المُراسِل" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "نوع المستند" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "مسار الحفظ" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "ملاحظة" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "المالك" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "مُشتَرَك" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "الصفحات" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "فرز الحقل" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "فرز بالعكس" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "عرض حجم الصفحة" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "عرض وضعية العرض" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "حقول عرض المستند" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "العرض المحفوظ" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "العروض المحفوظة" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "العنوان يحتوي" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "المحتوى يحتوي" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN هو" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "المراسل هو" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "نوع المستند" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "موجود في علبة الوارد" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "لديه علامة" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "لديه أي وسم" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "أنشئت قبل" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "أنشئت بعد" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "أنشئت سنة" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "أنشئت شهر" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "أنشئت يوم" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "أضيف قبل" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "أضيف بعد" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "عُدِّل قبل" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "عُدِّل بعد" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "ليس لديه علامة" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "ليس لديه ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "العنوان أو المحتوى يحتوي" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "استعلام كامل النص" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "المزيد مثل هذا" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "لديه علامات في" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN أكبر من" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN أقل من" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "مسار التخزين" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "له مراسل في" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "لا يوجد مراسل في" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "يحتوي على نوع المستند في" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "ليس لديه نوع مستند في" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "لديه مسار تخزين في" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "ليس لديه مسار تخزين في" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "المالك هو" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "لديه مالك في" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "ليس لديه مالك" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "ليس لديه مالك في" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "له قيمة حقل مخصص" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "تم المشاركة من قبلي" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "لديه حقول مخصصة" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "لديه حقل مخصص في" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "لا يحتوي على حقل مخصص في" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "لا يحتوي على حقل مخصص" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "تمت الإضافة إلى" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "تمت الإضافة من" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "نوع الـ mime" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "نوع القاعدة" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "قيمة" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "تصفية القاعدة" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "تصفية القواعد" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "‏مِلَفّ الاستهلاك" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "تصنيف التدريب" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "تحسين الفهرسة" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "جلب البريد" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "مجدول" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "الرمز التعريفي للمهمة" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "نتائج البيانات" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "مُعترف" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "ملاحظه على المستند" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "المستخدم" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "ملاحظة" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "ملاحظات" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "الأصل" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "تاريخ الانتهاء" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "مشاركة الرابط" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "مشاركة الروابط" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "سلسلة نصيّة" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "رابط" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "التاريخ" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "قيمة منطقية" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "عدد صحيح" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "عائم" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "قيمة نقدية" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "رابط المستند" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "تحديد" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "نوع البيانات" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "بيانات إضافية" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "بيانات إضافية للحقل المخصص، مثل تحديد خيارات" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "حقل مخصص" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "حقول مخصصة" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "مثيل الحقل المخصص" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "مثيلات الحقل المخصصة" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "بدأ الإستهلاك" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "تم إضافة المستند" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "تم تحديث المستند" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "‏مِلَفّ الاستهلاك" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "تحميل Api" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "التعديل" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "حقل مخصص" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "نوع محفز انطلاق سير العمل" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "مسار التصفية" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "فقط استهلك المستندات ذات المسار الذي يطابق هذا إذا تم تحديده. البطاقات البرية المحددة كما * مسموح بها. الحالة غير حساسة." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "تصفية اسم الملف" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "فقط المستندات التي تتطابق تماما مع اسم هذا المِلَفّ إذا تم تحديدها. المحارف البديلة مثل *.pdf أو *الفواتير* مسموح بها. لأنها غير حساسة." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "تصفية المستندات من قاعدة البريد هذه" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "لديه هذه العلامة ( أو العلامات)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "يحتوي على هذا النوع من المستندات" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "لديه هذا المراسل" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "محفز انطلاق سير العمل" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "محفزات انطلاق سير العمل" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "نص البريد الالكتروني" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "عناوين البريد الإلكتروني المستهدفة، مفصولة بفواصل." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "تضمين المستند في البريد الإلكتروني" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "عنوان Url الخاص بـ webhook" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "عنوان URL وجهة الإشعار." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "استخدام المعلمات" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "إرسال بصيغة JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "معلمات webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "المعلمات التي يتم إرسالها مع عنوان URL الخاص بـ webhook في حالة عدم استخدام نص الطلب." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "نص الطلب الذي سيتم إرساله مع عنوان URL الخاص بـ webhook في حالة عدم استخدام المعلمات." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "إسناد مهمة" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "إزالة" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "البريد الإلكتروني" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "نوع إجراء سير العمل" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "الطلب" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "تعيين العنوان" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "تعيين هذه العلامة" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "تعيين نوع هذا المستند" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "تعيين هذا المراسل" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "تعيين مسار التخزين هذا" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "تعيين هذا المالك" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "منح صلاحيات العرض إلى هؤلاء المستخدمين" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "منح صلاحيات العرض إلى هذه المجموعات" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "منح صلاحيات التغيير لهؤلاء المستخدمين" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "منح صلاحيات التغيير إلى هذه المجموعات" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "تعيين هذه الحقول المخصصة" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "إزالة هذا الوسم (أو الوسوم)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "إزالة جميع الوسوم" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "إزالة نوع (أنواع) هذه المستندات" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "إزالة نوع أو أنواع هذه المستندات" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "إزالة هذا المراسل (أو هؤلاء المراسلين)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "حذف كل المراسلين" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "إزالة مسار (أو مسارات) التخزين هذه" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "حذف كل مسارات الحفظ" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "إزالة هذا المالك (أو المالكين)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "إزالة جميع المالكين" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "سحب صلاحيات العرض من هؤلاء المستخدمين" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "سحب صلاحيات العرض من هذه المجموعات" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "سحب أذونات التغيير من هؤلاء المستخدمين" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "سحب أذونات التغيير من هذه المجموعات" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "سحب كل الأذونات" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "حذف هذه الحقول المخصصة" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "حذف كل الحقول المخصصة" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "إجراء في سير العمل" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "إجراءات سير العمل" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "قادحات triggers" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "إجراءات" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "مفعل" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "لون خاطئ." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "نوع الملف %(type)s غير مدعوم" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "اكتشاف متغير خاطئ." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "إعدادات التطبيق paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "الإنجليزية (الولايات المتحدة)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "العربية" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "اللغة الأفريقانية" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "البيلاروسية" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "البلغارية" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "اللغة الكتالونية" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "التشيكية" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "الدانماركية" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "الألمانية" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "اليونانية" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "الإنجليزية (المملكة المتحدة)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "الإسبانية" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "الفنلندية" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "الفرنسية" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "المجرية" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "الإيطالية" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "اليابانية" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "اللوكسمبرجية" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "النرويجية" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "الهولندية" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "البولندية" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "البرتغالية (البرازيل)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "البرتغالية" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "الرومانية" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "الروسية" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "السلوفاكية" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "السلوفانية" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "الصربية" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "السويدية" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "التركية" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "الأوكرانية" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "الصينية المبسطة" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx الإدارة" diff --git a/src/locale/be_BY/LC_MESSAGES/django.po b/src/locale/be_BY/LC_MESSAGES/django.po index b2e45ef37..bdddfccf6 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Belarusian\n" "Language: be_BY\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "уладальнік" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Нiчога" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Любое слова" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Усе словы" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Дакладнае супадзенне" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Рэгулярны выраз" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "" @@ -89,20 +89,20 @@ msgstr "" msgid "Automatic" msgstr "" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "назва" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "супадзенне" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "алгарытм супастаўлення" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "без уліку рэгістра" @@ -166,7 +166,7 @@ msgstr "шляхі захоўвання" msgid "title" msgstr "назва" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "змест" @@ -202,8 +202,8 @@ msgstr "" msgid "The number of pages of the document." msgstr "" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "створаны" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "дакумент" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "дакументы" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Фільтр" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "поле сартавання" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "сартаваць у адваротным парадку" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "захаваны выгляд" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "захаваныя выгляды" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "назва змяшчае" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "змест змяшчае" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "карэспандэнт" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "тып дакумента" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "ва ўваходных" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "мае тэг" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "мае любы тэг" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "створана перад" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "створана пасля" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "год стварэння" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "месяц стварэння" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "дзень стварэння" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "даданы перад" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "даданы пасля" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "зменены перад" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "зменены пасля" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "не мае тэга" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "не мае ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "назва або змест смяшчае" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "поўнатэкставы запыт" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "мае тэгі ў" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "тып правіла" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "значэнне" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "правіла фільтрацыі" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "правілы фільтрацыі" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "карыстальнік" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Апрацоўваць толькі дакументы, якія цалкам супадаюць з імем файла (калі яно пазначана). Маскі, напрыклад *.pdf ці *рахунак*, дазволеныя. Без уліку рэгістра." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "парадак" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "прызначыць гэты тэг" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "прызначыць гэты тып дакумента" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "прызначыць гэтага карэспандэнта" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Няправільны колер." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Тып файла %(type)s не падтрымліваецца" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Выяўлена няправільная зменная." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Англійская (ЗША)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Беларуская" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Чэшская" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Дацкая" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Нямецкая" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Англійская (Вялікабрытанія)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Іспанская" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Французская" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Італьянская" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Люксембургская" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Нідэрландская" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Польская" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Партугальская (Бразілія)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Партугальская" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Румынская" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Руская" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Славенская" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Сербская" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Шведская" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Турэцкая" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Кітайская спрошчаная" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Адміністраванне Paperless-ngx" diff --git a/src/locale/bg_BG/LC_MESSAGES/django.po b/src/locale/bg_BG/LC_MESSAGES/django.po index 65b718301..d88f51f13 100644 --- a/src/locale/bg_BG/LC_MESSAGES/django.po +++ b/src/locale/bg_BG/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Bulgarian\n" "Language: bg_BG\n" @@ -57,31 +57,31 @@ msgstr "Надвишена е максималната дълбочина на msgid "Custom field not found" msgstr "Персонализирано поле не е намерено" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "собственик" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Няма" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Всяка дума" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Всички думи" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Точно съвпадение" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Регулярен израз" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Неясна дума" @@ -89,20 +89,20 @@ msgstr "Неясна дума" msgid "Automatic" msgstr "Автоматично" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "име" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "съвпадение" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "алгоритъм за съвпадение" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "без значение от големината на буквите" @@ -166,7 +166,7 @@ msgstr "пътища към хранилища" msgid "title" msgstr "заглавие" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "съдържание" @@ -202,8 +202,8 @@ msgstr "брой на страниците" msgid "The number of pages of the document." msgstr "Броят на страниците на документа." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "създадено" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "документ" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "документи" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Архив" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Филтър" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Тагове" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Таблица" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Малки картинки" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Големи картинки" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Име" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Създаден" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Добавен" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Кореспондент" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Вид документ" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Директории за съхранение" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Бележка" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Собственик" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Споделени" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "Архивен номер" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Страници" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "поле за сортиране" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "обратно сортиране" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Големина на страница" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Режим на изгледа" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Полета за показване на документи" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "запазен изглед" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "запазени изгледи" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "заглавието съдържа" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "съдържанието съдържа" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN е" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "кореспондент е" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "тип на документа е" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "е във входящата кутия" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "има етикет" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "има някакъв етикет" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "създаден преди" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "създадена след" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "годината на създаване е" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "месецът на създаване е" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "ден на създаване е" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "добавено преди" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "добавено след" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "променено преди" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "променено след" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "няма етикет" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "не притежава Архивен номер" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "заглавието или съдържанието съдържа" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "пълнотекстова заявка" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "повече като този" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "има етикети в" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "Архивен номер, по-голям от" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "Архивен номер, по-малък от" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "път към хранилище" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "има кореспондент в" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "няма кореспондент в" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "има тип документ в" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "няма тип документ в" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "има път към хранилище в" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "няма път към хранилище в" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "собственик е" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "има собственик в" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "няма собственик" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "няма собственик в" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "има стойност в ръчно зададеното поле" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "е споделено от мен" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "има персонализирани полета" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "има персонализирано поле в" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "няма персонализирано поле в" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "няма персонализирано поле" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "персонализирана заявка за полета" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "създаден до" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "създаден от" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "добавен към" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "добавен от" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "mime тип е" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "тип правило" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "стойност" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "правило за филтриране" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "правила за филтриране" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Използвайте файл" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Обучение на класификатора" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Оптимизиране на индекса" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Извличане на поща" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Планиран" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Уеб потребителски интерфейс" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID на задача" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Тип задача" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Данни за резултат" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Прието" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Бележка за документа" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "потребител" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "бележка" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "бележки" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Оригинал" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "валидност" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "връзка за споделяне" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "връзки за споделяне" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Низ" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Дата" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Булева" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Цяло число" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Плаваща запетая" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Пари" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Връзка към документ" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Избери" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "тип данни" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "допълнителни данни" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Допълнителни данни за персонализираното поле, като например опции за избор" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "персонализирано поле" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "персонализирани полета" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "инстанция на персонализирано поле" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "инстанции на персонализирани полета" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Стартирана обработка" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Документът е добавен" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Документът е обновен" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Папка за консумация" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Качване на API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Редактирано" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Персонализирано поле" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Тип на тръгъра на работния процес" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "филтриране на път" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Да се консумират само документи с път, който съответства на този, ако е зададен. Позволени са заместващи символи, посочени като *. Нечувствителен към големината на буквите." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "филтриране по файлово име" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Да се консумират само документи, които изцяло съответстват на това файлово име, ако е посочено. Разрешени са заместващи символи като *.pdf или *invoice*. Нечувствителност към големи и малки букви." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "филтриране на документи по това правило за поща" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "има този/тези етикет/и" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "има този тип на документа" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "има този кореспондент" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "график на компенсиране на дните" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Броят дни за компенсиране на задействащия график от." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "графикът се повтаря" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Ако графикът трябва да се повтаря." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "повтарящ се график за забавяне в дните" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Броят на дните между повтарящите се графици се активира." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "график на дата на полето" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Полето което проверява дали графика е активен." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "график на датите на персонализирано поле" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "тръгър на работния процес" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "тръгъри на работния процес" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "тема по имейл" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Темата на имейла може да включва някои заместители, вижте документация." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "имейл съобщение" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Съобщението (message) от имейла може да включва някои заместители, вижте документация." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "имейли до" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Имейл адресите за изпращане да са разделени със запетаи." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "добави документа в имейла" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url адрес на известяване" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "URL адресът на местоназначението за известието." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "използвайте параметрите" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "изпратете като JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "известяване параметри" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Параметрите за изпращане с URL адреса на известяване, ако тялото не е използвано." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook тяло" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Тялото, което да изпращате с URL адреса на известяване, ако параметрите не се използват." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "заглавия на известяване" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Заглавията, които да изпратите с URL адреса на известяване." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "включете документ в известяване" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Задача" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Премахване" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Имейл" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Известяване" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Тип на действието на работния процес" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ред" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "задаване на заглавие" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "задайте този етикет" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "задайте този тип документ" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "задайте този кореспондент" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "задайте този път за хранилище" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "задайте този собственик" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "предоставяне на права за преглед на тези потребители" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "предоставяне на права за преглед на тези групи" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "предоставяне на права за промяна на тези потребители" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "предоставяне на права за промяна на тези групи" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "присвояване на тези персонализирани полета" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "персонализирани стойности на полето" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Незадължителни стойности за присвояване на персонализираните полета." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "премахни този/тези етикект/и" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "премахни всички етикети" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "премахни този/тези тип/ове на документ" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "премахви всички типове на документ" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "премахни тези кореспонденти" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "прехахни всички кореспонденти" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "изтрий тези директории" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "изтрий всички директории" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "премахни всички тези собственици" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "премахни всички собственици" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "премахни всички права за прелед на тези потребители" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "премахни всички права за прелед на тези групи" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "премахни всички права за промяна на тези потребители" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "премахни всички права за прояна на тези групи" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "премахнете всички права" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "премахни тези потребителски полета" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "премахни всички потребителски полета" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "имейл" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "известяване" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "действие по работния процес" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "действия по работния процес" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "тригъри" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "действия" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "активирано" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "работен процес" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "вид активиране на работния процес" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "изпълнение на дата" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "стартиране на работния процес" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "стартиране на работните процеси" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Невалиден цвят." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Файловия тип %(type)s не се поддържа" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Засечена е невалидна променлива." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "настройки на софтуера" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Английски (САЩ)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Арабски" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Африканс" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Беларуски" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Български" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Каталунски" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Чешки" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Датски" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Немски" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Гръцки" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Английски (Великобритания)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Испански" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Финландски" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Френски" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Унгарски" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Италиански" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Японски" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Корейски" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Люксембургски" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Норвежки" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Холандски" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Полски" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Португалски (Бразилия)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Португалски" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Румънски" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Руски" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Словашки" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Словенски" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Сръбски" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Шведски" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Турски" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Украински" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Китайски опростен" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Китайски традиционен" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx администрация" diff --git a/src/locale/ca_ES/LC_MESSAGES/django.po b/src/locale/ca_ES/LC_MESSAGES/django.po index b63052a6b..2e86445b6 100644 --- a/src/locale/ca_ES/LC_MESSAGES/django.po +++ b/src/locale/ca_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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Catalan\n" "Language: ca_ES\n" @@ -57,31 +57,31 @@ msgstr "Màxima profunditat anidada excedida." msgid "Custom field not found" msgstr "Camp personalitzat no trobat" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "propietari" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Cap" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Qualsevol paraula" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Totes les paraules" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Coincidència exacte" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Expressió Regular" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Paraula Difusa" @@ -89,20 +89,20 @@ msgstr "Paraula Difusa" msgid "Automatic" msgstr "Automàtic" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nom" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "coincidència" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritme coincident" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "no distingeix entre majúscules i minúscules" @@ -166,7 +166,7 @@ msgstr "rutes emmagatzematge" msgid "title" msgstr "títol" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "contingut" @@ -202,8 +202,8 @@ msgstr "pàgines" msgid "The number of pages of the document." msgstr "El nombre de pàgines del document." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "creat" @@ -267,1395 +267,1416 @@ msgstr "etiqueta de versió" msgid "Optional short label for a document version." msgstr "Etiqueta curta opcional per la versió del document." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "document" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "documents" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arxiu" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtre" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "Etiqueta" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Etiquetes" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Taula" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Targeta Petita" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Targeta Gran" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Títol" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Creat" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Afegit" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Corresponsal" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Tipus Document" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Rutes Emmagatzematge" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Nota" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Propietari" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Compartit" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Pàgines" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "camp ordenació" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "ordre invers" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Veure mida pàgina" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Veure mode visualització" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Visualització camps document" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "vista guardada" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "vistes guardades" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "títol conté" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "contingut conté" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN és" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "corresponsal és" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "tipus document és" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "està a safata entrada" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "té etiqueta" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "conté qualsevol etiqueta" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "creat abans" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "creat després" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "any creació és" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "mes creació és" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dia creació és" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "afegit abans" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "afegit després" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modificat abans" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modificat després" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "no té etiqueta" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "no té ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "títol o contingut conté" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "consulta de text complet" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "més com aquest" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "té etiquetes a" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN més gran que" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN menor que" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "emmagatzematge és" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "té corresponsal a" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "no té corresponsal a" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "té tipus de document a" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "no té tipus de document a" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "té emmagatzematge a" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "no té emmagatzematge a" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "propietari és" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "té propietari a" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "no té propietari" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "no té propietari a" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "té camp personalitzat" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "compartit per mi" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "té camps personalitzats" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "té camp personalitzat" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "no té camp personalitzat" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "no té camp personalitzat" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "consulta de camps personalitzats" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "creat per" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "creat desde" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "afegit per" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "afegit desde" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "mime type es" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "cerca per títol simple" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "cerca per títol simple" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "tipus de regla" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "valor" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "filtra regla" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "filtra regles" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Pendent" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Iniciat" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Èxit" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Error" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Revocat" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Arxiu Consumit" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Classificador" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Verificador" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimitza index" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Recollida Correu" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM Index" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Buida Paperera" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Comprovar fluxos" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Actualització massiva" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Reprocessa Document" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Crea enllaç per compartir" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Esborrat massiu" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Programat" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Web UI" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "Pujada API" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Consum per carpeta" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Consum per Email" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Sistema" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Manual" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID Tasca" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "ID Tasca Celery" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Tipus Tasca" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Tipus de treball que es realitza" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Font desencadenant" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Què ha iniciat la tasca" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Estat" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Acabat" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Durada (segons)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Temps transcorregut des de l'inici a finalització" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Temps d'Espera (segons)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Temps des de la creació de la tasca fins a la recollida del worker" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Dades d'entrada" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Paràmetres d'entrada estructurats per a la tasca" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Dades del resultat" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Dades estructurades de resultats de l'execució de tasques" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Reconegut" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Tasca" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Tasques" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Nota pel document" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "usuari" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "nota" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notes" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Original" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "venciment" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "fitxa" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "comparteix enllaç" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "comparteix enllaços" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Processant" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Llest" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Fallit" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "mida (bytes)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "últim error" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "ruta arxiu" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "fet a" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "compartir paquet d'enllaç" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "compartir paquets d'enllaços" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Compartir paquet d'enllaç %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Cadena" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Data" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Booleà" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Enter" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Flotant" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetari" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Enllaç Document" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Selecciona" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Text Llarg" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "tipus dada" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dades addicionals" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dades addicionals per al camp personalitzat, com a opció seleccionada" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "camp personalitzat" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "camps personalitzats" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instància de camp personalitzat" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instàncies de camps personalitzats" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Consumició Començada" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Document Afegit" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Document Actualitzat" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Directori Consumició" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Pujada Api" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Modificat" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Camp personalitzat" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tipus Activador de Flux" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtra camins" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Consumeix documents amb la ruta que coincideixi si està especificada. Wilcards especificats amb * estan permessos, no sensitiu." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtra nom arxiu" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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 insensible." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtra documents d'aquesta regla de correu" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "té aquestes etiquete(s)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "té totes aquestes etiquetes" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "no té aquestes etiquetes" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "té aquest tipus de document" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "té un d'aquests tipus de document" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "no té aquest tipus de documents" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "té aquest corresponsal" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "no té aquests corresponsals" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "té un d'aquests corresponsals" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "té aquesta ruta emmagatzematge" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "té una d'aquestes rutes d'emmagatzematge" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "no té aquestes rutes d'emmagatzematge" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "consulta de camp personalitzat de filtratge" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Expressió de consulta de camp personalitzat codificada en JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "programar dies de compensació" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "El nombre de dies per compensar l'activació de la programació." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "peogramació recurrent" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Si la programació ha de ser recurrent." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "programa el retard recurrent en dies" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "El nombre de dies entre els activadors de la programació recurrent." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "camp de data de programació" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "El camp per comprovar si hi ha un activador de programació." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "camp personalitzat de data de programació" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "disparador de flux" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "disparadors de fluxos" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "assumpte del Email" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "L'assumpte del correu, pot incloure alguns marcadors de posició, vegeu documentació." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "cos de l'Email" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "El cos (missatge) del correu electrònic, pot incloure alguns marcadors de posició, vegeu documentació." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "emails a" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Les adreces de correu de destinació, separades per comes." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "incloure document al correu" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook url" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "L'URL de destinació de la notificació." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "empra paràmetres" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "enviar com a JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "paràmetres del webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Els paràmetres que cal enviar amb l'URL del webhook si no s'utilitza el cos." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook body" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "El cos que cal enviar amb l'URL del webhook si no s'utilitzen els paràmetres." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhook headers" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Les capçaleres a enviar amb l'URL del webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "incloure el document al webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Assignació" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Elimina" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Email" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Esborra contrasenya" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Mou a la brossa" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Tipus d'acció de disparador" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ordena" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "assigna títol" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Asigna títol de doculent, ha de ser plantilla Jinja2, veure documentació." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "assigna aquesta etiqueta" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "assigna aquest tipus de document" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "assigna aquest corresponsal" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "assigna aquesta ruta d'emmagatzematge" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "assigna aquest propietari" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "dona permisos de visualització a aquests usuaris" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "dona permisos de visionat a aquests grups" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "dona permisos d'edició a aquests usuaris" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "dona permisos d'edició a aquests grups" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "assigna aquests camps personalitzats" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "valors del camp personalitzat" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Valors opcionals per assignar a camps personalitzats." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "elimina aquesta etiqueta(es)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "elimina totes les etiquetes" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "elimina aquest(s) tipus de document" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "elimina tots els tipus de document" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "suprimeix aquest(s) corresponsal(s)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "elimina tots els corresponsals" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "elimina aquesta(es) ruta(es) d'emmagatzematge" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "elimina totes les rutes d'emmagatzemament" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "elimina aquesta(es) ruta(es) d'emmagatzematge" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "elimina tots els propietaris" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "treu permisos de visualització a aquests usuaris" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "treu permisos de visualització a aquests grups" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "treu permisos d'edició a aquests usuaris" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "treu permisos d'edició a aquests grups" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "treu tots els permisos" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "elimina aquests camps personalitzats" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "elimina tots els camps personalitzats" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "email" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "contrasenyes" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Contrasenyes que cal provar en eliminar la protecció de PDF. Separeu-les amb comes o salts de línia." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "acció disparador" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "accions disparadors" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "disparadors" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "accions" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "habilitat" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "flux de treball" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "disparador de flux" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "data execució" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "data del flux" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "flux corrents" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Permisos insuficients." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Color Invàlid." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Tipus arxiu %(type)s no suportat" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "ID de camp personalizat ha de ser enter: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Camp personalitzat amb ID %(id)s no existeix" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Camps personalitzats han de ser una llista d'enters o un objecte que mapegi els identificadors amb els valors." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Alguns camps personalitzats no existeixen o s'han especificat dues vegades." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Variable detectada invàlida." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Duplicat d'identificadors de documents no permès." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Documents no trobats: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "L'esquema d'URI '{parts.scheme}' no està permès. Esquemes permesos: {' msgid "Unable to parse URI {value}" msgstr "No s'ha pogut analitzar l'URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Invalid more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Configuració AI invàlida." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Especifica només un dels següents valors: text, title_search, query o more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Permisos insuficients per compartir document %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paquet ja s'està processant." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "El paquet de link encarà s'està preparant. Prova de nou més tard." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "El paquet d'enllaç no està disponible." @@ -2160,223 +2181,231 @@ msgstr "Defineix el mapatge de l'etiqueta del codi de barres" msgid "Enables splitting on tag barcodes" msgstr "Permet la divisió per codis de barres" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Activa funcionalitats d'IA" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Defineix backend d'incrustació LLM" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Defineix model d'incrustació LLM" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Defineix el punt final d'incrustació de LLM, opcional" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Defineix la mida del fragment d'incrustació de LLM" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Defineix la mida del context LLM" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Estableix backend LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Estableix model LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Estableix clau API de LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Estableix el punt final de l'LLM, opcional" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Estableix l'idioma de sortida de LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Estableix temps d'espera en segons" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "configuració de l'aplicació paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Anglès (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Àrab" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Africà" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Bielorús" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Búlgar" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Català" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Txec" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danès" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Alemany" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grec" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Anglès (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Espanyol" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persa" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finès" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francès" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Hongarès" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonesi" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italià" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japonès" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Coreà" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburguès" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Noruec" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holandès" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polonès" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portuguès (Brasil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portuguès" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Romanès" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Rus" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Eslovac" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Eslovè" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbi" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Suec" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turc" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ucranià" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamita" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Xinès Simplificat" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Xinès tradicional" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administració Paperless-ngx" diff --git a/src/locale/cs_CZ/LC_MESSAGES/django.po b/src/locale/cs_CZ/LC_MESSAGES/django.po index 83e632919..32bc26ab6 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Czech\n" "Language: cs_CZ\n" @@ -57,31 +57,31 @@ msgstr "Překročena maximální hloubka větvení." msgid "Custom field not found" msgstr "Vlastní pole nebylo nalezeno" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "vlastník" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Žádný" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Jakékoliv slovo" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Všechna slova" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Přesná shoda" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regulární výraz" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Nejasné slovo" @@ -89,20 +89,20 @@ msgstr "Nejasné slovo" msgid "Automatic" msgstr "Automaticky" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "název" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "shoda" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritmus pro shodu" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "je ignorováno" @@ -166,7 +166,7 @@ msgstr "cesty k úložišti" msgid "title" msgstr "název" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "obsah" @@ -202,8 +202,8 @@ msgstr "počet stránek" msgid "The number of pages of the document." msgstr "Počet stránek dokumentu." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "vytvořeno" @@ -267,1395 +267,1416 @@ msgstr "označení verze" msgid "Optional short label for a document version." msgstr "Volitelné krátké označení verze dokumentu." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumenty" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtr" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Štítky" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabulka" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Malé karty" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Velké karty" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Název" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Vytvořeno" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Přidáno" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Typ dokumentu" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Cesta k úložišti" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Poznámka" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Vlastník" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Sdíleno" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "SČA" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Stránky" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "seřadit pole" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "třídit opačně" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Zobrazit velikost stránky" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Zobrazit režim zobrazení" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Pole zobrazení dokumentu" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "uložený pohled" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "uložené pohledy" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "název obsahuje" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "obsah obsahuje" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN je" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korespondent je" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "typ dokumentu je" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "je v doručené poště" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "má štítek" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "má libovolný štítek" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "vytvořeno před" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "vytvořeno po" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "rok vytvoření je" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "měsíc vytvoření je" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "den vytvoření je" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "přidáno před" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "přidáno po" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "upraveno před" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "upraveno po" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "nemá štítek" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "Nemá ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "název nebo obsah obsahuje" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "fulltextový dotaz" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "podobné" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "má štítky v" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "SČA větší než" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "SČA menší než" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "cesta k úložišti je" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "má korespondenta v" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "nemá korespondenta v" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "má typ dokumentu v" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "nemá typ dokumentu v" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "má cestu k úložišti v" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nemá cestu k úložišti v" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "vlastník je" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "má vlastníka v" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "nemá vlastníka" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "nemá vlastníka v" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "má vlastní hodnotu pole" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "je sdílen mnou" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "má vlastní pole" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "má vlastní pole v" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "nemá vlastní pole v" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "nemá vlastní pole" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "dotazy na vlastní pole" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "vytvořeno do" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "vytvořeno z" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "přidáno do" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "přidáno z" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "typ mime je" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "typ pravidla" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "hodnota" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "filtrovací pravidlo" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "filtrovací pravidla" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Čekající" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Zahájeno" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Zpracování souboru" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Trénovací klasifikátor" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Kontrola zdraví" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimalizace indexu" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Načíst poštu" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "Index LLM" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Vyprázdnění koše" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Kontrola postupů" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Hromadná aktualizace" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Opětovné zpracování dokumentu" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Sestavení odkazu ke sdílení" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Hromadné smazání" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Naplánováno" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Webové rozhraní" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Zpracování složky" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Zpracování e-mailu" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Systém" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Ruční" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID úlohy" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Typ úlohy" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Data výsledku" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Potvrzeno" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Úlohy" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Poznámka k dokumentu" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "uživatel" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "poznámka" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "poznámky" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Původní" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "vypršení" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "odkaz ke sdílení" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "odkazy ke sdílení" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Selhané" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "balíčky sdílení odkazů" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Řetězec" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "Adresa URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Datum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Logická hodnota" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Celé číslo" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Plovoucí" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Peněžní" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Odkaz na dokument" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Vybrat" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Dlouhý text" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "datový typ" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dodatečná data" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dodatečná data pro vlastní pole, jako jsou možnosti výběru" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "vlastní pole" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "vlastní pole" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instance vlastního pole" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instance vlastních polí" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Spuštěno zpracování" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument přidán" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument aktualizován" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Složka zpracování" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Nahrání pomocí API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Upraveno" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Vlastní pole" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Typ spouštěče pracovního postupu" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtr cesty" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Zpracovávat pouze dokumenty s cestou, která odpovídá tomuto, pokud je zadáno. Jsou povoleny zástupné znaky zadané jako *. Nerozlišuje malá a velká písmena." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtr názvu souboru" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Zpracovávat pouze dokumenty, které zcela odpovídají tomuto názvu souboru, pokud je zadán. Jsou povoleny zástupné znaky jako *.pdf nebo *faktura*. Nerozlišuje malá a velká písmena." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtrovat dokumenty z tohoto pravidla pošty" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "má tyto štítky" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "má všechny tyto štítky" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "nemá tyto štítky" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "má tento typ dokumentu" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "má jeden z následujících typů dokumentů" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "nemá tyto typy dokumentů" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "má tohoto korespondenta" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "nemá tyto korespondenty" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "má tuto cestu k úložišti" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "nemá tyto cesty k úložišti" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtrovat dotazem na vlastní pole" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Dotaz na vlastní pole zakódovaný ve formátu JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "počet dní posunu plánu" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Počet dní, o které se má spouštěč plánu posunout." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "plán se opakuje" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Jestli by se měl plán opakovat." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "zpoždění opakování plánu ve dnech" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Počet dní mezi opakovanými spouštěči plánu." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "pole data plánu" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Pole pro kontrolu spouštěče plánu." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "vlastní pole data plánu" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "spouštěč pracovního postupu" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "spouštěče pracovního postupu" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "předmět e-mailu" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Předmět e-mailu, může obsahovat některé zástupné znaky, viz dokumentace." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "tělo e-mailu" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Tělo (zpráva) e-mailu, může obsahovat některé zástupné znaky, viz dokumentace." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-maily komu" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Cílové e-mailové adresy, oddělené čárkou." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "zahrnout dokument v e-mailu" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url webhooku" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Cílová URL pro oznámení." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "použít parametry" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "poslat jako JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parametry webhooku" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametry pro odeslání s URL webhooku, pokud není použito tělo." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "tělo webhooku" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Tělo pro odeslání s URL webhooku, pokud nejsou použity parametry." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "hlavičky webhooku" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Záhlaví pro odeslání s URL webhooku." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "zahrnout dokument ve webhooku" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Přiřazení" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Odstranění" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Typ akce pracovního postupu" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "pořadí" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "přiřadit název" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Přiřadit název dokumentu, musí být šablona Jinja2, viz dokumentace." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "přiřadit tento tag" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "přiřadit tento typ dokumentu" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "přiřadit tohoto korespondenta" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "přiřadit tuto cestu k úložišti" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "přiřadit tohoto vlastníka" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "udělit oprávnění k zobrazení těmto uživatelům" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "udělit oprávnění k zobrazení těmto skupinám" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "udělit oprávnění ke změně těmto uživatelům" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "udělit oprávnění ke změně těmto skupinám" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "přiřadit tato vlastní pole" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "vlastní hodnoty polí" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Volitelné hodnoty k přiřazení k vlastním polím." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "odstranit tyto štítky" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "odstranit všechny štítky" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "odstranit tyto typy dokumentů" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "odstranit všechny typy dokumentů" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "odstranit tyto korespondenty" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "odstranit všechny korespondenty" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "odstranit tyto cesty k úložišti" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "odstranit všechny cesty k úložišti" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "odstranit tyto vlastníky" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "odstranit všechny vlastníky" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "odstranit oprávnění k zobrazení pro tyto uživatele" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "odstranit oprávnění k zobrazení pro tyto skupiny" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "odstranit oprávnění ke změně pro tyto uživatele" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "odstranit oprávnění ke změně pro tyto skupiny" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "odstranit všechna oprávnění" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "odstranit tato vlastní pole" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "odstranit všechna vlastní pole" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-mail" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "akce pracovního postupu" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "akce pracovního postupu" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "spouštěče" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "akce" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "povoleno" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "pracovní postup" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "typ spouštěče pracovního postupu" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "spouštění data" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "spuštění pracovního postupu" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "spuštění pracovních postupů" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Nedostatečná oprávnění." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Neplatná barva." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Typ souboru %(type)s není podporován" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Vlastní ID pole musí být celé číslo: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Vlastní pole s ID %(id)s neexistuje" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Vlastní pole musí být seznam celých čísel nebo ID pro mapování objektů na hodnoty." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Některá vlastní pole neexistují nebo byla zadána dvakrát." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Zjištěna neplatná proměnná." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1912,40 +1933,40 @@ msgstr "URI schéma '{parts.scheme}' není povoleno. Povolená schémata: {',\n" msgid "Unable to parse URI {value}" msgstr "Nelze zpracovat URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Nedostatečná oprávnění ke sdílení dokumentu %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2161,223 +2182,231 @@ msgstr "Nastaví mapování čárových kódů na štítky" msgid "Enables splitting on tag barcodes" msgstr "Umožňuje rozdělení podle čárových kódů štítků" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Nastaví backend pro vkládání LLM" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Nastaví model vkládání LLM" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Nastaví koncový bod vkládání LLM, volitelné" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Nastaví velikost bloků vkládání LLM" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Nastaví velikost kontextu LLM" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Nastaví backend LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Nastaví model LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Nastaví klíč API LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Nastaví koncový bod LLM, volitelné" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Nastaví výstupní jazyk LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Nastaví časový limit LLM v sekundách" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "nastavení aplikace paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Angličtina (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabština" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikánština" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Běloruština" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulharština" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalánština" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Čeština" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dánština" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Němčina" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Řečtina" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Angličtina (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Španělština" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Perština" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finština" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francouzština" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Maďarština" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonéština" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italština" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japonština" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Korejština" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Lucemburština" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norština" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holandština" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polština" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugalština (Brazílie)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugalština" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumunština" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Ruština" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovenština" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovinština" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Srbština" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Švédština" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turečtina" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrajinština" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamština" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Čínština (zjednodušená)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Čínština (tradiční)" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administrace Paperless-ngx" diff --git a/src/locale/da_DK/LC_MESSAGES/django.po b/src/locale/da_DK/LC_MESSAGES/django.po index 39c426c0b..25e812794 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Danish\n" "Language: da_DK\n" @@ -57,31 +57,31 @@ msgstr "Maksimal indlejringsdybde overskredet." msgid "Custom field not found" msgstr "Tilpasset felt ikke fundet" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "ejer" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Ingen" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Ethvert ord" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Alle ord" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Præcis match" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regulært udtryk" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Fuzzy-ord" @@ -89,20 +89,20 @@ msgstr "Fuzzy-ord" msgid "Automatic" msgstr "Automatisk" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "navn" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "match" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "matchende algoritme" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "er ufølsom" @@ -166,7 +166,7 @@ msgstr "lagerstier" msgid "title" msgstr "titel" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "indhold" @@ -202,8 +202,8 @@ msgstr "sideantal" msgid "The number of pages of the document." msgstr "Antallet af sider i dokumentet." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "oprettet" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumenter" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arkiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Etiketter" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabel" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Små kort" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Store kort" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titel" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Oprettet" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Tilføjet" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korrespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Dokumenttype" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Lagersti" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Notat" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Ejer" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Delt" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Sider" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "sortér felt" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "sortér omvendt" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Vis sidestørrelse" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Vis visningstilstand" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Dokumentvisningsfelter" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "gemt visning" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "gemte visninger" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "titel indeholder" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "indhold indeholder" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN er" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korrespondent er" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "dokumenttype er" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "er i indbakke" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "har etiket" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "har en etiket" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "oprettet før" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "oprettet efter" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "oprettelsesår er" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "oprettelsesmåned er" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "oprettelsesdag er" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "tilføjet før" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "tilføjet efter" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "ændret før" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "ændret efter" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "har ikke nogen etiket" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "har intet ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "titel eller indhold indeholder" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "fuldtekst forespørgsel" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "mere som dette" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "har etiketter i" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN større end" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN mindre end" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "lagersti er" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "har korrespondent i" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "har ikke korrespondent i" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "har dokumenttype i" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "har ikke dokumenttype i" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "har lagersti i" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "har ikke lagersti i" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "ejer er" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "har ejer i" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "har ikke ejer" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "har ikke ejer i" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "har tilpasset feltværdi" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "deles af mig" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "har tilpassede felter" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "har tilpasset felt i" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "har ikke tilpasset felt i" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "har ikke tilpasset felt" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "tilpasset felt-forespørgsel" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "regeltype" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "værdi" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "filtreringsregel" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "filtreringsregler" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Mailhentning" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Planlagt" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Opgave-ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Resultatdata" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Bekræftet" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Notat til dokumentet" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "bruger" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "notat" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notater" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Oprindelig" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "udløb" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "delingslink" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "delingslinks" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Streng" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Dato" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Boolsk" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Heltal (integer)" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Flydende" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetær" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Dokumentlink" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Vælg" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "datatype" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "ekstra data" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Ekstra data til det tilpassede felt, såsom valgmuligheder" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "tilpasset felt" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "tilpassede felter" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "tilpasset feltinstans" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "tilpassede feltinstanser" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Behandling startet" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument tilføjet" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument opdateret" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Behandlingsmappe" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API-upload" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Ændret" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Tilpasset felt" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Workflow-udløsningstype" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtrér sti" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Behandl kun dokumenter med en sti matchende denne, hvis angivet. Jokertegn angivet som * er tilladt. Minuskel-/majuskelufølsom." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtrér filnavn" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtrér dokumenter fra denne postregel" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "har denne(/disse) etiket(ter)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "har denne dokumenttype" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "har denne korrespondent" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "tidsplan forskydningsdage" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Antal dage tidsplan-udløseren skal forskydes." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "tidsplan er tilbagevendende" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Hvorvidt tidsplanen skal være tilbagevendende." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "planlæg tilbagevendende forsinkelse i dage" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Antal dage mellem tilbagevendende tidsplan-udløsere." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "tidsplan-datofelt" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Feltet, der skal tjekkes for en tidsplan-udløser." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "tilpasset tidsplan-datofelt" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "workflow-udløser" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "workflow-udløsere" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "e-mailemne" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Emnet for e-mailen, kan indeholde visse pladsholdere, se dokumentation." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "e-mail brødtekst" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Brødteksten i e-mailen, kan indeholde visse pladsholdere, se dokumentation." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-mails til" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Destinations e-mailadresser, kommasepareret." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "medtag dokument i e-mail" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook-URL" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Destinations-URL'en for notifikationen." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "anvend parametre" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "send som JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "webhook-parametre" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametrene, som skal medsendes webhook-URL'en, hvis brødtekst ikke bruges." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook-brødtekst" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Brødteksten, der skal medsendes webhook-URL'en, hvis parametre ikke bruges." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhook-overskrifter" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Overskrifterne, som skal medsendes webhook-URL'en." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "medtag dokument i webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Tildeling" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Fjernelse" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Workflow-handlingstype" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "rækkefølge" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "tildel titel" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "tildel denne etiket" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "tildel denne dokumenttype" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "tildel denne korrespondent" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "tildel denne lagersti" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "tildel denne ejer" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "tildel visningstilladelser til disse brugere" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "tildel visningstilladelser til disse grupper" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "tildel ændringstilladelser til disse brugere" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "tildel ændringstilladelser til disse grupper" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "tildel disse tilpassede felter" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "fjern denne(/disse) etiket(ter)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "fjern alle etiketter" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "fjern denne(/disse) dokumenttype(r)" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "fjern alle dokumenttyper" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "fjern denne(/disse) korrespondent(er)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "fjern alle korrespondenter" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "fjern denne(/disse) lagersti(er)" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "fjern alle lagringsstier" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "fjern denne(/disse) ejer(e)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "fjern alle ejere" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "fjern visningstilladelser for disse brugere" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "fjern visningstilladelser for disse grupper" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "fjern ændringstilladelser for disse brugere" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "fjern ændringstilladelser for disse grupper" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "fjern alle tilladelser" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "fjern disse tilpassede felter" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "fjern alle tilpassede felter" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-mail" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "workflow-handling" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "workflow-handlinger" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "udløsere" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "handlinger" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "aktiveret" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "workflow" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "workflow-udløsningstype" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "kørselsdato" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "workflow-kørsel" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "workflow-kørsler" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Ugyldig farve." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Filtype %(type)s understøttes ikke" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Ugyldig variabel fundet." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "paperless-applikationsindstillinger" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Engelsk (USA)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikaans" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Hviderussisk" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgarsk" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalansk" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tjekkisk" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dansk" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Tysk" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Græsk" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Engelsk (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spansk" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finsk" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Fransk" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Ungarsk" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italiensk" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japansk" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Koreansk" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburgsk" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norsk" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Hollandsk" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polsk" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugisisk (Brasilien)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugisisk" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Romansk" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russisk" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovakisk" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovensk" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbisk" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Svensk" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Tyrkisk" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrainsk" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Kinesisk, forenklet" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Kinesisk, traditionelt" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx håndtering" diff --git a/src/locale/de_CH/LC_MESSAGES/django.po b/src/locale/de_CH/LC_MESSAGES/django.po index fa57277db..f15b10ef8 100644 --- a/src/locale/de_CH/LC_MESSAGES/django.po +++ b/src/locale/de_CH/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-19 12:26\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: German, Switzerland\n" "Language: de_CH\n" @@ -57,31 +57,31 @@ msgstr "Maximale Verschachtelungstiefe überschritten." msgid "Custom field not found" msgstr "Benutzerdefiniertes Feld nicht gefunden" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "Besitzer" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Keine" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Irgendein Wort" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Alle Wörter" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Exakte Übereinstimmung" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regulärer Ausdruck" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Ungenaues Wort" @@ -89,20 +89,20 @@ msgstr "Ungenaues Wort" msgid "Automatic" msgstr "Automatisch" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "Name" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "Zuweisungsmuster" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "Zuweisungsalgorithmus" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "Gross-/Kleinschreibung irrelevant" @@ -166,7 +166,7 @@ msgstr "Speicherpfade" msgid "title" msgstr "Titel" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "Inhalt" @@ -202,8 +202,8 @@ msgstr "Seitenzahl" msgid "The number of pages of the document." msgstr "Die Anzahl der Seiten des Dokuments." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "Erstellt" @@ -267,1395 +267,1416 @@ msgstr "Version" msgid "Optional short label for a document version." msgstr "Optionale Kurzbezeichnung für eine Dokumentenversion." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "Dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "Dokumente" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Download" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Tags" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabelle" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Kleine Karten" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Grosse Karten" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titel" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Erstellt" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Hinzugefügt" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korrespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Dokumenttyp" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Speicherpfad" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Notiz" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Besitzer" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Freigegeben" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Seiten" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "Sortierfeld" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "Umgekehrte Sortierung" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Ansichts-Seitengrösse" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Ansichts-Anzeigemodus" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Angezeigte Dokumentenfelder" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "Gespeicherte Ansicht" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "Gespeicherte Ansichten" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "Titel enthält" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "Inhalt enthält" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN ist" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "Korrespondent ist" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "Dokumenttyp ist" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "Ist im Posteingang" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "Hat Tag" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "Hat irgendein Tag" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "Ausgestellt vor" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "Ausgestellt nach" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "Ausgestellt im Jahr" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "Ausgestellt im Monat" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "Ausstellungstag ist" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "Hinzugefügt vor" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "Hinzugefügt nach" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "Geändert vor" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "Geändert nach" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "Hat nicht folgendes Tag" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "Dokument hat keine ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "Titel oder Inhalt enthält" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "Volltextsuche" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "Ähnliche Dokumente" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "hat Tags in" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN grösser als" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN kleiner als" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "Speicherpfad ist" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "hat Korrespondenten in" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "hat keinen Korrespondenten in" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "hat Dokumenttyp in" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "hat keinen Dokumenttyp in" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "hat Speicherpfad in" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "hat keinen Speicherpfad in" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "Besitzer ist" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "hat Besitzer in" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "hat keinen Besitzer" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "hat keinen Besitzer in" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "Hat benutzerdefinierten Feld-Wert" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "Ist von mir freigegeben" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "hat benutzerdefinierte Felder" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "hat die benutzerdefinierten Felder" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "hat nicht die benutzerdefinierten Felder" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "hat nicht das benutzerdefinierte Feld" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "benutzerdefinierte Feldabfrage" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "erstellt bis" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "erstellt ab" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "hinzugefügt bis" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "hinzugefügt ab" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "MIME-Typ ist" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "einfache Titel-Suche" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "einfache Text-Suche" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "Regeltyp" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "Wert" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "Filterregel" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "Filterregeln" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Ausstehend" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Gestartet" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Erfolgreich" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Fehlgeschlagen" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Widerrufen" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Dateiverarbeitung" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Klassifikator trainieren" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Plausibilitätsprüfung" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Indexoptimierung" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "E-Mail-Abruf" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM-Index" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Papierkorb leeren" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Arbeitsabläufe prüfen" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Massenbearbeitung" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Erneute Dokumentenverarbeitung" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Freigabelink erstellen" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Massenlöschung" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Geplant" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Weboberfläche" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API-Upload" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Ordnerverarbeitung" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "E-Mail-Verarbeitung" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Manuell" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Aufgaben-ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "Celery-Aufgaben-ID" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Aufgabentyp" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Die Art der durchzuführenden Arbeit" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Trigger-Quelle" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Auslöser dieser Aufgabe" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Abgeschlossen" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Dauer (Sekunden)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Verstrichene Zeit vom Start bis zur Fertigstellung" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Wartezeit (Sekunden)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Zeit von der Aufgabenerstellung bis Aufgabe verarbeitet wird" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Eingabedaten" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Strukturierte Eingabeparameter für die Aufgabe" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Ergebnisdaten" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Strukturierte Ergebnisdaten aus der Aufgabenausführung" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Bestätigt" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Aufgabe" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Aufgaben" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Notiz für das Dokument" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "Benutzer" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "Notiz" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "Notizen" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "Ablauf" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "Slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "Freigabelink" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "Freigabelinks" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "In Bearbeitung" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Fertig" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Fehlgeschlagen" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "Grösse (Bytes)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "Letzter Fehler" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "Dateipfad" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "erstellt am" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "Freigabelink-Paket" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "Freigabelink-Pakete" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Freigabelink-Paket %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Zeichenkette" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Datum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Wahrheitswert" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Ganzzahl" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Gleitkommazahl" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Währung" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Dokumentenverknüpfung" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Auswahl" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Langer Text" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "Datentyp" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "Zusätzliche Daten" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Zusätzliche Daten für das benutzerdefinierte Feld, z. B. Auswahloptionen" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "Benutzerdefiniertes Feld" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "Benutzerdefinierte Felder" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "Benutzerdefinierte Feld-Instanz" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "Benutzerdefinierte Feld-Instanzen" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Verarbeitung gestartet" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument hinzugefügt" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument aktualisiert" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Importordner" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API-Upload" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Geändert" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Benutzerdefiniertes Feld" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Arbeitsablauf-Auslösertyp" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "Pfad filtern" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Nur Dokumente, die mit diesem Pfad (falls angegeben) übereinstimmen, verarbeiten. Platzhalter wie * sind erlaubt. Gross- und Kleinschreibung wird nicht beachtet." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "Dateinamen filtern" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Nur Dokumente, die vollständig mit diesem Dateinamen (falls angegeben) übereinstimmen, verarbeiten. Platzhalter wie *.pdf oder *rechnung* sind erlaubt. Gross- und Kleinschreibung wird nicht beachtet." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "Dokumente aus dieser E-Mail-Regel filtern" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "hat diese(n) Tag(s)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "hat alle diese Tags" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "hat diese Tags nicht" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "hat diesen Dokumenttyp" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "hat einen dieser Dokumenttypen" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "hat diese Dokumenttypen nicht" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "hat diesen Korrespondenten" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "hat diese Korrespondenten nicht" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "hat einen dieser Korrespondenten" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "hat diesen Speicherpfad" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "hat einen dieser Speicherpfade" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "hat diese Speicherpfade nicht" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "Benutzerdefinierte Feldabfrage filtern" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON-kodierte Abfrage eines benutzerdefinierten Felds." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "Zeitplanversatz (Tage)" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Die Anzahl der Tage, um die der Zeitplanauslöser verschoben werden soll." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "Zeitplan wiederholt sich" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Ob der Zeitplan wiederholt werden soll." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "Zeitplan-Wiederholungsverzögerung in Tagen" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Die Anzahl der Tage zwischen wiederkehrenden Zeitplanauslösern." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "Zeitplan-Datumsfeld" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Das zu prüfende Feld für einen Zeitplanauslöser." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "Benutzerdefiniertes Zeitplan-Datumsfeld" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "Arbeitsablauf-Auslöser" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "Arbeitsablauf-Auslöser" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "E-Mail-Betreff" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Der Betreff der E-Mail kann Platzhalter beinhalten, siehe Dokumentation." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "E-Mail-Inhalt" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Der Text der E-Mail kann Platzhalter beinhalten, siehe Dokumentation." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "E-Mails an" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Die Empfänger-E-Mail-Adressen, kommagetrennt." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "Dokument in E-Mail einbeziehen" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "Webhook-URL" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Die Ziel-URL für die Benachrichtigung." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "verwende Parameter" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "als JSON senden" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "Webhook-Parameter" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Die Parameter, die mit der Webhook-URL gesendet werden sollen, wenn kein Inhalt verwendet wird." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "Webhook-Inhalt" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Der Inhalt, der mit der Webhook-URL gesendet werden soll, wenn Parameter nicht verwendet werden." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "Webhook-Kopfzeilen" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Die Kopfzeilen, die mit der Webhook-URL gesendet werden sollen." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "Dokument in Webhook einbeziehen" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Zuordnung" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Entfernung" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-Mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Kennwortentfernung" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "In den Papierkorb verschieben" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Arbeitsablauf-Aktionstyp" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "Reihenfolge" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "Titel zuweisen" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Dokumenttitel zuweisen (muss eine Jinja2-Vorlage sein, siehe Dokumentation)." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "Dieses Tag zuweisen" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "Diesen Dokumenttyp zuweisen" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "Diesen Korrespondenten zuweisen" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "Diesen Speicherpfad zuweisen" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "Diesen Besitzer zuordnen" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "Diesen Benutzern Anzeigeberechtigungen erteilen" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "Diesen Gruppen Anzeigeberechtigungen erteilen" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "Diesen Benutzern Bearbeitungsberechtigungen erteilen" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "Diesen Gruppen Bearbeitungsberechtigungen erteilen" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "Diese benutzerdefinierten Felder zuweisen" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "Benutzerdefinierte Feldwerte" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Optionale Werte, die den benutzerdefinierten Feldern zugewiesen werden." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "Diese(n) Tag(s) entfernen" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "Alle Tags entfernen" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "Diese(n) Dokumenttyp(en) entfernen" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "Alle Dokumenttypen entfernen" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "Diese(n) Korrespondenten entfernen" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "Alle Korrespondenten entfernen" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "Diese(n) Speicherpfad(e) entfernen" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "Alle Speicherpfade entfernen" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "Diese(n) Besitzer entfernen" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "Alle Besitzer entfernen" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "Anzeigeberechtigungen für diese Benutzer entfernen" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "Anzeigeberechtigungen für diese Gruppen entfernen" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "Bearbeitungsberechtigungen für diese Benutzer entfernen" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "Bearbeitungsberechtigungen für diese Gruppen entfernen" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "Alle Berechtigungen entfernen" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "Diese benutzerdefinierten Felder entfernen" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "Alle benutzerdefinierten Felder entfernen" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "E-Mail" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "Webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "Kennwörter" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Kennwörter, die zum entsperren von geschützten PDFs verwendet werden sollen. Trennung durch Kommas oder Zeilenumbruch." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "Arbeitsablauf-Aktion" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "Arbeitsablauf-Aktionen" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "Auslöser" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "Aktionen" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "aktiviert" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "Arbeitsablauf" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "Arbeitsablauf-Auslösertyp" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "Ausführungsdatum" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "Arbeitsablauf-Ausführung" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "Arbeitsablauf wird ausgeführt" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Unzureichende Berechtigungen." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Ungültige Farbe." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Dateityp %(type)s nicht unterstützt" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Feld-ID eines benutzerdefinierten Felds muss eine Ganzzahl sein: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Benutzerdefiniertes Feld mit ID %(id)s existiert nicht" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Benutzerdefinierte Felder müssen eine Liste von Ganzzahlen oder ein Objekt mit Zuordnung von IDs zu Werten sein." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Einige benutzerdefinierte Felder existieren nicht oder wurden zweimal angegeben." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Ungültige Variable erkannt." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Doppelte Dokumentbezeichner sind nicht erlaubt." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dokumente nicht gefunden: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "URI-Schema „{parts.scheme}“ ist nicht erlaubt. Erlaubte Schemata: {' msgid "Unable to parse URI {value}" msgstr "URI {value} kann nicht gelesen werden" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Ungültige more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Ungültige KI-Konfiguration." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Geben Sie nur einen von text, title_search, query, oder more_like_id an." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Unzureichende Berechtigungen, um Dokument %(id)s zu teilen." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paket wird bereits verarbeitet." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Das Freigabelink-Paket wird noch vorbereitet. Bitte versuchen Sie es später erneut." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Das Freigabelink-Paket ist nicht verfügbar." @@ -2160,223 +2181,231 @@ msgstr "Legt die Tag-Barcode-Zuweisung fest" msgid "Enables splitting on tag barcodes" msgstr "Aktiviert das Aufteilen mithilfe von Tag-Barcodes" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Aktiviert KI-Funktionen" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Legt das LLM-Einbettungs-Backend fest" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Legt das LLM-Einbettungsmodell fest" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Legt das LLM-Backend fest" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Legt das LLM-Modell fest" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Legt den LLM-API-Schlüssel fest" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Legt den LLM-Endpunkt fest, optional" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "Paperless-ngx-Anwendungseinstellungen" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Englisch (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabisch" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikanisch" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Belarussisch" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgarisch" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalanisch" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tschechisch" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dänisch" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Deutsch" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Griechisch" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Englisch (UK)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spanisch" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persisch" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finnisch" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Französisch" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Ungarisch" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonesisch" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italienisch" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japanisch" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Koreanisch" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburgisch" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norwegisch" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Niederländisch" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polnisch" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugiesisch (Brasilien)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugiesisch" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumänisch" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russisch" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slowakisch" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slowenisch" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbisch" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Schwedisch" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Türkisch" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrainisch" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamesisch" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chinesisch (vereinfacht)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Chinesisch (traditionell)" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx Administration" diff --git a/src/locale/de_DE/LC_MESSAGES/django.po b/src/locale/de_DE/LC_MESSAGES/django.po index 138e74d92..70f949198 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-20 00:58\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-06 00:56\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -57,31 +57,31 @@ msgstr "Maximale Verschachtelungstiefe überschritten." msgid "Custom field not found" msgstr "Zusatzfeld nicht gefunden" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "Eigentümer" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Keine" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Irgendein Wort" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Alle Wörter" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Exakte Übereinstimmung" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regulärer Ausdruck" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Ungenaues Wort" @@ -89,20 +89,20 @@ msgstr "Ungenaues Wort" msgid "Automatic" msgstr "Automatisch" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "Name" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "Zuweisungsmuster" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "Zuweisungsalgorithmus" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "Groß-/Kleinschreibung irrelevant" @@ -166,7 +166,7 @@ msgstr "Speicherpfade" msgid "title" msgstr "Titel" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "Inhalt" @@ -202,8 +202,8 @@ msgstr "Seitenzahl" msgid "The number of pages of the document." msgstr "Die Anzahl der Seiten des Dokuments." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "Erstellt" @@ -267,1395 +267,1416 @@ msgstr "Versionsbezeichnung" msgid "Optional short label for a document version." msgstr "Optionale Kurzbezeichnung für eine Dokumentenversion." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "Dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "Dokumente" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Bank" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Korb" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Glocke" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Lesezeichen" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Kartons" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Koffer" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Gebäude" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" -msgstr "Rechner" +msgstr "Taschenrechner" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Kalender" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Kamera" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Checkliste" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Bargeld" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Chat" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Überprüfen" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Zwischenablage" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Uhr" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Kreditkarte" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Download" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Umschlag" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Warnung" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "Datei" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "Überprüfte Datei" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "Gesperrte Datei" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "Medizinische Akte" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "Personendatei" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Tabelle" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Textdatei" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "Dateien" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Ordner" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "Zahnrad" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "Globus" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "Hash" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "Herz" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "Haus" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "Posteingang" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "Buchungen" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "Aufgabenliste" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "Zeitung" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "Anhang" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "Menschen" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "Person" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "Drucker" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "Beleg" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "Tresor" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "Suche" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "Senden" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "Geschäft" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "Stapel" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "Sterne" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "Schlagwort" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Tags" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "Telefon" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "Lastwagen" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "Barcode" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "Brieftasche" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabelle" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Kleine Karten" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Große Karten" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titel" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Erstellt" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Hinzugefügt" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korrespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Dokumenttyp" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Speicherpfad" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Notiz" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Eigentümer" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Freigegeben" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Seiten" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "Symbol" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "Sortierfeld" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "Umgekehrte Sortierung" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Ansichts-Seitengröße" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Ansichts-Anzeigemodus" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Angezeigte Dokumentenfelder" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "Gespeicherte Ansicht" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "Gespeicherte Ansichten" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "Titel enthält" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "Inhalt enthält" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN ist" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "Korrespondent ist" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "Dokumenttyp ist" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "Ist im Posteingang" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "Hat Tag" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "Hat irgendein Tag" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "Ausgestellt vor" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "Ausgestellt nach" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "Ausgestellt im Jahr" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "Ausgestellt im Monat" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "Ausstellungstag ist" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "Hinzugefügt vor" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "Hinzugefügt nach" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "Geändert vor" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "Geändert nach" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "Hat nicht folgendes Tag" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "Dokument hat keine ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "Titel oder Inhalt enthält" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "Volltextsuche" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "Ähnliche Dokumente" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "hat Tags in" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN größer als" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN kleiner als" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "Speicherpfad ist" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "hat Korrespondenten in" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "hat keinen Korrespondenten in" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "hat Dokumenttyp in" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "hat keinen Dokumenttyp in" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "hat Speicherpfad in" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "hat keinen Speicherpfad in" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "Eigentümer ist" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "hat Eigentümer in" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "hat keinen Eigentümer" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "hat keinen Eigentümer in" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "Hat Zusatzfeldwert" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "Ist von mir freigegeben" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "hat Zusatzfelder" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "hat die Zusatzfelder" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "hat nicht die Zusatzfelder" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "hat nicht das Zusatzfeld" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "Zusatzfelderabfrage" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "erstellt zu" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "erstellt von" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "hinzugefügt zu" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "hinzugefügt von" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "MIME-Typ ist" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "Einfache Titelsuche" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "Einfache Textsuche" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "hat Duplikate" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "Regeltyp" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "Wert" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "Filterregel" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "Filterregeln" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Ausstehend" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Gestartet" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Erfolgreich" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Fehlgeschlagen" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Widerrufen" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Dateiverarbeitung" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Klassifikator trainieren" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Plausibilitätsprüfung" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Indexoptimierung" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "E-Mail-Abruf" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM-Index" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Papierkorb leeren" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Arbeitsabläufe prüfen" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Massenbearbeitung" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Erneute Dokumentenverarbeitung" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Freigabelinkerstellung" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Massenlöschung" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "KI-Vorschläge anwenden" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Geplant" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Weboberfläche" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API-Upload" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Ordnerverarbeitung" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "E-Mail-Verarbeitung" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "System" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Manuell" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Aufgaben-ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "Celery-Aufgaben-ID" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Aufgabentyp" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Die Art der durchzuführenden Arbeit" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Auslöserquelle" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Auslöser dieser Aufgabe" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Status" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Abgeschlossen" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Dauer (Sekunden)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Verstrichene Zeit vom Start bis zur Fertigstellung" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Wartezeit (Sekunden)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Zeit von der Aufgabenerstellung bis zur Übernahme durch einen Worker" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Eingabedaten" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Strukturierte Eingabeparameter für die Aufgabe" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Ergebnisdaten" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Strukturierte Ergebnisdaten aus der Aufgabenausführung" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Bestätigt" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Aufgabe" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Aufgaben" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Notiz für das Dokument" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "Benutzer" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "Notiz" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "Notizen" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "Seite" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "Seite der ursprünglichen Datei, beginnend mit 1" + +#: documents/models.py:1052 +msgid "format" +msgstr "Format" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "Dokument-Barcode" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "Dokument-Barcodes" + +#: documents/models.py:1066 msgid "Original" msgstr "Original" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "Ablauf" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "Slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "Freigabelink" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "Freigabelinks" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "In Bearbeitung" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Fertig" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Fehlgeschlagen" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "Größe (Bytes)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "Letzter Fehler" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "Dateipfad" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "erstellt am" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "Freigabelink-Paket" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "Freigabelink-Pakete" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Freigabelink-Paket %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Zeichenkette" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Datum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Wahrheitswert" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Ganzzahl" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Gleitkommazahl" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Währung" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Dokumentenverknüpfung" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Auswahl" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Langer Text" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "Datentyp" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "Zusätzliche Daten" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Zusätzliche Daten für das Zusatzfeld, z. B. Auswahloptionen" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "Zusatzfeld" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "Zusatzfelder" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "Zusatzfeldinstanz" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "Zusatzfeldinstanzen" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Verarbeitung gestartet" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument hinzugefügt" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument aktualisiert" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Importordner" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API-Upload" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Geändert" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Zusatzfeld" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Arbeitsablauf-Auslösertyp" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "Pfad filtern" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Nur Dokumente, die mit diesem Pfad (falls angegeben) übereinstimmen, verarbeiten. Platzhalter wie * sind erlaubt. Groß- und Kleinschreibung wird nicht beachtet." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "Dateinamen filtern" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Nur Dokumente, die vollständig mit diesem Dateinamen (falls angegeben) übereinstimmen, verarbeiten. Platzhalter wie *.pdf oder *rechnung* sind erlaubt. Groß- und Kleinschreibung wird nicht beachtet." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "Dokumente aus dieser E-Mail-Regel filtern" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "hat diese(n) Tag(s)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "hat alle diese Tags" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "hat diese Tags nicht" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "hat diesen Dokumenttyp" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "hat einen dieser Dokumenttypen" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "hat diese Dokumenttypen nicht" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "hat diesen Korrespondenten" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "hat diese Korrespondenten nicht" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "hat einen dieser Korrespondenten" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "hat diesen Speicherpfad" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "hat einen dieser Speicherpfade" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "hat diese Speicherpfade nicht" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "Zusatzfeldabfrage filtern" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON-kodierte Zusatzfeldabfrage." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "Zeitplanversatz (Tage)" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Die Anzahl der Tage, um die der Zeitplanauslöser verschoben werden soll." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "Zeitplan wiederholt sich" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Ob der Zeitplan wiederholt werden soll." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "Zeitplan-Wiederholungsverzögerung in Tagen" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Die Anzahl der Tage zwischen wiederkehrenden Zeitplanauslösern." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "Zeitplan-Datumsfeld" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Das zu prüfende Feld für einen Zeitplanauslöser." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "Zusatz-Zeitplandatumsfeld" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "Arbeitsablauf-Auslöser" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "Arbeitsablauf-Auslöser" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "E-Mail-Betreff" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Der Betreff der E-Mail kann Platzhalter beinhalten, siehe Dokumentation." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "E-Mail-Inhalt" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Der Text der E-Mail kann Platzhalter beinhalten, siehe Dokumentation." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "E-Mails an" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Die Empfänger-E-Mail-Adressen, kommagetrennt." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "Dokument in E-Mail einbeziehen" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "Webhook-URL" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Die Ziel-URL für die Benachrichtigung." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "verwende Parameter" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "als JSON senden" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "Webhook-Parameter" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Die Parameter, die mit der Webhook-URL gesendet werden sollen, wenn kein Inhalt verwendet wird." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "Webhook-Inhalt" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Der Inhalt, der mit der Webhook-URL gesendet werden soll, wenn Parameter nicht verwendet werden." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "Webhook-Kopfzeilen" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Die Kopfzeilen, die mit der Webhook-URL gesendet werden sollen." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "Dokument in Webhook einbeziehen" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Zuordnung" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Entfernung" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-Mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Kennwortentfernung" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "In den Papierkorb verschieben" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "Externe OCR" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "KI-Vorschläge anwenden" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "Dokumenttyp" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "Speicherpfad" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "Erstellungsdatum" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Arbeitsablauf-Aktionstyp" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "Reihenfolge" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "Titel zuweisen" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Dokumenttitel zuweisen (muss eine Jinja2-Vorlage sein, siehe Dokumentation)." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "Dieses Tag zuweisen" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "Diesen Dokumenttyp zuweisen" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "Diesen Korrespondenten zuweisen" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "Diesen Speicherpfad zuweisen" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "Diesen Eigentümer zuordnen" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "Diesen Benutzern Anzeigeberechtigungen erteilen" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "Diesen Gruppen Anzeigeberechtigungen erteilen" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "Diesen Benutzern Bearbeitungsberechtigungen erteilen" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "Diesen Gruppen Bearbeitungsberechtigungen erteilen" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "Diese Zusatzfelder zuweisen" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "Zusatzfeldwerte" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Optionale Werte, die den Zusatzfeldern zugewiesen werden." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "Diese(n) Tag(s) entfernen" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "Alle Tags entfernen" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "Diese(n) Dokumenttyp(en) entfernen" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "Alle Dokumenttypen entfernen" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "Diese(n) Korrespondenten entfernen" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "Alle Korrespondenten entfernen" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "Diese(n) Speicherpfad(e) entfernen" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "Alle Speicherpfade entfernen" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "Diese(n) Eigentümer entfernen" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "Alle Eigentümer entfernen" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "Anzeigeberechtigungen für diese Benutzer entfernen" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "Anzeigeberechtigungen für diese Gruppen entfernen" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "Bearbeitungsberechtigungen für diese Benutzer entfernen" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "Bearbeitungsberechtigungen für diese Gruppen entfernen" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "Alle Berechtigungen entfernen" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "Diese Zusatzfelder entfernen" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "Alle Zusatzfelder entfernen" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "E-Mail" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "Webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "Kennwörter" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Kennwörter, die zum entsperren von geschützten PDFs verwendet werden sollen. Trennung durch Kommas oder Zeilenumbruch." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "KI-Vorschlagsfelder" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "Welche der von der KI vorgeschlagenen Felder für das Dokument gelten." -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "fehlende Objekte erstellen" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "Erstelle vorgeschlagene Tags, Korrespondenten, Dokumenttypen und Speicherpfade, die nicht bereits existieren, anstatt sie zu überspringen." -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "bestehende Werte überschreiben" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "Vorschläge übernehmen, auch wenn das Dokument bereits einen Wert für dieses Feld hat. Tags werden immer hinzugefügt, niemals ersetzt." -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "Arbeitsablauf-Aktion" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "Arbeitsablauf-Aktionen" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "Auslöser" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "Aktionen" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "aktiviert" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "Arbeitsablauf" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "Arbeitsablauf-Auslösertyp" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "Ausführungsdatum" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "Arbeitsablauf-Ausführung" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "Arbeitsablauf wird ausgeführt" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Unzureichende Berechtigungen." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Ungültige Farbe." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Dateityp %(type)s nicht unterstützt" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Zusatzfeld-ID muss eine Ganzzahl sein: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Zusatzfeld mit ID %(id)s existiert nicht" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Zusatzfelder müssen eine Liste von Ganzzahlen oder ein Objekt mit Zuordnung von IDs zu Werten sein." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Einige Zusatzfelder existieren nicht oder wurden zweimal angegeben." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Ungültige Variable erkannt." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Doppelte Dokumentbezeichner sind nicht erlaubt." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dokumente nicht gefunden: %(ids)s" @@ -1806,7 +1827,7 @@ msgstr "Paperless-ngx-Registrierung" #: documents/templates/account/signup.html:11 msgid "Already have an account?" -msgstr "Konto bereits vorhanden?" +msgstr "Sie haben bereits ein Konto?" #: documents/templates/account/signup.html:19 msgid "Note: This is the first user account for this installation and will be granted superuser privileges." @@ -1911,40 +1932,40 @@ msgstr "URI-Schema „{parts.scheme}“ ist nicht erlaubt. Erlaubte Schemata: {' msgid "Unable to parse URI {value}" msgstr "URI {value} kann nicht gelesen werden" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Ungültige more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Ungültige KI-Konfiguration." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "Zeitüberschreitung bei der KI-Backendanfrage." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." -msgstr "" +msgstr "Das KI-Backend hat die Anfrage abgelehnt. Details in den Protokollen." -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Geben Sie nur einen von text, title_search, query, oder more_like_id an." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Unzureichende Berechtigungen, um Dokument %(id)s zu teilen." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paket wird bereits verarbeitet." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Das Freigabelink-Paket wird noch vorbereitet. Bitte versuchen Sie es später erneut." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Das Freigabelink-Paket ist nicht verfügbar." @@ -2160,223 +2181,231 @@ msgstr "Legt die Tag-Barcode-Zuweisung fest" msgid "Enables splitting on tag barcodes" msgstr "Aktiviert das Aufteilen mithilfe von Tag-Barcodes" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "Speichert die Werte erkannter Barcodes" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "Legt die externe OCR-Engine fest" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "Legt den externen OCR-API-Schlüssel fest" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "Legt den externen OCR-Endpunkt fest" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "Legt fest, welche Dokumente an die externe OCR-Engine gesendet werden" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Aktiviert KI-Funktionen" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Legt das LLM-Einbettungs-Backend fest" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Legt das LLM-Einbettungsmodell fest" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "Setzen des eingebetteten LLM-API-Schlüssels" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Legt den LLM-Einbettungsendpunkt fest, optional" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Legt die LLM-Einbettungschunkgröße fest" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Legt die LLM-Kontextgröße fest" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Legt das LLM-Backend fest" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Legt das LLM-Modell fest" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Legt den LLM-API-Schlüssel fest" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Legt den LLM-Endpunkt fest, optional" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Legt die LLM-Ausgabesprache fest" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Legt das LLM-Zeitlimit in Sekunden fest" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "Paperless-ngx-Anwendungseinstellungen" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Englisch (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabisch" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikanisch" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Belarussisch" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgarisch" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalanisch" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tschechisch" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dänisch" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Deutsch" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Griechisch" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Englisch (UK)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spanisch" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persisch" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finnisch" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Französisch" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Ungarisch" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonesisch" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italienisch" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japanisch" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Koreanisch" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburgisch" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norwegisch" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Niederländisch" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polnisch" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugiesisch (Brasilien)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugiesisch" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumänisch" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russisch" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slowakisch" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slowenisch" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbisch" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Schwedisch" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Türkisch" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrainisch" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamesisch" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chinesisch (vereinfacht)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Chinesisch (traditionell)" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx Administration" diff --git a/src/locale/el_GR/LC_MESSAGES/django.po b/src/locale/el_GR/LC_MESSAGES/django.po index 655cebee9..1196a2d46 100644 --- a/src/locale/el_GR/LC_MESSAGES/django.po +++ b/src/locale/el_GR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -57,31 +57,31 @@ msgstr "Υπέρβαση μέγιστου βάθους εμφώλευσης." msgid "Custom field not found" msgstr "Το προσαρμοσμένο πεδίο δε βρέθηκε" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "ιδιοκτήτης" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Τίποτα" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Οποιαδήποτε λέξη" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Όλες οι λέξεις" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Ακριβής ταύτιση" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Κανονική έκφραση" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Ασαφής λέξη" @@ -89,20 +89,20 @@ msgstr "Ασαφής λέξη" msgid "Automatic" msgstr "Αυτόματο" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "όνομα" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "αντιστοίχιση" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "αλγόριθμος αντιστοίχισης" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "χωρίς διάκριση πεζών - κεφαλαίων" @@ -166,7 +166,7 @@ msgstr "διαδρομές αποθήκευσης" msgid "title" msgstr "τίτλος" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "περιεχόμενο" @@ -202,8 +202,8 @@ msgstr "αριθμός σελίδων" msgid "The number of pages of the document." msgstr "Ο αριθμός σελίδων του εγγράφου." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "δημιουργήθηκε" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "αρχείο" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "αρχεία" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Αρχειοθέτηση" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Φίλτρο" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Ετικέτες" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Πίνακας" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Μικρές Κάρτες" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Μεγάλες Κάρτες" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Τίτλος" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Δημιουργήθηκε" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Προστέθηκε" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Αντίστοιχος" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Τύπος εγγράφου" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Χώρος αποθήκευσης" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Σημείωση" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Κάτοχος" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Κοινοποιήθηκε" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Σελίδες" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "πεδίο ταξινόμησης" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "αντίστροφη ταξινόμηση" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Προβολή μεγέθους σελίδας" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Λειτουργία προβολής" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Εμφάνιση πεδίων του εγγράφου" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "αποθηκευμένη προβολή" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "αποθηκευμένες προβολές" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "ο τίτλος περιέχει" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "το περιεχόμενο περιέχει" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "Το ASN είναι" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "ο ανταποκριτής είναι" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "ο τύπος εγγράφου είναι" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "είναι στα εισερχόμενα" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "έχει ετικέτα" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "έχει οποιαδήποτε ετικέτα" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "δημιουργήθηκε πριν από" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "δημιουργήθηκε μετά από" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "το έτος δημιουργίας είναι" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "ο μήνας δημιουργίας είναι" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "η ημέρα δημιουργίας είναι" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "προστέθηκε πριν" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "προστέθηκε μετά" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "τροποποιήθηκε πριν" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "τροποποιήθηκε μετά" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "δεν έχει ετικέτα" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "δεν έχει ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "ο τίτλος ή το περιεχόμενο περιέχει" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "ερώτημα πλήρους κειμένου" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "περισσότερα σαν αυτό" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "έχει ετικέτες σε" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN μεγαλύτερο από" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN μικρότερο από" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "η διαδρομή αποθήκευσης είναι" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "έχει ανταποκριτή σε" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "δεν έχει ανταποκριτή σε" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "έχει τύπο εγγράφου σε" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "δεν έχει τύπο εγγράφου σε" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "έχει διαδρομή αποθήκευσης σε" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "δεν έχει διαδρομή αποθήκευσης σε" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "ο ιδιοκτήτης είναι" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "έχει ιδιοκτήτη σε" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "δεν έχει ιδιοκτήτη" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "δεν έχει ιδιοκτήτη σε" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "έχει προσαρμοσμένη τιμή πεδίου" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "μοιράζεται από μένα" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "έχει προσαρμοσμένα πεδία" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "έχει προσαρμοσμένα πεδία στο" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "δεν έχει προσαρμοσμένο πεδίο στο" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "δεν έχει προσαρμοσμένο πεδίο" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "ερώτημα προσαρμοσμένων πεδίων" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "δημιουργήθηκε στο" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "δημιουργήθηκαν από" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "προστέθηκε στο" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "προστέθηκε από" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "ο τύπος mime είναι" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "τύπος κανόνα" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "τιμή" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "κανόνας φίλτρου" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "κανόνες φίλτρων" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Αναμονή" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Επιτυχία" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Αποτυχία" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Κατανάλωση Αρχείου" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Εκπαίδευση Ταξινομητή" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Βελτιστοποίηση Ευρετηρίου" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Λήψη Αλληλογραφίας" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Άδειασμα Κάδου" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Μαζική Ενημέρωση" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Μαζική Διαγραφή" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Προγραμματισμένα" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Περιβάλλον Web" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Σύστημα" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Χειροκίνητο" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Task ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Τύπος Εργασίας" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Κατάσταση" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Ολοκληρωμένο" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Διάρκεια (δευτερόλεπτα)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Χρόνος Αναμονής (δευτερόλεπτα)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Αποτέλεσμα Δεδομένων" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Αναγνωρίστηκε" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Διεργασία" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Διεργασίες" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Σημείωση για το έγγραφο" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "χρήστης" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "σημείωση" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "σημειώσεις" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Πρωτότυπο" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "λήξη" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "κοινοποίηση συνδέσμου" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "κοινοποίηση συνδέσμων" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Έτοιμο" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "μέγεθος (bytes)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "μονοπάτι αρχείου" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Συμβολοσειρά" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Ημερομηνία" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Δυαδικές τιμές" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Ακέραιος" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Δεκαδικός" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Νομισματικό" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Σύνδεσμος Εγγράφου" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Επιλογή" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "τύπος δεδομένων" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "περισσότερα δεδομένα" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Επιπλέον δεδομένα για το προσαρμοσμένο πεδίο, όπως επιλογή περιπτώσεων" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "προσαρμοσμένο πεδίο" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "προσαρμοσμένα πεδία" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "στιγμιότυπο προσαρμοσμένου πεδίου" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "στιγμιότυπα προσαρμοσμένων πεδίων" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Η Κατανάλωση Ξεκίνησε" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Το έγγραφο προστέθηκε" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Το έγγραφο ενημερώθηκε" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Φάκελος Κατανάλωσης" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Μεταφόρτωση μέσω API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Τροποποιήθηκε" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Προσαρμοσμένα πεδία" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Τύπος Ενεργοποίησης Ροής Εργασιών" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "διαδρομή φίλτρου" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Μόνο κατανάλωση εγγράφων με μια διαδρομή που ταιριάζει με αυτό αν έχει καθοριστεί. Επιτρέπεται η χρήση μπαλαντέρ που ορίζεται ως *. Χωρίς διάκριση πεζών-κεφαλαίων." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "φιλτράρισμα ονόματος αρχείου" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Μόνο κατανάλωση αρχείων που ταιριάζουν απόλυτα με το όνομα αρχείου, εάν καθοριστεί. Επιτρέπεται η χρήση μπαλαντέρ όπως *.pdf ή *invoice*. Δεν υπάρχει έλεγχος πεζών/κεφαλαίων." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "φιλτράρισμα εγγράφων από αυτόν τον κανόνα αλληλογραφίας" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "έχει αυτές τις ετικέτες(α)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "έχει αυτόν τον τύπο εγγράφου" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "έχει αυτόν τον ανταποκριτή" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "προγραμματισμός μετατόπισης ημερών του χρονοδιαγράμματος" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Ο αριθμός των ημερών για την αντιστάθμιση της ενεργοποίησης του χρονοδιαγράμματος." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "το χρονοδιάγραμμα είναι επαναλαμβανόμενο" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Εάν το χρονοδιάγραμμα πρέπει να επαναληφθεί." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "προγραμματισμός επαναλαμβανόμενης καθυστέρησης σε ημέρες" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Ο αριθμός των ημερών μεταξύ των επαναλαμβανόμενων εναυσμάτων χρονοδιαγράμματος." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "πεδίο ημερομηνίας προγράμματος" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Το πεδίο για έλεγχο για ένα χρονοδιάγραμμα ενεργοποίησης." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "προσαρμοσμένο πεδίο ημερομηνίας προγράμματος" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "ενεργοποίηση ροής εργασιών" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "εναύσματα ροής εργασιών" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "θέμα email" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Το θέμα του email, μπορεί να περιλαμβάνει ορισμένα placeholders, δείτε την τεκμηρίωση." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "σώμα email" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Το σώμα (μήνυμα) του ηλεκτρονικού ταχυδρομείου, μπορεί να περιλαμβάνει ορισμένα placeholders, δείτε την τεκμηρίωση." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "emails προς" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Οι διευθύνσεις email προορισμού, χωρισμένες με κόμμα." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "συμπεριλάβετε έγγραφο στο email" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook url" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Το URL προορισμού για την ειδοποίηση." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "χρήση παραμέτρων" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "αποστολή ως JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "παράμετροι του webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Οι παράμετροι για αποστολή με τη διεύθυνση URL αν δε χρησιμοποιηθεί το σώμα του webhook." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "σώμα webhook" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Το σώμα του webhook που θα στείλει με το URL αν δε χρησιμοποιηθούν παράμετροι." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "κεφαλίδες webhook" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Οι κεφαλίδες που θα αποσταλούν με το URL του webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "συμπεριλάβετε το έγγραφο στο webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Ανάθεση" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Απομάκρυνση" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Τύπος Ενέργειας Ροής Εργασίας" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "σειρά" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "ανάθεση τίτλου" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "ανάθεση αυτής της ετικέτας" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "ανάθεση αυτού του τύπου εγγράφου" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "ανάθεση αυτού του ανταποκριτή" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "ανάθεση αυτής της διαδρομής αποθήκευσης" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "ανάθεση αυτού του ιδιοκτήτη" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "εκχώρηση δικαιωμάτων προβολής σε αυτούς τους χρήστες" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "εκχώρηση δικαιωμάτων προβολής σε αυτές τις ομάδες" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "εκχώρηση δικαιωμάτων μεταβολής σε αυτές τις ομάδες" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "εκχώρηση δικαιωμάτων μεταβολής σε αυτές τις ομάδες" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "αντιστοιχίστε αυτά τα προσαρμοσμένα πεδία" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "προσαρμοσμένες τιμές πεδίου" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Προαιρετικές τιμές για να εκχωρήσετε στα προσαρμοσμένα πεδία." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "αφαίρεσε αυτή την ετικέτα(ες)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "αφαίρεση όλων των ετικετών" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "αφαίρεσε αυτούς τους τύπους εγγράφων" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "κατάργηση όλων των τύπων εγγράφων" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "αφαίρεσε αυτούς τους ανταποκριτές(ές)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "αφαίρεση όλων των παραληπτών" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "αφαίρεσε αυτή τη διαδρομή(ες) αποθήκευσης" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "κατάργηση όλων των διαδρομών αποθήκευσης" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "αφαίρεσε αυτόν τον ιδιοκτήτη(ες)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "αφαίρεση όλων των κατόχων" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "αφαιρέστε τα δικαιώματα προβολής για αυτούς τους χρήστες" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "αφαιρέστε τα δικαιώματα προβολής για αυτούς τις ομάδες" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "αφαιρέστε τα δικαιώματα αλλαγής για αυτούς τους χρήστες" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "αφαιρέστε τα δικαιώματα αλλαγής από αυτές τις ομάδες" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "κατάργηση όλων των δικαιωμάτων" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "αφαίρεσε αυτά τα προσαρμοσμένα πεδία" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "αφαίρεση όλων των προσαρμοσμένων πεδίων" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "κωδικοί πρόσβασης" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "ενέργεια ροής εργασίας" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "ενέργειες ροής εργασίας" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "εναύσματα" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "ενέργειες" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "ενεργοποιημένο" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "ροή εργασίας" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "τύπος εναύσματος ροής εργασίας" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "εκτέλεση με ημερομηνία" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "εκτέλεση ροής εργασίας" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "εκτελέσεις ροής εργασίας" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Άκυρο χρώμα." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Ο τύπος αρχείου %(type)s δεν υποστηρίζεται" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Εντοπίστηκε μη έγκυρη μεταβλητή." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "ρυθμίσεις εφαρμογής paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Αγγλικά (ΗΠΑ)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Αραβικά" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Αφρικανικά" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Λευκορωσικά" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Βουλγαρικά" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Καταλανικά" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Τσέχικα" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Δανέζικα" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Γερμανικά" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Ελληνικά" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Αγγλικά (Ηνωμένο Βασίλειο)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Ισπανικά" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Φινλανδικά" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Γαλλικά" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Ουγγρικά" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Ιταλικά" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Ιαπωνικά" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Κορεάτικα" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Λουξεμβουργικά" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Νορβηγικά" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Ολλανδικά" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Πολωνικά" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Πορτογαλικά (Βραζιλίας)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Πορτογαλικά" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Ρουμάνικα" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Ρωσικά" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Σλοβακικά" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Σλοβενικά" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Σερβικά" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Σουηδικά" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Τούρκικα" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ουκρανικά" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Κινέζικα Απλοποιημένα" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Κινεζικά Παραδοσιακά" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Διαχείριση Paperless-ngx" diff --git a/src/locale/en_US/LC_MESSAGES/django.po b/src/locale/en_US/LC_MESSAGES/django.po index 2cdd6c566..1444ef728 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: 2026-09-18 01:29+0000\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" "PO-Revision-Date: 2022-02-17 04:17\n" "Last-Translator: \n" "Language-Team: English\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "" @@ -89,20 +89,20 @@ msgstr "" msgid "Automatic" msgstr "" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "" @@ -168,7 +168,7 @@ msgstr "" msgid "title" msgstr "" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "" @@ -206,8 +206,8 @@ msgstr "" msgid "The number of pages of the document." msgstr "" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "" @@ -271,1409 +271,1430 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "" "Only consume documents with a path that matches this if specified. Wildcards " "specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "" "Only consume documents which entirely match this filename if specified. " "Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "" "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "" "The body (message) of the email, can include some placeholders, see " "documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "" "Passwords to try when removing PDF protection. Separate with commas or new " "lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "" "Create suggested tags, correspondents, document types and storage paths that " "do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "" "Apply suggestions even if the document already has a value for that field. " "Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "" "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1941,40 +1962,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2190,223 +2211,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "" diff --git a/src/locale/es_ES/LC_MESSAGES/django.po b/src/locale/es_ES/LC_MESSAGES/django.po index 70012a3dc..26284d54b 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Spanish\n" "Language: es_ES\n" @@ -57,31 +57,31 @@ msgstr "Profundidad máxima de nidificación superada." msgid "Custom field not found" msgstr "Campo personalizado no encontrado" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "propietario" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Nada" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Cualquier palabra" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Todas las palabras" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Coincidencia exacta" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Expresión regular" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Palabra borrosa" @@ -89,20 +89,20 @@ msgstr "Palabra borrosa" msgid "Automatic" msgstr "Automático" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nombre" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "coincidencia" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "Algoritmo de coincidencia" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "es insensible" @@ -166,7 +166,7 @@ msgstr "rutas de almacenamiento" msgid "title" msgstr "título" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "contenido" @@ -202,8 +202,8 @@ msgstr "número de páginas" msgid "The number of pages of the document." msgstr "El número de páginas del documento." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "creado" @@ -267,1395 +267,1416 @@ msgstr "etiqueta de versión" msgid "Optional short label for a document version." msgstr "Etiqueta corta opcional para una versión del documento." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "documento" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "documentos" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archivo" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtro" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Etiquetas" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabla" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Tarjetas Pequeñas" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Tarjetas Grandes" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Título" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Creado" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Agregado" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Corresponsal" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Tipo de Documento" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Ruta de Almacenamiento" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Nota" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Propietario" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Compartido" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Páginas" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "campo de ordenación" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "ordenar al revés" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Ver tamaño de página" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Ver modo de visualización" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Campos de visualización de documentos" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "vista guardada" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "vistas guardadas" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "el título contiene" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "el contenido contiene" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN es" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "interlocutor es" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "el tipo de documento es" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "está en la bandeja de entrada" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "tiene la etiqueta" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "tiene cualquier etiqueta" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "creado antes" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "creado después" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "el año de creación es" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "el mes de creación es" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "creado el día" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "agregado antes de" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "agregado después de" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modificado después de" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modificado antes de" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "no tiene la etiqueta" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "no tiene ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "el título o cuerpo contiene" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "consulta de texto completo" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "más como esto" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "tiene etiquetas en" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN mayor que" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN menor que" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "la ruta de almacenamiento es" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "tiene interlocutor en" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "no tiene interlocutor en" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "tiene el tipo de documento en" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "no tiene el tipo de documento en" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "tiene ruta de almacenamiento en" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "no tiene ruta de almacenamiento en" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "dueño es" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "tiene dueño en" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "no tiene dueño" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "no tiene dueño en" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "tiene un valor de campo personalizado" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "compartido por mí" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "tiene campos personalizados" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "tiene campo personalizado en" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "no tiene campo personalizado en" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "no tiene campo personalizado" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "consulta de campos personalizados" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "creado para" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "creado desde" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "añadido a" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "añadido desde" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "tipo mime es" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "búsqueda simple por título" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "búsqueda simple por texto" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "tipo de regla" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "valor" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "regla de filtrado" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "reglas de filtrado" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Pendiente" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Iniciado" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Éxito" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Error" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Procesar Archivo" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Entrenar Clasificador" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimizar índices" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Buscar correo" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "Índice LLM" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Vaciar papelera" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Verificar flujos de trabajo" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Reprocesar documento" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Crear enlace para compartir" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Borrado masivo" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Programado" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Interfaz de usuario web" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Sistema" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID de la tarea" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Tipo de tarea" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Estado" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Completado" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Duración (segundos)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Tiempo transcurrido desde el inicio hasta la finalización" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Tiempo de espera (segundos)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Tiempo desde la creación de la tarea hasta la recogida del trabajador" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Datos de entrada" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Parámetros de entrada estructurados para la tarea" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Datos de resultado" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Datos de resultado estructurados de la ejecución de la tarea" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Reconocido" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Tarea" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Tareas" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Nota para el documento" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "usuario" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "nota" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notas" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Original" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "expiración" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "compartir enlace" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "compartir enlaces" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Procesando" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Listo" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Fallido" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "tamaño (bytes)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "último error" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "ruta de archivo" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "construido el" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "compartir paquete de enlaces" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "compartir paquetes de enlaces" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Compartir el paquete de enlaces %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Cadena de texto" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Fecha" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Booleano" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Número entero" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Número flotante" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetario" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Enlace al documento" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Selecciona" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Texto largo" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "tipo de dato" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "datos extra" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Datos adicionales para el campo personalizado, como opciones de selección" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "campo personalizado" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "campos personalizados" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instancia de campo personalizado" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instancias de campos personalizados" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Inicio de Análisis" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Documento añadido" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Documento Actualizado" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Consumir carpeta" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Carga de Api" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Modificado" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Campo personalizado" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tipo de disparador de flujo de trabajo" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtrar ruta" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Sólo consumir documentos con una ruta que coincida con esta si se especifica. Los comodines especificados como * están permitidos. No permiten mayúsculas." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtrar nombre del archivo" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtrar documentos de esta regla de correo" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "tiene estas etiqueta(s)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "tiene todas estas etiqueta(s)" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "no tiene estas etiqueta(s)" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "tiene este tipo de documento" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "tiene alguno de estos tipos de documento" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "no tiene estos tipos de documento (s)" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "tiene este interlocutor" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "no tiene esto(s) correspondiente(s)" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "tiene uno de estos correspondientes" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "tiene esta ruta de almacenamiento" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "tiene alguna de estas rutas de almacenamiento" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "no tiene esta(s) ruta(s) de almacenamiento" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtrar consulta de campo personalizado" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Expresión de consulta de campo personalizado codificado en JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "programar días de compensación" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "El número de días para compensar la activación del horario." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "la programación es recurrente" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Si la programación debe ser recurrente." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "programar el retraso recurrente en días" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "El número de días entre los activadores de programación recurrentes." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "programar campo de fecha" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "El campo a comprobar para un activador de programación." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "programar campo de fecha personalizado" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "activador del flujo de trabajo" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "activadores de flujo de trabajo" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "asunto del correo electrónico" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "El asunto del correo electrónico, puede incluir algunos marcadores de posición, consulte la documentación." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "cuerpo del correo electrónico" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "El cuerpo (mensaje) del correo electrónico, puede incluir algunos marcadores de posición, consulte la documentación." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "correos electrónicos a" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Las direcciones de correo electrónico de destino, separadas por comas." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "incluir documento en correo electrónico" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url del webhook" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "La URL de destino de la notificación." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "utilizar parámetros" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "enviar como JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parámetros del webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Los parámetros a enviar con la URL del webhook si no se utiliza el cuerpo." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "cuerpo del webhook" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "El cuerpo a enviar con la URL del webhook si no se utilizan parámetros." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "cabeceras webhook" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Las cabeceras a enviar con la URL del webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "incluir documento en webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Tarea" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Eliminar" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Eliminar contraseña" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Mover a la papelera" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Tipo de acción del flujo de trabajo" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "orden" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "asignar título" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Asignar un título de documento, debe ser una plantilla de Jinja2, ver documentación." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "asignar esta etiqueta" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "asignar este tipo de documento" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "asignar este interlocutor" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "asignar esta ruta de almacenamiento" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "asignar dueño" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "conceder permisos de vista a estos usuarios" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "conceder permisos de vista a estos grupos" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "conceder permisos de cambio a estos usuarios" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "conceder permisos de cambio a estos grupos" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "asignar estos campos personalizados" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "Valores de campos personalizados" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Valores opcionales para asignar a los campos personalizados." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "eliminar estas etiqueta(s)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "elimina todas las etiquetas" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "eliminar este tipo de documento (s)" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "eliminar todos los tipos de documentos" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "eliminar estos corresponsales" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "eliminar a todos los corresponsales" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "eliminar estas rutas de almacenamiento" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "eliminar todas las rutas de almacenamiento" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "eliminar estos propietarios" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "eliminar todos los propietarios" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "elimina permisos de visualización para estos usuarios" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "elimina permisos de visualización para estos grupos" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "eliminar permisos de cambio para estos usuarios" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "elimina permisos de cambio para estos grupos" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "elimina todos los permisos" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "elimina estos campos personalizados" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "elimina todos los campos personalizados" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "correo-e" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "contraseñas" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Contraseñas a probar al eliminar la protección PDF. Separe con comas o con nuevas líneas." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "acción de Flujo de Trabajo" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "acciones de flujo de trabajo" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "disparador" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "acciones" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "habilitado" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "flujo de trabajo" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "tipo de activador de flujo de trabajo" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "fecha de ejecución" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "ejecución del flujo de trabajo" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "ejecuciones de flujo de trabajo" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Permisos insuficientes." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Color inválido." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Tipo de fichero %(type)s no suportado" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "El id del campo personalizado debe ser un entero: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "El campo personalizado con identificador %(id)s no existe" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Los campos personalizados deben ser una lista de enteros o un identificador de mapeo de objetos a valores." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Algunos campos personalizados no existen o fueron especificados dos veces." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Variable inválida." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "No se permiten identificadores de documento duplicados." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Documentos no encontrados: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "El esquema URI '{parts.scheme}' no está permitido. Esquemas permitidos: msgid "Unable to parse URI {value}" msgstr "No se puede analizar la URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Configuración de IA inválida." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Especifique solo uno entre text, title_search, query, o more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Permisos insuficientes para compartir el documento %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "El paquete ya está siendo procesado." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "El paquete de enlace compartido aún está siendo preparado. Por favor, inténtalo de nuevo más tarde." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "El paquete de enlace compartido no está disponible." @@ -2160,223 +2181,231 @@ msgstr "Establece el mapeo de códigos de barras de etiquetas" msgid "Enables splitting on tag barcodes" msgstr "Permite la división en códigos de barras de etiquetas" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Habilita funciones de IA" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Establece el backend LLM embebido" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Establece el modelo LLM embebido" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "Establece el endpoint del LLM, opcional" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "Establece el endpoint del LLM, opcional" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Establece el backend LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Establece el modelo LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Establece la API key del LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Establece el endpoint del LLM, opcional" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Establece el idioma de salida de LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Establece el tiempo de espera de LLM en segundos" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "Ajustes de la aplicación paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Inglés (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Árabe" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Africano" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Bielorruso" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Búlgaro" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Catalán" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Checo" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danés" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Alemán" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Griego" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Inglés (Gran Bretaña)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Español" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persa" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finlandés" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francés" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Húngaro" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonesio" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italiano" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japonés" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Coreano" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburgués" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Noruego" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Alemán" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polaco" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugués (Brasil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugués" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumano" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Ruso" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Eslovaco" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Esloveno" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbio" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Sueco" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turco" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ucraniano" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamita" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chino simplificado" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Chino tradicional" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administración de Paperless-ngx" diff --git a/src/locale/et_EE/LC_MESSAGES/django.po b/src/locale/et_EE/LC_MESSAGES/django.po index 29c4106a9..435d8ba3c 100644 --- a/src/locale/et_EE/LC_MESSAGES/django.po +++ b/src/locale/et_EE/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Estonian\n" "Language: et_EE\n" @@ -57,31 +57,31 @@ msgstr "Suurim pesastamis sügavus ületatud." msgid "Custom field not found" msgstr "Kohandatud välja ei leitud" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "omanik" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Ei midagi" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Mis tahes sõna" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Kõik sõnad" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Täpne vaste" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regulaaravaldis" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Hägussõna" @@ -89,20 +89,20 @@ msgstr "Hägussõna" msgid "Automatic" msgstr "Automaatne" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nimi" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "vaste" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "sobitusalgoritm" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "pole tundlik" @@ -166,7 +166,7 @@ msgstr "salvestusteed" msgid "title" msgstr "pealkiri" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "sisu" @@ -202,8 +202,8 @@ msgstr "lehekülgede arv" msgid "The number of pages of the document." msgstr "Dokumendi lehekülgede arv." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "loodud" @@ -267,1395 +267,1416 @@ msgstr "versiooni silt" msgid "Optional short label for a document version." msgstr "Valikuline lühisilt dokumendi versioonile." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumendid" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arhiiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Pank" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Korv" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Kell" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Järjehoidja" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Tekst fail" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "Failid" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Kaust" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "Räsi" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Dokumendi Liik" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "" diff --git a/src/locale/fa_IR/LC_MESSAGES/django.po b/src/locale/fa_IR/LC_MESSAGES/django.po index 64ca3a2cc..bb615fdd8 100644 --- a/src/locale/fa_IR/LC_MESSAGES/django.po +++ b/src/locale/fa_IR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Persian\n" "Language: fa_IR\n" @@ -57,31 +57,31 @@ msgstr "حداکثر عمق تودرتویی بیش از حد مجاز است." msgid "Custom field not found" msgstr "زمینه سفارشی یافت نشد" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "مالک" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "هیچ کدام" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "هر کلمه ایی" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "همه کلمات" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "مطابقت دقیق" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "عبارت باقاعده" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "کلمه مبهم" @@ -89,20 +89,20 @@ msgstr "کلمه مبهم" msgid "Automatic" msgstr "خودکار" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "اسم" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "مطابقت" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "الگوریتم تطبیق" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "غیر حساس است" @@ -166,7 +166,7 @@ msgstr "مسیرهای ذخیره ساز" msgid "title" msgstr "عنوان" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "محتوا" @@ -202,8 +202,8 @@ msgstr "شمارش صفحه" msgid "The number of pages of the document." msgstr "تعداد صفحات سند." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "ایجاد شده" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "مدرک" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "اسناد" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "بایگانی" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "فیلتر کردن" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "لیست وظایف" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "برچسب ها" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "جدول" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "کارتهای کوچک" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "کارتهای بزرگ" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "عنوان" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "ایجاد شده" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "اضافه شده" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "مکاتبه کننده" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "نوع سند" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "مسیر ذخیره ساز" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "یادداشت" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "صاحب" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "مشترک" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "صفحات" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "میدان مرتب" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "مرتب کردن برعکس" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "مشاهده اندازه صفحه" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "مشاهده حالت نمایش" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "زمینه های نمایش سند" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "نمای ذخیره شده" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "نماهای ذخیره شده" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "عنوان شامل" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "محتوای موجود" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN است" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "مکاتبه کننده است" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "نوع سند است" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "در صندوق ورودی است" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "دارای برچسب" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "هر برچسب دارد" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "قبل آفریده شده" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "پس از" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "سال ایجاد شده است" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "ماه ایجاد شده است" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "روز ایجاد شده است" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "قبل اضافه شده" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "بعد" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "قبل از" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "اصلاح شده پس از" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "برچسب ندارد" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "ASN ندارد" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "عنوان یا محتوا شامل" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "پرس و جو متن کامل" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "بیشتر شبیه این است" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "دارای برچسب در" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN بزرگتر از" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN کمتر از" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "مسیر ذخیره ساز است" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "مکاتبه کننده دارد در" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "خبرنگار در" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "دارای نوع سند در" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "نوع سند در آن وجود ندارد" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "دارای مسیر ذخیره سازی در" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "مسیر ذخیره سازی ندارد" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "مالک است" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "مالک در" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "مالک ندارد" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "مالک نیست" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "دارای مقدار فیلد سفارشی است" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "توسط من به اشتراک گذاشته شده است" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "زمینه های سفارشی دارد" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "دارای زمینه سفارشی در" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "زمینه سفارشی در" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "زمینه سفارشی ندارد" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "پرس و جو زمینه های سفارشی" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "ایجاد شده به" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "ایجاد شده از" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "اضافه شده به" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "اضافه شده از" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "نوع تقلید است" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "نوع قانون" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "ارزش" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "قانون" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "قوانین فیلتر" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "پرونده مصرف کنید" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "طبقه بندی کننده قطار" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "بهینه سازی فهرست" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "نامه واکشی" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "برنامه ریزی شده" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "UI وب" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "شناسه کار" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "نوع کار" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "داده های نتیجه" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "تصدیق شده" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "توجه برای سند" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "کاربر" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "یادداشت" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "یادداشت ها" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "اصلی" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "انقضاء" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "لگد زدن" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "لینک مشترک" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "پیوندهای به اشتراک بگذارید" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "رشته" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "url" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "تاریخ" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "بولی" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "عدد صحیح" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "شناور" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "پولی" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "لینک مستند" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "انتخاب کردن" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "متن طولانی" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "نوع داده" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "داده های اضافی" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "داده های اضافی برای قسمت سفارشی ، مانند گزینه های انتخاب" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "قسمت سفارشی" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "زمینه های سفارشی" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "نمونه زمینه سفارشی" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "نمونه های میدانی سفارشی" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "مصرف آغاز شد" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "سند اضافه شده است" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "سند به روز شده" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "پوشه مصرف کنید" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "بارگذاری API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "اصلاح شده" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "قسمت سفارشی" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "نوع ماشه گردش کار" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "مسیر فیلتر" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "فقط اسناد را با مسیری مصرف کنید که در صورت مشخص شدن با این مطابقت داشته باشد. کارتهای وحشی مشخص شده به عنوان * مجاز هستند. مورد غیر حساس" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "نام پرونده فیلتر" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "فقط اسنادی را مصرف کنید که در صورت مشخص شدن کاملاً با این پرونده مطابقت داشته باشد. کارتهای وحشی مانند *.pdf یا *فاکتور *مجاز است. مورد غیر حساس" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "اسناد را از این قانون نامه فیلتر کنید" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "این برچسب (ها)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "آیا این نوع سند است" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "این خبرنگار است" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "روزهای افست را برنامه ریزی کنید" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "تعداد روزهای جبران برنامه توسط." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "برنامه در حال تکرار است" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "اگر برنامه باید تکرار شود." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "تأخیر مکرر را در روزها برنامه ریزی کنید" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "تعداد روزهای بین برنامه مکرر باعث می شود." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "قسمت تاریخ برنامه" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "قسمت برای بررسی یک ماشه برنامه." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "قسمت برنامه سفارشی تاریخ" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "محرک گردش کار" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "گردش کار باعث می شود" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "موضوع ایمیل" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "موضوع ایمیل می تواند شامل برخی از متغیرها باشد ، به اسناد مراجعه کنید." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "بدنه ایمیل" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "بدنه (پیام) ایمیل می تواند شامل برخی از متغیرها باشد ، به مستندات مراجعه کنید." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "ایمیل به" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "آدرس های ایمیل مقصد ، کاما از هم جدا شده است." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "سند را در ایمیل وارد کنید" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "URL Webhook" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "URL مقصد برای اعلان." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "از پارامترها استفاده کنید" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "ارسال به عنوان JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "پارامترهای Webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "در صورت عدم استفاده از بدنه ، پارامترهای ارسال شده با URL Webhook." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "بدنه وب" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "در صورت عدم استفاده از پارامترها ، بدنه ای برای ارسال با URL Webhook." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "هدرهای Webhook" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "هدرها برای ارسال با URL Webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "سند را در وب وب قرار دهید" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "تخصیص" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "حذف" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "ایمیل" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "شبکه وب" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "نوع عمل گردش کار" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ترتیب" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "عنوان اختصاص دادن" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "این برچسب را اختصاص دهید" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "این نوع سند را اختصاص دهید" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "این خبرنگار را اختصاص دهید" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "این مسیر ذخیره سازی را اختصاص دهید" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "این مالک را اختصاص دهید" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "اعطای مجوزها به این کاربران" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "اعطای مجوزها به این گروه ها" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "اعطای مجوزهای تغییر به این کاربران" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "اعطای مجوزها به این گروه ها" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "این زمینه های سفارشی را اختصاص دهید" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "مقادیر فیلد سفارشی" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "مقادیر اختیاری برای اختصاص به قسمتهای سفارشی." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "حذف این برچسب (ها)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "حذف همه برچسب ها" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "حذف این نوع سند (ها)" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "حذف همه انواع سند" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "همه خبرنگاران را حذف کنید" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "این مسیر (های) ذخیره سازی را حذف کنید" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "تمام مسیرهای ذخیره سازی را حذف کنید" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "این صاحب (ها) را حذف کنید" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "همه صاحبان را حذف کنید" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "مجوزهای نمایش را برای این کاربران حذف کنید" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "مجوزهای نمایش را برای این گروه ها حذف کنید" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "مجوزهای تغییر را برای این کاربران حذف کنید" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "مجوزهای تغییر را برای این گروه ها حذف کنید" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "تمام مجوزها را حذف کنید" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "این زمینه های سفارشی را حذف کنید" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "همه زمینه های سفارشی را حذف کنید" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "ایمیل" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "شبکه وب" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "عمل گردش کار" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "اقدامات گردش کار" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "محرک" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "اقدامات" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "فعال" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "گردش کار" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "نوع ماشه گردش کار" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "تاریخ اجرا" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "گردش کار" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "گردش کار اجرا می شود" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "رنگ نامعتبر" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "متغیر نامعتبر شناسایی شده است." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "نقشه بارکد برچسب را تنظیم می کند" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "تنظیمات برنامه بدون کاغذ" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "انگلیسی (ایالات متحده)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "عربی" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "افریکان" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "وابسته به بلروس" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "وابسته به بلغاری" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "کاتالان" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "وابسته به چک" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "وابسته به دانمارکی" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "آلمانی" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "یونانی" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "انگلیسی (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "اسپانیایی" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "فارسی" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "فنلاندی" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "فرانسوی" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "مجارستانی" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "ایتالیایی" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "وابسته به ژاپنی" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "کره ای" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "وابسته به لوکس" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "نروژی" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "هلندی" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "صیقل دادن" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "پرتغالی (برزیل)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "وابسته به پرتغالی" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "وابسته به رومانی" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "روسی" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "لگن" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "وابسته به اسلوونی" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "صرب" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "سوئدی" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "ترکی" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "وابسته به اوکراینی" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "چینی ساده شد" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "چینی سنتی" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "مدیریت بدون مقاله NGX" diff --git a/src/locale/fi_FI/LC_MESSAGES/django.po b/src/locale/fi_FI/LC_MESSAGES/django.po index 32d00eb1e..464b69764 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Finnish\n" "Language: fi_FI\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "omistaja" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Ei mitään" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Mikä tahansa sana" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Kaikki sanat" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Tarkka osuma" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Säännöllinen lauseke (regex)" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Sumea sana" @@ -89,20 +89,20 @@ msgstr "Sumea sana" msgid "Automatic" msgstr "Automaattinen" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nimi" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "osuma" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "tunnistusalgoritmi" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "ei ole herkkä" @@ -166,7 +166,7 @@ msgstr "tallennustilan polut" msgid "title" msgstr "otsikko" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "sisältö" @@ -202,8 +202,8 @@ msgstr "sivumäärä" msgid "The number of pages of the document." msgstr "Asiakirjan sivujen lukumäärä." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "luotu" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "asiakirja" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "asiakirjat" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Suodatin" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Tunnisteet" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Pienet kortit" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Suuret kortit" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Luotu" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Lisätty" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Asiakirjan tyyppi" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Tallennustilan polku" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Omistaja" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Jaettu" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "lajittelukenttä" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "lajittele käänteisesti" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Näytä sivun koko" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "tallennettu näkymä" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "tallennetut näkymät" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "otsikko sisältää" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "sisältö sisältää" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN on" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "yhteyshenkilö on" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "asiakirjatyyppi on" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "on uusi" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "on tagattu" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "on mikä tahansa tagi" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "luotu ennen" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "luotu jälkeen" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "luotu vuonna" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "luotu kuukautena" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "luomispäivä on" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "lisätty ennen" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "lisätty jälkeen" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "muokattu ennen" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "muokattu jälkeen" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "ei ole tagia" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "ei ole ASN-numeroa" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "otsikko tai sisältö sisältää" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "fulltext-kysely" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "sisältää tagit" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN suurempi kuin" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN pienempi kuin" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "tallennustilan polku on" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "omistaja on" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "sisältää mukautetun kentän arvon" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "on minun jakamani" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "sääntötyyppi" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "arvo" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "suodatussääntö" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "suodatussäännöt" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Tehtävä-ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Tulokset" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Vahvistettu" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "käyttäjä" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "muistiinpanot" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Alkuperäinen" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Kokonaisluku" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Asiakirjan linkki" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "datatyyppi" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "mukautettu kenttä" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "mukautetut kentät" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Asiakirja lisätty" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Asiakirja päivitetty" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API-lähetys" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Muokattu" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Mukautettu kenttä" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Sähköposti" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "järjestys" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "määritä tämä tunniste" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "määritä tämä asiakirjatyyppi" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "määritä tämä kirjeenvaihtaja" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "poista kaikki tunnisteet" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "poista nämä asiakirjatyypit" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "poista kaikki asiakirjatyypit" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "poista kaikki omistajat" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "poista kaikki käyttöoikeudet" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "poista nämä mukautetut kentät" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "poista kaikki mukautetut kentät" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "työnkulun toiminto" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "työnkulun toiminnot" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "toiminnot" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "käytössä" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Virheellinen väri." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Tiedostotyyppiä %(type)s ei tueta" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Virheellinen muuttuja havaittu." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Englanti (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabialainen" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "valkovenäjä" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalaani" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tšekki" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Tanska" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Saksa" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Kreikka" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Englanti (US)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Espanja" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Suomi" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Ranska" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italia" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburg" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norja" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Hollanti" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "puola" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "portugali (Brasilia)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "portugali" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "romania" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "venäjä" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovakia" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovenia" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbia" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "ruotsi" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turkki" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukraina" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Kiina (yksinkertaistettu)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx:n ylläpito" diff --git a/src/locale/fr_FR/LC_MESSAGES/django.po b/src/locale/fr_FR/LC_MESSAGES/django.po index b4ff8c627..817ccc97a 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -57,31 +57,31 @@ msgstr "Profondeur de récursion maximale dépassée." msgid "Custom field not found" msgstr "Champ personnalisé non trouvé" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "propriétaire" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Aucun élément" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Un des mots" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Tous les mots" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Concordance exacte" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Expression régulière" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Mot approximatif" @@ -89,20 +89,20 @@ msgstr "Mot approximatif" msgid "Automatic" msgstr "Automatique" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nom" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "rapprochement" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algorithme de rapprochement" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "est insensible à la casse" @@ -166,7 +166,7 @@ msgstr "chemins de stockage" msgid "title" msgstr "titre" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "contenu" @@ -202,8 +202,8 @@ msgstr "nombre de pages" msgid "The number of pages of the document." msgstr "Le nombre de pages du document." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "créé le" @@ -267,1395 +267,1416 @@ msgstr "libellé de la version" msgid "Optional short label for a document version." msgstr "Étiquette courte optionnelle pour une version du document." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "document" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "documents" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archive" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Banque" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Panier" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Cloche" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Favori" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Boîtes" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Mallette" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Batîment" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "Calculateur" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Calendrier" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Appareil photo" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Liste de contrôle" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Argent liquide" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Discussion" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Chèque" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Presse-papiers" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Horloge" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Carte de crédit" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Téléchargement" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Enveloppe" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Avertissement" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "Fichier" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "Fichier sélectionné" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "Fichier verrouillé" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "Dossier médical" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "Fichier personnel" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Feuille de calcul" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Fichier texte" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtrage" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "Journaux" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "Liste des tâches" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "Pièce jointe" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "Personnes" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "Personne" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "Imprimante" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "Reçu" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "Rechercher" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "Envoyer" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Étiquettes" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "Téléphone" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "Code-barres" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "Portefeuille" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tableau" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Petites cartes" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Grandes cartes" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titre" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Date de création" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Date d'ajout" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Correspondant" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Type du document" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Chemins de stockage" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Note" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Propriétaire" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Partagé" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "NSA" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Pages" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "champ de tri" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "tri inverse" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Voir la taille de la page" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Voir le mode d'affichage" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Champs d'affichage du document" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "vue enregistrée" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "vues enregistrées" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "le titre contient" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "le contenu contient" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "le NSA est" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "le correspondant est" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "le type de document est" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "est dans la boîte de réception" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "porte l'étiquette" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "porte l'une des étiquettes" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "créé avant" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "créé après" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "l'année de création est" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "le mois de création est" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "le jour de création est" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "ajouté avant" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "ajouté après" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modifié avant" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modifié après" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "ne porte pas d'étiquette" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "ne porte pas de NSA" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "le titre ou le contenu contient" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "recherche en texte intégral" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "plus comme cela" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "porte une étiquette parmi" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "NSA supérieur à" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "NSA inférieur à" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "le chemin de stockage est" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "a un correspondant dans" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "n'a pas de correspondant dans" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "a un type de document en" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "n'a pas de type de document dans" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "a un chemin de stockage dans" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "n'a pas de chemin de stockage dans" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "le propriétaire est" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "a le propriétaire dans" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "n'a pas de propriétaire" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "n'a pas de propriétaire dans" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "a une valeur de champ personnalisé" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "est partagé par moi" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "a des champs personnalisés" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "a un champ personnalisé dans" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "n'a pas de champ personnalisé dans" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "n'a pas de champ personnalisé" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "champs personnalisés de requête" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "créé vers" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "créé depuis" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "ajouté à" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "ajouté depuis" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "le type mime est" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "recherche simple de titre" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "recherche simple de titre" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "type de règle" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "valeur" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "règle de filtrage" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "règles de filtrage" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "En attente" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Commencé" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Succès" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Échec" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Révoqué" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Fichier à consommer" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Entrainer le classificateur" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Vérification de cohérence" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimisation de l'index" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Récupération du courriel" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "Index LLM" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Vider la corbeille" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Processus de contrôle" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Mise à jour groupée" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Procéder à nouveau à l'évaluation du document" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Créer un lien de partage" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Supprimer par lot" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Planifié" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Interface web" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "Transfert de fichier par API" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Répertoire de consommation" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Courriel de consommation" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Système" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Manuel" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID de tâche" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "ID de la tâche Celery" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Type de tâche" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Le travail est en train d'être effectué" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Source du déclenchement" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Qui a initié cette tâche" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "État" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Terminé(s)" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Durée (secondes)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Durée d'exécution" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Temps d'attente (secondes)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Temps de latence en file d'attente" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Données d'entrée" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Paramètre de structure d'entrée pour la tâche" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Données de résultat" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Résultat de la tâche" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Confirmé" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Tâche" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Tâches" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Note pour le document" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "utilisateur" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "note" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notes" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Original" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "expiration" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "Identifiant URL" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "lien de partage" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "liens de partage" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "En traitement" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Prêt" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Échec" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "Taille (octets)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "dernière erreur" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "chemin du fichier" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "compilé à" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "partager le lot de liens" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "partager le lot de liens" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Partager le lot de liens %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Chaîne de caractères" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Date" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Booléen" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Nombre entier" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Nombre décimal" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monétaire" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Lien du document" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Liste déroulante" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Texte long" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "type de données" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "Données supplémentaires" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Données supplémentaires pour le champ personnalisé, comme des options de sélection" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "champ personnalisé" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "champs personnalisés" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instance de champs personnalisés" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instances de champs personnalisés" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "La consommation a débuté" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Document ajouté" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Document mis à jour" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Dossier d'Importation" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Téléverser l'Api" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Modifié" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Champ personnalisé" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Type de déclencheur de workflow" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "Filtrer le chemin" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Ne consomme que les documents dont le chemin d'accès correspond à celui-ci s'il est spécifié. Les caractères génériques (*) sont autorisés. Insensible à la casse." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "Filtrer le nom de fichier" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "Filtrer les documents à partir de cette règle de messagerie" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "A cette/ces étiquette(s)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "a toutes ces étiquettes" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "n'a pas ce(s) tag(s)" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "A ce type de document" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "a un de ces types de documents" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "n'a pas ce(s) type(s) de document" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "A ce correspondant" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "n'a pas ce(s) correspondant(s)" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "a un de ces correspondants" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "a ce chemin de sauvegarde" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "a un de ces emplacements de stockage" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtrer la requête de champ personnalisé" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Expression de champ personnalisé encodée en JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "Décalage de jours de planification" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Le nombre de jours pour décaler le déclenchement de l'horaire de" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "La planification est récurrente" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Si la planification doit être récurrente." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "délai récurrent de planification en jours" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Le nombre de jours entre chaque déclenchement récurrent de planification." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "Champ de date du calendrier" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Champ à vérifier pour un déclencheur d'horaire" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "Champ personnalisé date de l'horaire" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "Déclencheur workflow" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "Déclencheurs workflow" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "Objet du courriel" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "L'objet de l'e-mail, qui peut inclure des caractères de remplacement, voir la documentation." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "Corps du courriel" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Le corps (message) de l'e-mail, peut inclure des caractères de remplissage, voir la documentation." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "Courriels à" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Les adresses électroniques de destination, séparées par des virgules." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "inclure le document dans le courriel" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url webhook" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "L’URL de destination pour la notification." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "Utiliser les paramètres" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "Envoyer en JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "paramètres du webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Les paramètres à envoyer avec l'URL du webook si le corps n'est pas utilisé." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "corps du Webhook" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Le corps à envoyer avec l'URL du webhook si les paramètres ne sont pas utilisés." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "en-têtes Webhook" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Les en-têtes à envoyer avec l'URL du webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "inclure le document dans le webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Affectation" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Suppression" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Adresse électronique" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Suppression du mot de passe" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Déplacer vers la corbeille" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Type d'action de workflow" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ordre" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "Attribuer un titre" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Attribuer un titre de document, doit être un modèle Jinja2, voir la documentation." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "affecter cette étiquette" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "affecter ce type de document" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "affecter ce correspondant" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "Assigner ce chemin de stockage" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "Assigner ce propriétaire" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "accorder des autorisations de consultation à ces utilisateurs" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "accorder des autorisations de consultation à ces groupes" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "accorder des droits de modification à ces utilisateurs" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "accorder des droits de modification à ces groupes" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "assigner ces champs personnalisés" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "valeurs de champs personnalisés" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Valeurs facultatives à attribuer aux champs personnalisés." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "supprimer cette/ces étiquette(s)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "supprimer toutes les étiquettes" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "Supprimer ce(s) type(s) de document" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "supprimer tous les types de document" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "Supprimer ce(s) correspondant(s)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "Supprimer tous les correspondants" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "Supprimer ce(s) chemin(s) de stockage" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "Supprimer tous les chemins de stockage" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "Supprimer ce(s) propriétaire(s)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "Supprimer tous les propriétaires" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "Supprimer les autorisations de consultation pour ces utilisateurs" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "Supprimer les autorisations de consultation pour ces groupes" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "Supprimer l'autorisation de modification pour ces utilisateurs" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "Supprimer l'autorisation de modification pour ces groupes" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "Supprimer toutes les autorisations" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "Supprimer tous ces champs personnalisés" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "Supprimer tous les champs personnalisés" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "courriel" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "mots de passe" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Mots de passe à essayer lors du retrait de la protection du PDF. Séparer par des virgules ou un retour à la ligne." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "action de workflow" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "actions de workflow" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "déclencheurs" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "actions" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "activé" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "workflow" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "Type de déclencheur de flux de travail" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "date d'exécution" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "exécution du workflow" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "le flux de travail s'exécute" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Droits insuffisants." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Couleur incorrecte." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Type de fichier %(type)s non pris en charge" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "L'id du champ personnalisé doit être un entier : %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Le champ personnalisé avec l'id %(id)s n'existe pas" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Les champs personnalisés doivent être une liste d'entiers ou un mappage d'identifiants à des valeurs." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Certains champs personnalisés n'existent pas ou ont été spécifiés deux fois." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Variable invalide détectée." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Les identificateurs de document en double ne sont pas autorisés." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Documents introuvables : %(ids)s" @@ -1910,40 +1931,40 @@ msgstr "Le schéma d'URI « {parts.scheme} » n'est pas autorisé. Schémas aut msgid "Unable to parse URI {value}" msgstr "Impossible d'analyser l'URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "More_like_id invalide" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Configuration IA invalide." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "La requête d'arrière-plan IA a expiré." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Spécifiez seulement un texte, titre, recherche ou more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Droits d'accès insuffisant pour partager %(id)s document." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Le paquet est déjà en cours de traitement." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Le lot de liens de partage est en cours de préparation. Veuillez réessayer plus tard." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Le lot de liens de partage n'est pas disponible." @@ -2159,223 +2180,231 @@ msgstr "Définit la correspondance des étiquettes de code-barres" msgid "Enables splitting on tag barcodes" msgstr "Active la division sur les codes à barres des tags" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Activer les fonctionnalités IA" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Définit le LLM embedding backend" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Définit le modèle d'embedding LLM" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Définit le endpoint LLM, optionnel" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Définit le LLM embedding backend" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Définir la taille du contexte LLM" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Définit le LLM backend" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Définit le modèle LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Définit la clé d'API LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Définit le endpoint LLM, optionnel" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Définit la langue de sortie du LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Définit le délai d'attente du LLM en secondes" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "paramètres de l'application paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Anglais (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabe" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikaans" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Biélorusse" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgare" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Catalan" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tchèque" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danois" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Allemand" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grec" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Anglais (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Espagnol" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persan" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finnois" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Français" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Hongrois" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonésien" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italien" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japonais" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Coréen" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxembourgeois" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norvégien" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Néerlandais" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polonais" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugais (Brésil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugais" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Roumain" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russe" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Solvaque" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovène" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbe" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Suédois" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turc" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrainien" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamien" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chinois simplifié" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Chinois traditionnel" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administration de Paperless-ngx" diff --git a/src/locale/he_IL/LC_MESSAGES/django.po b/src/locale/he_IL/LC_MESSAGES/django.po index 3e5da4401..49f1adb85 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -57,31 +57,31 @@ msgstr "חריגה מעומק הקינון המרבי." msgid "Custom field not found" msgstr "שדה מותאם אישית לא נמצא" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "בעלים" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "ללא" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "מילה כלשהי" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "כל המילים" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "התאמה מדויקת" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "ביטוי רגולרי" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "מילה מעורפלת" @@ -89,20 +89,20 @@ msgstr "מילה מעורפלת" msgid "Automatic" msgstr "אוטומטי" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "שם" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "התאמה" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "אלגוריתם התאמה" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "אינו תלוי רישיות" @@ -166,7 +166,7 @@ msgstr "נתיבי אחסון" msgid "title" msgstr "כותרת" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "תוכן" @@ -202,8 +202,8 @@ msgstr "מספר עמודים" msgid "The number of pages of the document." msgstr "מספר העמודים במסמך." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "יצירה" @@ -267,1396 +267,1417 @@ msgstr "תג גרסה" msgid "Optional short label for a document version." msgstr "תג מקוצר אפשרי עבור גרסת מסמך." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "מסמך" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "מסמכים" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "ארכיון" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "סינון" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "תגיות" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "טבלה" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "כרטיסיות קטנות" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "כרטיסיות גדולות" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "כותרת" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "נוצר" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "נוסף" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "מכותב" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "סוג מסמך" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "נתיב אחסון" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "הערה" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "בעלים" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "משותף" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ארכיב" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "עמודים" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "שדה המיון" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "מיין הפוך" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "גודל עמוד תצוגה" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "מצב תצוגה" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "שדות תצוגת מסמך" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "תצוגה שמורה" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "תצוגות שמורות" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "כותרת מכילה" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "תוכן מכיל" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "מס\"ד הוא" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "מכותב הוא" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "סוג מסמך הוא" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "בתיבה הנכנסת" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "ישנו תיוג" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "ישנו כל תיוג" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "נוצר לפני" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "נוצר לאחר" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "נוצר בשנת" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "נוצר בחודש" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "נוצר ביום" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "נוסף לפני" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "נוסף אחרי" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "נערך לפני" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "נערך אחרי" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "אינו כולל את התיוג" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "אינו בעל מס\"ד" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "כותרת או תוכן מכילים" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "שאילתת טקסט מלא" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "עוד כמו זה" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "מכיל תגים ב־" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "מערכת אוטונומית גדולה מ" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "מערכת אוטונומית קטן מ" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "מיקום האיחסון" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "קיים מכותב ב" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "ללא מכותב" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "סוג מסמך הוא" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "ללא סיווג סוג מסמך" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "נתיב האחסון" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "ללא נתיב אחסון" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "הבעלים הם" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "יש בעלים תחת" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "אין בעלים" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "אין בעלים תחת" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "עם שדה מותאם אישית" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "משותף" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "קיימים שדות מותאמים אישית" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "קיימים שדות מותאמים אישית ב-" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "לא קיימים שדות מותאמים אישית ב-" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "לא קיימים שדות מותאמים אישית" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "שאילתת שדות מותאמים אישית" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "נוצר ל-" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "נוצר מ-" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "נוסף ל-" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "נוסף מ-" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "סוג הקובץ הוא: " -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "חיפוש כותרת פשוט" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "חיפוש מלל פשוט" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "סוג כלל" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "ערך" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "חוק סינון" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "חוקי סינון" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "ממתין" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "התחיל" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "הצלחה" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "כישלון" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "יצא משימוש" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "צרוך קובץ" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "אימון הממיין" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "בדיקת שפיות" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "מיטוב אינדקס" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "הורד מייל" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "אינדקס מודל שפה" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "רוקן אשפה" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "בחן תהליכי עבודה" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "עדכון גוש" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "בחינת מסמכים מחודשת" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "צור שיתוף" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "מחיקת גוש" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "תזמון" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "ממשק משתמש" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "העלאת API" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "תיקיית צריכה" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "דוא\"ל צריכה" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "מערכת" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "ידני" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "מספר משימה" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "מזהה משימת סלרי" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "סוג משימה" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "סוג העבודה בתהליך" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "מקור ההדק" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "מה יזם את המשימה" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "סטטוס" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "הסתיים" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "משך (שניות)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "זמן מוערך מהתחלה עד סיום" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "זמן המתנה (שניות)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "זמן מיצירת משימה עד לאיסוף רכיב תפעול" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "הזנת מידע" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "הגדרות במבנה עבור המשימה" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "תוצאת מידע" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "מידע תוצאה מובנית כתוצאה מהפעלה" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "מודע" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "משימה" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "משימות" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "הערה להמסמך" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "משתמש" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "הערה" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "הערות" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "מקור" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "תפוגה" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "טוקן" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "שתף קישור" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "שתף קישורים" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "מעבד" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "מוכן" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "נכשל" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "גודל (בייטים)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "שגיאה אחרונה" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "נתיב הקובץ" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "נבנה ב" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "שתף חבילת קישורים" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "שתף חבילות קישורים" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "שתף את הקישור %(slug)s (חבילה)" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "מחרוזת" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "כתובת URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "תאריך" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "בוליאני" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "מספר שלם" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "צף" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "כספי" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "קישור למסמך" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "בחר" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "טקסט ארוך" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "סוג מידע:" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "נתונים נוספים" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "נתונים נוספים לשדה המותאם אישית, כגון אפשרויות בחירה." -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "שדה מותאם אישית" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "שדות מותאמים אישית" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "שדה מותאם אישית" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "שדות מותאמים אישית" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "הצריכה התחילה" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "המסמך התווסף" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "המסמך עודכן" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "עיבוד תיקיה" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "העלאה באמצעות API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "שונה" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "שדה מותאם אישית" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "סוג מפעיל זרימת עבודה" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "נתיב מסנן" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "עבד רק קבצים המצוים בנתיב זה אם מוגדר. " -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "סנן לפי שם קובץ" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "קבל רק מסמכים שתואמים לחלוטין את שם הקובץ הזה אם צוין. תווים כלליים כגון pdf.* או *חשבונית* מותרים. חסר רגישות תווים גדולים/קטנים (אנגלית)." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "סנן מסמכים לפי כלל המייל הזה" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "מכיל את התגית/תגיות הבאות" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "יש לו את כל התיוג(ים)" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "לא מכיל את התיוג(ים)" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "יש את סוג המסמך זה" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "יש ברשותו אחד מסוגי המסמכים האלה" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "אין לו את סוג(י) המסמך הזה" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "יש את המכותב זה" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "אין לו את הכותב(ים) האלה" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "מכיל אחד מהמתכתבים הללו" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "הקצה נתיב אחסון זה" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "מכיל אחד מנתיבי האחסון הללו" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "אינו מכיל את נתיב/י האחסון הללו" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "תשאול שדה מסנן מותאם אישית" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "תשאול ביטוי שדה מותאם אישית באמצעות JSON-מקודד." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "קביעת ימי קיזוז" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "מספר הימים לקיזוז על ידי לוח הזמנים." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "לוח זמנים מחזורי" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr ". אם הלו\"ז אמור להיות מחזורי." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "השהיית לוח זמנים מחזורי בימים" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr ". מספר הימים בין הפעלות מחזוריות של לוח הזמנים." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "שדה תאריך ללוח הזמנים" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr ". השדה שיש לבדוק עבור הפעלת לוח הזמנים." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr ". שדה תאריך מותאם אישית ללוח הזמנים" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "טריגר של זרימת עבודה" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "טריגרים של זרימת עבודה" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "נושא אימייל" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "נושא האימייל, ניתן לכלול בו מצייני מיקום — ראו תיעוד." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "גוף אימייל" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "גוף ההודעה (טקסט), ניתן לכלול בו מצייני מיקום — ראו תיעוד." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "כתובות אימייל לנמענים" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr ".כתובות האימייל של הנמענים, מופרדות בפסיקים\n" "." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "כלול מסמך באימייל" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "כתובת יו.אר.אל של וובהוק" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "כתובת יו.אר.אל אליה תשלח ההודעה" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "השתמש בפרמטרים" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "JSON שליחה כ " -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "weobhook פרמטרים של ה" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr ". הפרמטרים שיש לשלוח עם כתובת הוובהוקאם לא נעשה שימוש בגוף ההודעה." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "גוף ההודעה שתשלח לכתובת הוובהוק" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhook כותרות ה" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "הכותרות שיש לשלוח עם כתובת הוובהוק." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "כלול מסמך בוובהוק" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "הקצאה" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "הסרה" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "דוא\"ל" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "וובהוק [קריאה חוזרת]" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "הסרת סיסמה" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "העבר לאשפה" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "סוג פעולה של זרימת עבודה" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "סדר" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "הקצה כותרת" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "שייך תגית זו" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "שייך סוג מסמך זה" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "שייך מכותב זה" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "הקצה נתיב אחסון זה" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "הקצה בעלים זה" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "אפשר זכויות צפיה בקובץ למשתמשים אלו" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "אפשר זכויות צפיה בקובץ לקבוצות אלו" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "אפשר זכויות שינוי הגדרות צפיה בקובץ למשתמשים אלו" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "אפשר זכויות שינוי הגדרות צפיה בקובץ לקבוצות אלו" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "הקצה שדות מותאמים אישית אלו " -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "ערכי שדה מותאמים אישית" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "ערכים אופציונליים להקצאה לשדות המותאמים אישית" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "הסר את התגים האלה" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "הסרת כל התגיות" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "הסר סוגי מסמכים" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "הסר את כל סוגי מסמכים" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "הסר מכותבים" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "הסר את כל המכותבים" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "הסר נתיבי אחסון אלה" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "הסר את כל נתיבי האכסון" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "הסר את הבעלים האלה" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "הסרת כל הבעלים" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "הסר זכויות צפיה בקובץ למשתמשים אלו" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "הסר זכויות צפיה בקובץ לקבוצות אלו" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "הסר זכויות שינוי הגדרות צפיה בקובץ למשתמשים אלו" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "הסר זכויות שינוי הגדרות שינוי בקובץ לקבוצות האלו" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "הסר את כל ההרשאות" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "הסר שדות מותאמים אישית אלה" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "הסר את כל השדות המותאמים אישית" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "אימייל" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "וובהוק [קריאה חוזרת]" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "סיסמאות" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "סיסמאות לנסות כאשר נסיר את הצפנת ה-PDF. הפרדה באמצעות פסיקים או שורה חדשה." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "פעולת זרימת עבודה" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "פעולות זרימות עבודה" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "גורמים מפעילים" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "פעולות" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "פעיל" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "זרימת עבודה" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "סוג ההפעלה של זרימת העבודה" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "תאריך הרצה" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "הרצת זרימת עבודה" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "הרצות זרימת עבודה" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "הרשאות אינן מספיקות." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "צבע לא חוקי." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "סוג קובץ %(type)s לא נתמך" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "שדה מותאם אישית id חייב להיות מספרי: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "שדה מותאם אישית עם מזהה %(id)s איננו קיים" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "שדות מותאמים אישית חייבים להיות רשימה של מספרים שלמים או אובייקט הממפה מזהים לערכים." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "חלק מהשדות המותאמים אישית אינם קיימים או שהוגדרו פעמיים." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "משתנה לא חוקי זוהה." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "מזהי מסמכים כפולים אינם מורשים." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "מסמכים לא נמצאו: %(ids)s" @@ -1912,40 +1933,40 @@ msgstr "פרוטוקול ה-URI ‏'{parts.scheme}' אינו מורשה. הפר msgid "Unable to parse URI {value}" msgstr "לא ניתן לפענח את ה URI ‏{value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "מזהה more_like_id אינו תקין" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "הגדרות בינה מלאכותית שגויות." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "יש לציין רק אחד מהבאים: text‏, title_search‏, query או more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "הרשאות לא מספיקות לשיתוף מסמך %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "החבילה (Bundle) כבר נמצאת בתהליך עיבוד." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "חבילת קישור השיתוף עדיין בהכנה. נא לנסות שוב מאוחר יותר." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "חבילת קישור השיתוף אינה זמינה." @@ -2161,223 +2182,231 @@ msgstr "מגדיר את מיפוי הברקוד" msgid "Enables splitting on tag barcodes" msgstr "מאפשר פיצול לפי ברקודים של תגיות" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "מאפשר תכונות בינה מלאכותית (AI)" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "מגדיר את מנוע ה-Embedding של מודל השפה (LLM) ברקע" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "מגדיר את מודל ה-Embedding של מודל השפה (LLM)" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "מגדיר את מנוע ה-LLM (LLM backend)" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "מגדיר את מודל ה-LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "מגדיר את מפתח ה-API עבור ה-LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "מגדיר את נקודת הקצה (Endpoint) של ה-LLM, אופציונלי" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "הגדרות יישום paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "אנגלית (ארה״ב)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "ערבית" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "אפריקאנס" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "בלרוסית" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "בולגרית" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "קטלאנית" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "צ'כית" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "דנית" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "גרמנית" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "יוונית" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "אנגלית (בריטניה)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "ספרדית" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "פרסית" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "פינית" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "צרפתית" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "הונגרית" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "אינדונזית" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "איטלקית" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "יפנית" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "קוריאנית" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "לוקסמבורגית" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "נורווגית" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "הולנדית" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "פולנית" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "פורטוגלית ברזילאית" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "פורטוגלית" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "רומנית" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "רוסית" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "סלובקית" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "סלובנית" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "סרבית" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "שוודית" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "טורקית" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "אוקראינית" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "ווייטנאמית" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "סינית מפושטת" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "סינית מסורתית" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "ניהול Paperless-ngx" diff --git a/src/locale/hi_IN/LC_MESSAGES/django.po b/src/locale/hi_IN/LC_MESSAGES/django.po index 28e731e10..5e0a3ea1d 100644 --- a/src/locale/hi_IN/LC_MESSAGES/django.po +++ b/src/locale/hi_IN/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Hindi\n" "Language: hi_IN\n" @@ -57,31 +57,31 @@ msgstr "अधिकतम नेस्टिंग डेप्थ पार msgid "Custom field not found" msgstr "कस्टम फ़ील्ड नहीं मिला" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "मालिक" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "कुछ भी नहीं" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "कोई भी शब्द" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "सभी शब्द" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "सटीक मिलान" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "नियमित् एक्सप्रेशन" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "अस्पष्ट शब्द" @@ -89,20 +89,20 @@ msgstr "अस्पष्ट शब्द" msgid "Automatic" msgstr "स्वचालित" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "नाम" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "मिलान" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "मिलान एल्गोरिथ्म" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "असंवेदनशील है" @@ -166,7 +166,7 @@ msgstr "स्टोरेज पाथ" msgid "title" msgstr "शीर्षक" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "कंटेंट" @@ -202,8 +202,8 @@ msgstr "पृष्ठ संख्या" msgid "The number of pages of the document." msgstr "दस्तावेज़ के पृष्ठों की संख्या।" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "बनाया था" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "दस्तावेज़" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "दस्तावेज़" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "अभिलेखागार" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "टैग्स" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "तालिका" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "छोटे कार्ड" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "बड़े कार्ड" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "शीर्षक" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "बनाया था" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "जोड़ा" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "संवाददाता" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "दस्तावेज़ के प्रकार" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "स्टोरेज पाथ" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "ध्यान दें" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "मालिक" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "साझा" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "पृष्ठों" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "क्षेत्र छाँटें" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "रिवर्स छाँटें" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "पृष्ठ आकार देखें" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "प्रदर्शन मोड देखें" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "दस्तावेज़ प्रदर्शन फ़ील्ड" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "सहेजा गया दृश्य" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "सहेजा गया दृश्य" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "शीर्षक में शामिल है" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "कंटेंट में शामिल है" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN है" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "कोरस्पोंडेंट है" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "डॉक्यूमेंट टाइप है" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "इनबॉक्स में है" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "टैग है" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "कोई भी टैग है" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "पहले बनाया गया" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "बाद में बनाया गया" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "निर्माण वर्ष है" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "निर्माण महीना है" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "निर्माण दिन है" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "पहले जोड़ा गया" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "बाद में जोड़ा गया" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "पहले संशोधित किया गया" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "बाद में संशोधित किया गया" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "टैग नहीं है" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "ASN नहीं है" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "टाइटल या कंटेंट में शामिल है" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "फुलटेक्स्ट क्वेरी" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "इसी प्रकार के और" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "में टैग है" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN इससे ज़्यादा है" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN इससे कम है" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "स्टोरेज पाथ है" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "में संवाददाता है" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "में संवाददाता नहीं है" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "में दस्तावेज़ का प्रकार है" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "में दस्तावेज़ प्रकार नहीं है" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "स्टोरेज पाथ है" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "में भंडारण पथ है" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "में भंडारण पथ है" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "में भंडारण पथ है" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "मालिक नहीं ह" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "मालिक इसमें नहीं है" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "कस्टम फ़ील्ड मान है" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "मेरे द्वारा साझा किया गया है" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "कस्टम फ़ील्ड मान है" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "कस्टम फ़ील्ड इसमें है" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "कस्टम फ़ील्ड इसमें नहीं है" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "कस्टम फ़ील्ड नहीं है" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "कस्टम फ़ील्ड क्वेरी" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "इस तक बनाया गया" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "इससे बनाया गया" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "इसमें जोड़ा गया" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "इससे जोड़ा गया" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "माइम प्रकार है" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "नियम प्रकार" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "मूल्य" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "फ़िल्टर नियम" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "फ़िल्टर नियम" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "फ़ाइल कंज्यूम करें" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "क्लासिफायर ट्रेन करें" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "इंडेक्स ऑप्टिमाइज़ करें" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "मेल फेच" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "शेड्यूल्ड" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "वेब UI" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "टास्क ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "कार्य प्रकार" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "परिणाम डेटा" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "एकनॉलेज्ड" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "दस्तावेज़ के लिए नोट" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "उपयोगकर्ता" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "नोट" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "नोट्स" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "मूल" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "समय सीमा समाप्ति" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "काउंटर" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "लिंक शेयर करें" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "साझा लिंक्स" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "स्ट्रिंग" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "यूआरएल" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "दिनांक" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "बूलियन" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "पूर्णांक" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "फ्लोट" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "मोनेटरी" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "डॉक्यूमेंट लिंक" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "चुनें" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "लॉन्ग टेक्स्ट" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "डेटा टाइप" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "एक्स्ट्रा डेटा" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "कस्टम फ़ील्ड के लिए एक्स्ट्रा डेटा, जैसे कि सिलेक्ट ऑप्शन्स" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "कस्टम फ़ील्ड" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "कस्टम फील्ड्स" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "कस्टम फ़ील्ड इंस्टेंस" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "कस्टम फ़ील्ड इंस्टेंसेस" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "कंजम्पशन शुरू हुआ" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "डॉक्यूमेंट जोड़ा गया" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "डॉक्यूमेंट अपडेट किया गया" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "फोल्डर कंज्यूम करें" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Api अपलोड" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "संशोधित" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "कस्टम फ़ील्ड" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "वर्कफ़्लो ट्रिगर टाइप" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "फ़िल्टर पाथ" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "केवल उन्हीं डॉक्यूमेंट्स को कंज्यूम करें जिनका पाथ इससे मैच करता हो, यदि स्पेसिफाइड है। वाइल्डकार्ड्स जैसे कि * इस्तेमाल किए जा सकते हैं। केस इनसेंसिटिव।" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "फ़िल्टर फ़ाइलनेम" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "केवल उन्हीं डॉक्यूमेंट्स को कंज्यूम करें जो पूरी तरह से इस फ़ाइलनेम से मैच करते हों, यदि स्पेसिफाइड है। वाइल्डकार्ड्स जैसे कि *.pdf या *invoice* इस्तेमाल किए जा सकते हैं। केस इनसेंसिटिव।" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "ईमेल" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "वेबहुक" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ऑर्डर" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "इस कोरस्पोंडेंट को असाइन करें" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "इस स्टोरेज पाथ को असाइन करें" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "इस ओनर को असाइन करें" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "इन यूज़र्स को व्यू परमिशन्स दें" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "इन ग्रुप्स को व्यू परमिशन्स दें" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "इन यूज़र्स को चेंज परमिशन्स दें" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "इन ग्रुप्स को चेंज परमिशन्स दें" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "ये कस्टम फ़ील्ड्स असाइन करें" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "कस्टम फ़ील्ड वैल्यूज़" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "कस्टम फ़ील्ड्स को असाइन करने के लिए ऑप्शनल वैल्यूज़।" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "इन टैग(्स) को हटाएँ" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "सभी टैग हटाएँ" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "इन डॉक्यूमेंट टाइप(्स) को हटाएँ" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "सभी डॉक्यूमेंट टाइप्स हटाएँ" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "इन कोरस्पोंडेंट(्स) को हटाएँ" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "सभी कोरस्पोंडेंट्स हटाएँ" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "इन स्टोरेज पाथ(्स) को हटाएँ" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "सभी स्टोरेज पाथ्स हटाएँ" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "इन ओनर(्स) को हटाएँ" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "सभी ओनर्स हटाएँ" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "इन यूज़र्स के लिए व्यू परमिशन्स हटाएँ" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "इन ग्रुप्स के लिए व्यू परमिशन्स हटाएँ" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "इन यूज़र्स के लिए चेंज परमिशन्स हटाएँ" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "इन ग्रुप्स के लिए चेंज परमिशन्स हटाएँ" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "सभी परमिशन्स हटाएँ" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "ये कस्टम फ़ील्ड्स हटाएँ" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "सभी कस्टम फ़ील्ड्स हटाएँ" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "ईमेल" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "वेबहुक" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "वर्कफ़्लो एक्शन" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "वर्कफ़्लो एक्शन्स" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "ट्रिगर्स" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "एक्शन्स" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "इनेबल्ड" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "वर्कफ़्लो" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "वर्कफ़्लो ट्रिगर टाइप" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "" diff --git a/src/locale/hr_HR/LC_MESSAGES/django.po b/src/locale/hr_HR/LC_MESSAGES/django.po index 43f74e31d..9060613d0 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Croatian\n" "Language: hr_HR\n" @@ -39,7 +39,7 @@ msgstr "Nevažeći logički operator {op!r}" #: documents/filters.py:527 msgid "Maximum number of query conditions exceeded." -msgstr "Premašen je maksimalan broj uvjeta upita." +msgstr "Previše uvjeta u upitu." #: documents/filters.py:591 msgid "{name!r} is not a valid custom field." @@ -57,31 +57,31 @@ msgstr "Premašena je najveća razina ugniježđivanja." msgid "Custom field not found" msgstr "Prilagođeno polje nije pronađeno" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "vlasnik" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Ništa" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Bilo koja riječ" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Sve riječi" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Točno podudaranje" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Uobičajeni izraz" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Nejasna riječ" @@ -89,30 +89,30 @@ msgstr "Nejasna riječ" msgid "Automatic" msgstr "Automatski" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "ime" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "podudarati" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritam podudaranja" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "ne razlikuje velika i mala slova" #: documents/models.py:99 documents/models.py:167 msgid "correspondent" -msgstr "dopisnik" +msgstr "dobavljač" #: documents/models.py:100 msgid "correspondents" -msgstr "dopisnici" +msgstr "dobavljači" #: documents/models.py:104 msgid "color" @@ -120,11 +120,11 @@ msgstr "boja" #: documents/models.py:109 msgid "is inbox tag" -msgstr "oznaka ulazne pošte (inbox)" +msgstr "oznaka ulazne pošte" #: documents/models.py:112 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)." +msgstr "Označava ovu oznaku kao oznaku ulazne pošte: Svi novopotrošeni dokumenti bit će označeni oznakama ulazne pošte." #: documents/models.py:118 msgid "tag" @@ -166,7 +166,7 @@ msgstr "putanje pohrane" msgid "title" msgstr "naslov" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "sadržaj" @@ -176,7 +176,7 @@ msgstr "Neobrađeni tekstualni podaci dokumenta. Ovo se polje koristi prvenstven #: documents/models.py:208 msgid "mime type" -msgstr "vrste mime" +msgstr "tip datoteke" #: documents/models.py:218 msgid "checksum" @@ -202,8 +202,8 @@ msgstr "broj stranica" msgid "The number of pages of the document." msgstr "Broj stranica dokumenta." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "stvoreno" @@ -267,1395 +267,1416 @@ msgstr "oznaka verzije" msgid "Optional short label for a document version." msgstr "Opcionalna kratka oznaka za verziju dokumenta." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumenti" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arhiva" -#: documents/models.py:553 -msgid "Bank" -msgstr "" - -#: documents/models.py:554 -msgid "Basket" -msgstr "" - -#: documents/models.py:555 -msgid "Bell" -msgstr "" - -#: documents/models.py:556 -msgid "Bookmark" -msgstr "" - -#: documents/models.py:557 -msgid "Boxes" -msgstr "" - -#: documents/models.py:558 -msgid "Briefcase" -msgstr "" - -#: documents/models.py:559 -msgid "Building" -msgstr "" - -#: documents/models.py:560 -msgid "Calculator" -msgstr "" - -#: documents/models.py:561 -msgid "Calendar" -msgstr "" - -#: documents/models.py:562 -msgid "Camera" -msgstr "" - #: documents/models.py:563 -msgid "Checklist" -msgstr "" +msgid "Bank" +msgstr "Banka" #: documents/models.py:564 -msgid "Cash" -msgstr "" +msgid "Basket" +msgstr "Košarica" #: documents/models.py:565 -msgid "Chat" -msgstr "" +msgid "Bell" +msgstr "Zvonce" #: documents/models.py:566 -msgid "Check" -msgstr "" +msgid "Bookmark" +msgstr "Oznaka" #: documents/models.py:567 -msgid "Clipboard" -msgstr "" +msgid "Boxes" +msgstr "Kutije" #: documents/models.py:568 -msgid "Clock" -msgstr "" +msgid "Briefcase" +msgstr "Mapa s dokumentima" #: documents/models.py:569 -msgid "Credit card" -msgstr "" +msgid "Building" +msgstr "Zgrada" #: documents/models.py:570 -msgid "Download" -msgstr "" +msgid "Calculator" +msgstr "Kalkulator" #: documents/models.py:571 -msgid "Envelope" -msgstr "" +msgid "Calendar" +msgstr "Kalendar" #: documents/models.py:572 -msgid "Warning" -msgstr "" +msgid "Camera" +msgstr "Kamera" #: documents/models.py:573 -msgid "File" -msgstr "" +msgid "Checklist" +msgstr "Spisak" #: documents/models.py:574 -msgid "Checked file" -msgstr "" +msgid "Cash" +msgstr "Gotovina" #: documents/models.py:575 -msgid "Locked file" -msgstr "" +msgid "Chat" +msgstr "Razgovor" #: documents/models.py:576 -msgid "Medical file" -msgstr "" +msgid "Check" +msgstr "Provjeri" #: documents/models.py:577 -msgid "Person file" -msgstr "" +msgid "Clipboard" +msgstr "Međuspremnik" + +#: documents/models.py:578 +msgid "Clock" +msgstr "Sat" + +#: documents/models.py:579 +msgid "Credit card" +msgstr "Kreditna kartica" #: documents/models.py:580 -msgid "Spreadsheet" -msgstr "" +msgid "Download" +msgstr "Preuzmi" + +#: documents/models.py:581 +msgid "Envelope" +msgstr "Omotnica" #: documents/models.py:582 -msgid "Text file" -msgstr "" +msgid "Warning" +msgstr "Upozorenje" #: documents/models.py:583 -msgid "Files" -msgstr "" +msgid "File" +msgstr "Datoteka" #: documents/models.py:584 -msgid "Folder" -msgstr "" +msgid "Checked file" +msgstr "Provjerena datoteka" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:585 +msgid "Locked file" +msgstr "Zaključana datoteka" + +#: documents/models.py:586 +msgid "Medical file" +msgstr "Medicinski karton" + +#: documents/models.py:587 +msgid "Person file" +msgstr "Osobni karton" + +#: documents/models.py:590 +msgid "Spreadsheet" +msgstr "Proračunska tablica" + +#: documents/models.py:592 +msgid "Text file" +msgstr "Tekstualna datoteka" + +#: documents/models.py:593 +msgid "Files" +msgstr "Datoteke" + +#: documents/models.py:594 +msgid "Folder" +msgstr "Mapa" + +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 -msgid "Gear" -msgstr "" - -#: documents/models.py:587 -msgid "Globe" -msgstr "" - -#: documents/models.py:588 -msgid "Hash" -msgstr "" - -#: documents/models.py:589 -msgid "Heart" -msgstr "" - -#: documents/models.py:590 -msgid "House" -msgstr "" - -#: documents/models.py:591 -msgid "Inbox" -msgstr "" - -#: documents/models.py:592 -msgid "Journals" -msgstr "" - -#: documents/models.py:593 -msgid "Task list" -msgstr "" - -#: documents/models.py:594 -msgid "Newspaper" -msgstr "" - -#: documents/models.py:595 -msgid "Attachment" -msgstr "" - #: documents/models.py:596 -msgid "People" -msgstr "" +msgid "Gear" +msgstr "Oprema" #: documents/models.py:597 -msgid "Person" -msgstr "" +msgid "Globe" +msgstr "Globus" #: documents/models.py:598 -msgid "Printer" -msgstr "" +msgid "Hash" +msgstr "Hash" #: documents/models.py:599 -msgid "Receipt" -msgstr "" +msgid "Heart" +msgstr "Srce" #: documents/models.py:600 -msgid "Safe" -msgstr "" +msgid "House" +msgstr "Kuća" #: documents/models.py:601 -msgid "Search" -msgstr "" +msgid "Inbox" +msgstr "Ulazna pošta" #: documents/models.py:602 -msgid "Send" -msgstr "" +msgid "Journals" +msgstr "Dnevnici" #: documents/models.py:603 -msgid "Shop" -msgstr "" +msgid "Task list" +msgstr "Popis zadataka" #: documents/models.py:604 -msgid "Stack" -msgstr "" +msgid "Newspaper" +msgstr "Časopis" #: documents/models.py:605 -msgid "Stars" -msgstr "" +msgid "Attachment" +msgstr "Privitak" #: documents/models.py:606 -msgid "Tag" -msgstr "" +msgid "People" +msgstr "Osobe" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:607 +msgid "Person" +msgstr "Osoba" + +#: documents/models.py:608 +msgid "Printer" +msgstr "Pisač" + +#: documents/models.py:609 +msgid "Receipt" +msgstr "Račun" + +#: documents/models.py:610 +msgid "Safe" +msgstr "Sef" + +#: documents/models.py:611 +msgid "Search" +msgstr "Pretraži" + +#: documents/models.py:612 +msgid "Send" +msgstr "Pošalji" + +#: documents/models.py:613 +msgid "Shop" +msgstr "Trgovina" + +#: documents/models.py:614 +msgid "Stack" +msgstr "Složiti" + +#: documents/models.py:615 +msgid "Stars" +msgstr "Zvijezde" + +#: documents/models.py:616 +msgid "Tag" +msgstr "Oznake" + +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Oznake" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" -msgstr "" +msgstr "Telefon" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" -msgstr "" +msgstr "Kamion" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" -msgstr "" +msgstr "Bar kod" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" -msgstr "" +msgstr "Novčanik" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabela" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Male kartice" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Velike kartice" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Naslov" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" -msgstr "Stvoreno" +msgstr "Kreirano" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Dodano" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" -msgstr "Korespodenti" +msgstr "Dobavljači" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Vrste dokumenata" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Putanja pohrane" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Bilješka" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Vlasnik" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Dijeljeno" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Stranice" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" -msgstr "" +msgstr "ikona" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "sortiraj polje" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "obrnuto sortiranje" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Vidi veličinu stranice" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" -msgstr "Pogledaj načina prikaza" +msgstr "Način prikaza" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Polja za prikaz dokumenta" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "spremljen prikaz" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "spremljeni prikazi" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "naslov sadrži" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "sadržaj sadrži" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN je" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "dopisnik je" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "vrsta dokumenta je" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "nalazi se u ulaznoj pošti" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "ima oznaku" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "ima bilo kakvu oznaku" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "stvoreni prije" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "stvoreno poslije" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "godina stvaranja je" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "mjesec stvaranja je" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dan stvaranja je" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "dodano prije" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "dodano poslije" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modificirano prije" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modificirano poslije" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "ne posjeduje oznaku" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "ne posjeduje ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "naziv ili sadržaj sadrži" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "upit za cijeli tekst" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "više ovakvih" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "sadrži oznake" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN veći od" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN manji od" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "putanja za pohranu je" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "ima dopisnika u" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "nema dopisnika u" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "ima vrsta dokumenta u" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "nema vrsta dokumenta u" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "ima putanja pohrane u" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nema putanja pohrane u" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "vlasnik je" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "ima vlasnika u" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "nema vlasnika" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" -msgstr "" +msgstr "nema vlasnika u" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "ima prilagođenu vrijednost polja" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "dijelim ja" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "ima prilagođena polja" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "ima prilagođeno polje u" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "nema prilagođeno polje u" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "nema prilagođeno polje" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "upit prilagođenih polja" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "stvoren" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "stvoren iz" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "dodan" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" -msgstr "dodano iz" +msgstr "dodan iz" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "tip mime je" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "jednostavna pretraga naslova" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "jednostavna pretraga teksta" -#: documents/models.py:732 -msgid "has duplicates" -msgstr "" - #: documents/models.py:742 +msgid "has duplicates" +msgstr "postoje duplikati" + +#: documents/models.py:752 msgid "rule type" msgstr "vrsta pravila" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "vrijednost" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" -msgstr "pravilo filtera" +msgstr "pravilo filtriranja" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" -msgstr "pravila filtera" +msgstr "pravila filtriranja" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Na čekanju" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Pokrenuto" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Uspjeh" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Neuspjeh" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Opozvano" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Obradi dokument" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" -msgstr "Klasifikator strojnog učenja" +msgstr "Treniraj klasifikator" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Provjera integriteta" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimiziraj index" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Dohvati e-mailove" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM indeks" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Isprazni smeće" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Provjeri tijekove rada" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Skupno ažuriranje" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Ponovna obrada dokumenta" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Izradi link za dijeljenje" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Skupno brisanje" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" -msgstr "" +msgstr "Upotrijebi prijedloge umjetne inteligencije" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" -msgstr "Zakazano" +msgstr "Zakazan" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "WEB UI" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API prijenos" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Uvoz iz mape" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Uvoz iz e-pošte" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Sustav" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Ručno" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Zadatak ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" -msgstr "ID Celery zadatka" +msgstr "Celery zadatak ID" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Vrsta zadatka" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Vrsta posla koji se obavlja" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Izvor okidača" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Što je pokrenulo ovaj zadatak" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Status" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Završeno" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Trajanje (sekunde)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Proteklo vrijeme od početka do završetka" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Vrijeme čekanja (sekunde)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Vrijeme od kreiranja zadatka do preuzimanja" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Ulazni podaci" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Strukturirani ulazni parametri za zadatak" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Podaci o rezultatima" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Strukturirani podaci rezultata izvršavanja zadatka" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Potvrđeno" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Zadatak" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Zadaci" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Napomena za dokument" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "korisnik" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "bilješka" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "bilješka" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Izvornik" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "istječe" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" -msgstr "URL identifikator" +msgstr "jedinstveni tekstualni identifikator" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "dijeli vezu" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "dijeljene veze" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Obrada" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Spreman" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Neuspješno" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "veličina (bajti)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "posljednja greška" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "putanja datoteke" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "izrađeno u" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "paket linka za dijeljenje" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "paketi linkova za dijeljenje" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Paket linka za dijeljenje %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Karakterni niz" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Datum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Cijeli broj" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Plutajući" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetarni" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Poveznica dokumenta" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Odabir" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Dugi tekst" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "vrsta dokumenta" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dodatni podatci" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dodatni podaci za prilagođeno polje, kao što su opcije odabira" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "prilagođeno polje" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "prilagođena polja" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instanca prilagođenog polja" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instance prilagođenog polja" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Obrada dokumenta započeta" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument dodan" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument ažuriran" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Folder za obradu dokumenata" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API upload" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Modifikovano" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Prilagođeno polje" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Vrsta okidača za tijek rada" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filter putanje" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Obradi samo dokumente sa putanjom pohrane koja odgovara ovoj ako je navedena. Dopušteni su zamjenski znakovi navedeni kao *. Neosjetljivo na velika i mala slova." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtriraj naziv datoteke" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Obradite 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtrirajte dokumente iz ovog pravila pošte" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "ima ovu oznaku(e)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "ima sve ove oznake" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "nema ove oznake" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "ima ovu vrstu dokumenta" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "ima jedan od ovih vrsta dokumenata" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "nema ovu vrstu dokumenta" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "ima ovog dopisnika" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "nema ovog dopisnika" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "ima jednog od ovih dopisnika" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "ima ovu putanju pohrane" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "ima jednu od ovih putanja" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "nema ovu putanju pohrane" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "Filtrirajte upit prilagođenog polja" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON-kodirani izraz za filtriranje prilagođenog polja." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "pomak rasporeda u danima" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Broj dana za koji treba pomaknuti okidač rasporeda." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "raspored se ponavlja" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Da li se raspored treba ponavljati." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "odgoda ponavljanja rasporeda u danima" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Broj dana izmežu ponavljajućih okidača rasporeda." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "polje datuma rasporeda" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Polje za provjeru okidača rasporeda." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "datum zakazivanja prilagođeno polje" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "okidač tijeka rada" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "okidači tijeka rada" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "predmet e-pošte" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Predmet e-pošte može sadržavati placeholder izraze, pogledajte dokumentaciju." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "sadržaj e-pošte" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Sadržaj (poruka) e-pošte može uključivati placeholder izraze, pogledajte dokumentaciju." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "primatelj" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Adrese e-pošte odredišta, odvojene zarezom." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "uključi dokument u e-poštu" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook url" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Odredišni URL za obavijest." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "koristi parametre" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "pošalji kao JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "webhook parametri" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametri za slanje s URL-om web-dojavnika ako se tijelo ne koristi." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook body" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Tijelo za slanje s URL-om web-hooka ako se parametri ne koriste." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "zaglavlja webhooka" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Zaglavlja za slanje s URL-om web-hooka" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "uključi dokument u web-hook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Zadatak" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Uklanjanje" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Email" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Uklanjanje lozinke" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Premjesti u smeće" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" -msgstr "" +msgstr "Udaljeni OCR" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" -msgstr "" +msgstr "Upotrijebi prijedloge umjetne inteligencije" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" -msgstr "" +msgstr "Vrsta dokumenta" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" -msgstr "" +msgstr "Putanja pohrane" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" -msgstr "" +msgstr "Datum kreiranja" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Vrsta radnje Tijeka rada" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "redoslijed" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "dodijeli naslov" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Dodijelite naslov dokumentu, mora biti predložak Jinja2, pogledajte dokumentaciju." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "dodijeli oznaku" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "dodijeliti ovu vrstu dokumenta" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "dodijelite ovom dopisniku" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "dodijelite ovaj putanja pohrane" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "dodijelite ovog vlasnika" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "dodijeli ovlasti pregleda ovim korisnicima" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "dodijeli ovlasti pregleda ovim grupama" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "dodijelite ovlasti za promjenu ovim korisnicima" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "dodijelite ovlasti za promjenu ovim grupama" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "dodijeliti ova prilagođena polja" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "vrijednosti prilagođenih polja" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Neobavezne vrijednosti za dodjelu prilagođenim poljima." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "ukloni ovu oznaku(e)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "ukloni sve oznake" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "ukloni ove vrste dokumenata" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "uklonite sve vrste dokumenata" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "ukloni ovog dopisnika" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "ukloni sve dopisnike" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "ukloni ove putanje pohrane" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "ukloni sve putanje pohrane" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "ukloni ove vlasnike" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "ukloni sve vlasnike" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "ukloni ovlasti pregleda za ove korisnike" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "ukloni ovlasti pregleda za ove korisničke grupe" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "ukloni ovlasti izmjena za ove korisnike" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "ukloni ovlasti izmjena za ove korisničke grupe" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "ukloni sve ovlasti" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "ukloni ova prilagođena polja" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "ukloni sva prilagođena polja" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "email" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "lozinke" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." -msgstr "Lozinke za pokušaj uklanjanja zaštite PDF-a. Odvojite zarezima ili novim redovima." +msgstr "Lozinke za pokušaj uklanjanja PDF zaštite. Odvojite zarezima ili novim redovima." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" -msgstr "" +msgstr "Polja za prijedloge umjetne inteligencije" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." -msgstr "" +msgstr "Koji se AI prijedlozi primjenjuju na dokument." -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" -msgstr "" +msgstr "kreira nedostajuće objekte" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." -msgstr "" +msgstr "Automatski izradi nedostajuće oznake, pošiljatelje, vrste dokumenata i putanje." -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" -msgstr "" +msgstr "prepiši postojeće vrijednosti" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." -msgstr "" +msgstr "Primijeni predloženo i na već popunjena polja. Oznake se uvijek nadodaju, bez brisanja postojećih." -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "radnja tijeka rada" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "radnje tijeka rada" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "okidači" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "radnje" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "omogućeno" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "tijek rada" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "vrste okidača tijekova rada" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "datum pokretanja" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "pokretanje tijeka rada" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "tijek rada pokrenut" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Nedovoljne ovlasti." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Nevažeća boja." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Vrsta datoteke %(type)s nije podržana" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "ID prilagođenog polja mora biti cijeli broj: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Prilagođeno polje s ID-om %(id)s ne postoji" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Prilagođena polja moraju biti popis cijelih brojeva ili ID-ova objekata koji preslikavaju vrijednosti." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Neka prilagođena polja ne postoje ili su navedena dvaput." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Otkrivena je nevaljana vrsta datoteke." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Duplicirani identifikatori dokumenata nisu dopušteni." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dokumenti nisu pronađeni: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "URI shema '{parts.scheme}' nije dopuštena. Dopuštene sheme: {', '.join msgid "Unable to parse URI {value}" msgstr "Nije moguće raščlaniti URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Nevažeći more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Nevažeća AI konfiguracija." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." -msgstr "" +msgstr "Zahtjev prema AI pozadinskom sustavu je istekao." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." -msgstr "" +msgstr "AI pozadinski sustav je odbio zahtjev. Provjerite zapise (logs) za više detalja." -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Navedite samo jedno od: text, title_search, query ili more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Nedovoljne ovlasti za dijeljenje dokumenta %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paket se već obrađuje." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Paket linka za dijeljenje se još priprema. Pokušajte ponovo kasnije." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Paket linka za dijeljenje nije dostupan." @@ -2030,15 +2051,15 @@ msgstr "CMYK" #: paperless/models.py:82 msgid "Azure AI Document Intelligence" -msgstr "" +msgstr "Azure AI usluga za inteligentnu obradu dokumenata" #: paperless/models.py:90 msgid "All supported documents" -msgstr "" +msgstr "Podržani dokumenti" #: paperless/models.py:91 msgid "Only when a workflow enables it" -msgstr "" +msgstr "Samo uz odobrenje radnog tijeka" #: paperless/models.py:95 paperless/models.py:105 msgid "OpenAI-compatible" @@ -2160,223 +2181,231 @@ msgstr "Postavlja preslikavanje crtičnog koda oznake" msgid "Enables splitting on tag barcodes" msgstr "Omogućuje dijeljenje na barcodovima oznaka" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" -msgstr "" +msgstr "Postavlja udaljeni OCR sustav" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" -msgstr "" +msgstr "Postavlja API ključ udaljenog OCR sustava" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" -msgstr "" +msgstr "Udaljeni OCR endpoint" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" -msgstr "" +msgstr "Odabir dokumenata za udaljeni OCR" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Omogućuje AI funkcije" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Postavlja LLM embedding pozadinu" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Postavlja LLM embedding model" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "API ključ za LLM embeddings" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Postavlja LLM embedding krajnju točku, opcionalno" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Postavlja veličinu LLM embedding bloka" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Postavlja veličinu LLM konteksta" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Postavlja LLM pozadinu" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Postavlja LLM model" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Postavlja LLM API ključ" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Postavlja LLM krajnju točku, opcionalno" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Postavlja LLM izlazni jezik" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" -msgstr "" +msgstr "LLM timeout (u sekundama)" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "postavke paperless aplikacije" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Engleski (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arapski" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "afrički" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Bjeloruski" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "bugarski" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "katalonski" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Češki" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danski" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Njemački" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "grčki" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Engleski (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Španjolski" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "perzijski" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "finski" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francuski" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "mađarski" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Iidonezijski" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Talijanski" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "japanski" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "koreanski" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luksemburški" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "norveški" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Nizozemski" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Poljski" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugalski (Brazil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugalski" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumunjski" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Ruski" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "slovački" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovenski" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Srpski" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Švedski" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turski" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "ukrajinski" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "vijetnamski" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Pojednostavljeni kineski" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Kineski tradicionalni" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administracija" @@ -2690,7 +2719,7 @@ msgstr "uid" #: paperless_mail/models.py:342 msgid "uid validity" -msgstr "" +msgstr "ispravnost uid identifikatora" #: paperless_mail/models.py:350 msgid "subject" diff --git a/src/locale/hu_HU/LC_MESSAGES/django.po b/src/locale/hu_HU/LC_MESSAGES/django.po index 7fcbf90f6..a3c857292 100644 --- a/src/locale/hu_HU/LC_MESSAGES/django.po +++ b/src/locale/hu_HU/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Hungarian\n" "Language: hu_HU\n" @@ -57,31 +57,31 @@ msgstr "Maximum beágyazási mélység túllépve." msgid "Custom field not found" msgstr "Az egyéni mező nem található" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "tulajdonos" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Egyik sem" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Bármely szó" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Minden szó" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Pontos egyezés" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Reguláris kifejezés" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Fuzzy szó" @@ -89,20 +89,20 @@ msgstr "Fuzzy szó" msgid "Automatic" msgstr "Automatikus" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "név" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "egyezés" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "megfeleltető algoritmus" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "nagy- és kisbetűre érzéketlen" @@ -166,7 +166,7 @@ msgstr "tárhelyelérési útvonalak" msgid "title" msgstr "cím" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "tartalom" @@ -202,8 +202,8 @@ msgstr "oldalak száma" msgid "The number of pages of the document." msgstr "A dokumentum oldalainak száma." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "létrehozva" @@ -267,1395 +267,1416 @@ msgstr "példány elnevezés" msgid "Optional short label for a document version." msgstr "Opcionális rövid név dokumentumpéldányhoz." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokumentum" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumentumok" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archívum" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Szűrő" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Címkék" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Táblázat" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Kis kártyák" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Nagy kártyák" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Cím" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Létrehozva" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Hozzáadva" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Partner" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Dokumentum típus" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Tárhelyelérési útvonal" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Megjegyzés" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Tulajdonos" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Megosztva" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Oldalak" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "mező szerinti rendezés" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "fordított rendezés" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Oldalszám mutatása" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Megjelenítési mód mutatása" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Dokumentum megjelenített mezői" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "elmentett nézet" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "elmentett nézetek" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "a cím tartalmazza" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "a szöveg tartalmazza" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "Az ASN" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "partner" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "dokumentum típusa" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "a postaládában van" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "címke" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "bármilyen címkével rendelkezik" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "létrehozva korábban mint" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "létrehozva később mint" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "létrehozás éve" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "létrehozás hónapja" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "létrehozás napja" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "hozzáadva korábban mint" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "hozzáadva később mint" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "módosítva korábban mint" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "módosítva később mint" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "nem rendelkezik címkével" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "nem rendelkezik ASN-nel" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "a cím vagy a szöveg tartalmazza" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "teljes szöveges lekérdezés" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "több ilyet" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "címkékkel rendelkezik itt" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN nagyobb mint" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN kisebb mint" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "tárhelyelérési útvonal" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "van partner itt" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "nincs partner itt" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "rendelkezik dokumentumtípussal itt" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "nem rendelkezik dokumentumtípussal itt" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "van tárhelyelérési útvonala itt" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nincs tárhelyelérési útvonala itt" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "a tulajdonos" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "van tulajdonosa itt" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "nincs tulajdonosa" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "nincs tulajdonosa itt" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "van egyéni mező értéke" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "megosztva általam" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "rendelkezik egyéni mezővel" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "egyéni mezővel rendelkezik itt" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "nem rendelkezik egyéni mezővel itt" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "nem rendelkezik egyéni mezővel" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "egyéni mezős lekérdezés" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "létrehozva ide" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "létrehozva ebből" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "hozzáadva ide" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "hozzáadva ebből" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "mime típusa" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "egyszerű keresés címben" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "egyszerű keresés tartalomban" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "szabálytípus" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "érték" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "szűrési szabály" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "szűrési szabályok" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Függőben" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Indítva" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Sikeres" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Sikertelen" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Visszavonva" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Fájl beolvasása" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Osztályozó betanítása" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Logikai ellenőrzés" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Index optimalizálása" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Email lehívás" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM index" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Lomtár ürítése" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Munkamenetek ellenőrzése" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Tömeges frissítés" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Dokumentum újrafeldolgozás" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Megosztási link létrehozás" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Tömeges törlés" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Beütemezve" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Webes felhasználói felület" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API feltöltés" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Mappa feldolgozás" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "E-mail feldolgozás" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Rendszer" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Dokumentáció" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Feladat azonosítója" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "Celery feladat azonosító" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Feladat típusa" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "A végrehajtandó munka típusa" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Trigger forrás" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Mi indította el a feladatot" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Állapot" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Kész" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Időtartam (másodperc)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Eltelt idő az indulástól a befejezésig" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Várakozás hossza (másodperc)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "A feladat létrehozásától a worker indításáig eltelt idő" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Beviteli adat" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "A feladat strukturált beviteli paraméterei" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Eredmény adatok" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "A feladatvégzés strukturált eredmény adatai" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Visszaigazolva" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Feladat" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Feladatok" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Megjegyzés a dokumentumhoz" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "felhasználó" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "megjegyzés" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "megjegyzések" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Eredeti" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "lejárat" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "megosztási link" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "megosztási linkek" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Feldolgozás folyamatban" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Kész" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Sikertelen" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "méret (byte)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "utolsó hiba" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "fájlelérési útvonal" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "készült" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "linkcsomag megosztása" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "linkcsomagok megosztása" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "%(slug)s linkcsomag megosztása" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Karaktersor" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Dátum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Egész szám" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Valós szám" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetáris" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Dokumentum link" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Válassz" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Hosszú szöveg" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "adattípus" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "további adatok" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "További adatok az egyéni mezőhöz, például választható opciók" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "egyéni mező" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "egyéni mezők" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "egyéni mező példány" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "egyéni mező példányok" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Beolvasás megkezdve" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokumentum hozzáadva" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokumentum frissítve" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Beolvasási mappa" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Api feltöltés" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Változtatva" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Egyéni mező" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Munkafolyamat-indító típusa" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "elérési útvonal szűrő" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Ha ez meg van adva, csak olyan dokumentumokat olvas be, amelyeknek az elérési útvonala megegyezik ezzel. A *-gal megadott helyettesítő karakterek engedélyezettek. Nagy- és kisbetűkre nem érzékeny." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "fájlnév szűrő" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Ha meg van adva, csak olyan dokumentumokat dolgoz fel, amelyek teljes mértékben megfelelnek ennek a fájlnévnek. Az olyan helyettesítő karakterek, mint *.pdf vagy *számla* engedélyezettek. Nagy- és kisbetűkre nem érzékeny." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "dokumentumok szűrése ebből az email-szabályból" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "címke egyezik ezekkel" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "ezen címkék mindegyikét tartalmazza" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "nem tartalmazza ezeket a címkéket" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "dokumentumtípus egyezik ezzel" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "tartalmaz egy dokumentumtípust ezekből" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "nem rendelkezik ezekkel a dokumentumtípusokkal" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "partner egyezik ezzel" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "partner nem egyezik ezekkel" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "tartalmaz partnert ezekből" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "tárhelyelérési útvonal egyezik ezzel" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "tartalmaz tárhelyelérési útvonalat ezekből" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "nem rendelkezik tárhelyelérési útvonallal ezekből" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "szűrés egyéni mezős lekérdezésre" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON-kódolású egyéni mező lekérdezési kifejezés." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "ütemezéseltolás (napokban)" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Azon napok száma, amennyivel az aktiválást el kell tolni." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "ismétlődő ütemezés" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Az ütemezés ismétlődésének beállítása." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "ütemezés ismétlődésének eltolása (napokban)" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Az ismételt indítások között eltelt napok száma." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "ütemezési dátum mező" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "A mező bejelölése aktiválja az ütemezést." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "ütemezési dátum egyéni mező" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "munkafolyamat-indító feltétel" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "munkafolyamat-indító feltételek" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "e-mail tárgya" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Az e-mail tárgya, tartalmazhat dinamikus mezőket, lásd a dokumentációban." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "e-mail törzse" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Az e-mail törzse (az üzenet), tartalmazhat dinamikus mezőket, lásd a dokumentációban." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-mail címzettje" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "A címzett e-mail címek, vesszővel elválasztva." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "dokumentum csatolása az e-mailhez" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook url" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Az értesítés cél URL-je." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "paraméterek használata" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "JSON-ként küldje" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "webhook paraméterek" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "A webhook URL-ben küldendő paraméterek, ha szövegtörzs nincs használatban." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook szövegtörzs" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "A webhook URL-re küldendő szövegtörzs, ha nem paraméterek vannak használatban." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhook fejlécek" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "A webhook URL-re küldendő fejlécek." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "dokumentum csatolása a webhookhoz" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Hozzárendelés" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Eltávolítás" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Jelszó eltávolítása" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Áthelyezés a lomtárba" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Munkafolyamat művelettípus" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "megrendelés" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "cím hozzárendelése" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Dokumentumcím hozzárendelése, amelynek Jinja2 sablonnak kell lennie, lásd a dokumentációt." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "rendelje hozzá ezt a jelölőt" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "rendelje hozzá ezt a dokumentumtípust" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "rendelje hozzá ezt a partnert" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "rendelje hozzá ezt a tárhelyelérési útvonalat" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "rendelje hozzá ezt a tulajdonost" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "adjon megtekintési engedélyeket ezeknek a felhasználóknak" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "adjon megtekintési engedélyeket ezeknek a csoportoknak" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "adjon módosítási engedélyeket ezeknek a felhasználóknak" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "adjon módosítási engedélyeket ezeknek a csoportoknak" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "rendelje hozzá ezeket az egyedi mezőket" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "egyéni mező értékek" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Opcionális egyéni mezőkhöz rendelhető értékek." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "ezen címkék eltávolítása" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "minden címke eltávolítása" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "ezen dokumentumtípus(ok) eltávolítása" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "minden dokumentumtípus eltávolítása" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "ezen partner(ek) eltávolítása" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "minden partner eltávolítása" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "ezen tárhelyelérési útvonal(ak) eltávolítása" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "minden tárhelyelérési útvonal eltávolítása" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "ezen tulajdonos(ok) eltávolítása" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "minden tulajdonos eltávolítása" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "megtekintési engedély megvonása ezen felhasználóktól" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "megtekintési engedély megvonása ezen csoportoktól" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "módosítási engedély megvonása ezek felhasználóktól" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "módosítási engedély megvonása ezen csoportoktól" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "minden jogosultság eltávolítása" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "ezen egyéni mezők eltávolítása" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "minden egyéni mező eltávolítása" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-mail" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "jelszavak" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "A PDF-védelem eltávolításakor kipróbálandó jelszavak. Válassza el őket vesszővel vagy új sorral." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "munkafolyamat művelet" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "munkafolyamat műveletek" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "munkafolyamat-indítók" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "műveletek" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "engedélyezve" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "munkafolyamat" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "munkafolyamat-indító típusa" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "futtatás dátuma" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "munkafolyamat futtatás" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "munkafolyamat futtatások" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Nincs jogosúltsága." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Érvénytelen szín." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "%(type)s fájltípus nem támogatott" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Az egyéni mező azonosítójának egész számnak kell lennie: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "A(z) %(id)s azonosítójú egyéni mező nem létezik" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Az egyéni mezőknek egész számok listájának vagy azonosítókat értékekhez rendelő objektumnak kell lenniük." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Néhány egyéni mező nem létezik, vagy kétszer lett megadva." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Érvénytelen változó észlelve." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "A dokumentumazonosítók duplikálása nem megengedett." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dokumentumok nem találhatók: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "A '{parts.scheme}' séma nem engedélyezett. Engedélyezett sémák: {', msgid "Unable to parse URI {value}" msgstr "A {value} URI értelmezése sikertelen" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Érvénytelen more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Érvénytelen MI konfiguráció." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "A text, title_search, query, vagy more_like_id közül csak egyet adjon meg." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Nincs megfelelő jogosultság a %(id)s dokumentum megosztásához." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "A csomag feldolgozása már folyamatban van." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "A megosztási linkcsomag készítése folyamatban. Kérjük, próbálja meg később." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "A megosztási linkcsomag nem elérhető." @@ -2160,223 +2181,231 @@ msgstr "Beállítja a vonalkódok címkék keresését" msgid "Enables splitting on tag barcodes" msgstr "Engedélyezi a vonalkód-címke alapú darabolást" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Engedélyezi az MI funkciókat" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Beállítja az LLM-beágyazási backend-et" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Beállítja az LLM-beágyazási modellt" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Beállítja az LLM backend-et" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "LLM modell beállítása" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Beállítja az LLM API-kulcsot" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Beállítja az LLM végpontot, opcionális" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "paperless alkalmazás beállítások" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Angol (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arab" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikai" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Fehérorosz" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bolgár" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalán" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Cseh" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dán" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Német" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Görög" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Angol (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spanyol" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Perzsa" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finn" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francia" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Magyar" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonéz" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Olasz" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japán" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Koreai" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburgi" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norvég" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holland" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Lengyel" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugál (Brazília)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugál" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Román" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Orosz" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Szlovák" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Szlovén" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Szerb" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Svéd" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Török" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrán" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnámi" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Kínai egyszerűsített" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Tradicionális kínai" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx adminisztráció" diff --git a/src/locale/id_ID/LC_MESSAGES/django.po b/src/locale/id_ID/LC_MESSAGES/django.po index c997d7261..8b1fddf60 100644 --- a/src/locale/id_ID/LC_MESSAGES/django.po +++ b/src/locale/id_ID/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -57,31 +57,31 @@ msgstr "Kedalaman susunan maksimal terlampaui." msgid "Custom field not found" msgstr "Bidang khusus tidak ditemukan" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "pemilik" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Tidak ada" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Kata apa pun" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Semua kata" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Sama persis" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Ekspresi reguler" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Kata samar" @@ -89,20 +89,20 @@ msgstr "Kata samar" msgid "Automatic" msgstr "Otomatis" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nama" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "cocok" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "mencocokkan algoritma" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "tidak sensitif" @@ -166,7 +166,7 @@ msgstr "lokasi penyimpanan" msgid "title" msgstr "judul" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "konten" @@ -202,8 +202,8 @@ msgstr "jumlah halaman" msgid "The number of pages of the document." msgstr "Jumlah halaman dokumen." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "dibuat" @@ -267,1395 +267,1416 @@ msgstr "label versi" msgid "Optional short label for a document version." msgstr "Label singkat opsional untuk versi dokumen." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokumen" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumen" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arsip" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Saring" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Label" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabel" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "kartu kecil" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Kartu Besar" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Judul" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Dibuat" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Ditambahkan" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Koresponden" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Tipe Dokumen" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Lokasi Penyimpanan" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Catatan" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Pemilik" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Dibagikan" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Halaman" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "urutkan bidang" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "urutkan terbalik" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "lihat ukuran halaman" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Mode tampilan" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Area tampilan dokumen" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "tampilan disimpan" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "tampilan disimpan" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "judul memiliki" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "konten memiliki" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN adalah" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "koresponden adalah" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "jenis dokumen adalah" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "di dalam kotak masuk" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "memiliki label" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "memiliki label apapun" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "dibuat sebelum" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "dibuat setelah" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "dibuat pada tahun" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "dibuat pada bulan" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dibuat pada hari" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "ditambahkan sebelum" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "ditambahkan setelah" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "disunting sebelum" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "disunting setelah" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "tidak memiliki label" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "tidak memiliki ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "judul atau konten mengandung" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "kueri teks lengkap" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "lebih seperti ini" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "memiliki label dalam" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN lebih dari" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN kurang dari" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "lokasi penyimpanan" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "memiliki koresponden dalam" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "tidak memiliki koresponden dalam" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "memiliki jenis dokumen dalam" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "tidak memiliki jenis dokumen dalam" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "memiliki lokasi penyimpanan dalam" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "tidak memiliki lokasi penyimpanan dalam" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "pemilik adalah" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "memiliki pemilik dalam" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "tidak memiliki pemilik" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "tidak memiliki pemilik dalam" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "muat nilai bidang khusus" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "dibagikan oleh saya" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "memiliki area khusus" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "memiliki area khusus di" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "tidak memiliki area khusus di" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "tidak memiliki area khusus" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "kueri bidang khusus" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "dibuat ke" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "dibuat dari" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "ditambahkan ke" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "ditambahkan dari" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "tipe mime adalah" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "jenis peraturan" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "nilai" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "saring aturan" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "saring aturan" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Menunggu" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Sukses" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Gagal" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Konsumsi Berkas" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Latih Pengklasifikasi" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimalkan Indeks" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Pengambilan Surat" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Kosongkan Sampah" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Dijadwalkan" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Antarmuka Web" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID Tugas" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Tipe Tugas" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Data Hasil" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Diakui" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Catatan untuk dokumen" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "pengguna" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "catatan" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "catatan" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Orisinil" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "masa berlaku" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "topik konten" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "bagikan tautan" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "berbagi tautan" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Memproses" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Siap" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Gagal" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "ukuran (byte)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "kesalahan terakhir" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "jalur file" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "dibangun di" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "bundel tautan berbagi" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "bundel tautan berbagi" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Bagikan bundel tautan %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "String" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Tanggal" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Bilangan bulat" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Float" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Keuangan" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Tautan Dokumen" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Pilih" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Teks Panjang" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "jenis data" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "data ekstra" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Data tambahan untuk variasi kolom, seperti pilihan" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "kolom khusus" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "kolom khusus" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "kolom Khusus Instansi" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "kolom Khusus Instansi" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Memulai Penggunaan" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokumen ditambahkan" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokumen diperbarui" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Pengunaan Folder" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Unggah Menggunakan API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Dimodifikasi" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Kolom Khusus" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tipe Pemicu Alur Kerja" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "saring lokasi" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Hanya gunakan dokumen dengan jalur yang sesuai denganyang sudah ditentukan. Karakter pengganti seperti * diperbolehkan. Huruf besar/kecil tidak berpengaruh." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "saring nama berkas" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Hanya gunakan dokumen yang sepenuhnya cocok dengan nama berkas ini jika ditentukan. Wildcard seperti *.pdf atau *faktur* diperbolehkan. Tidak peka huruf besar kecil." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "saring dokumen dari peraturan surel" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "memiliki label(-label) ini" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "memiliki semua label ini" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "tidak memiliki semua label ini" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "memiliki jenis dokumen ini" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "memiliki salah satu jenis dokumen ini" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "tidak memiliki semua tipe dokumen ini" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "memiliki koresponden ini" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "tidak memiliki koresponden ini" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "memiliki salah satu koresponden ini" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "memiliki jalur penyimpanan ini" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "memiliki salah satu jalur penyimpanan ini" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "tidak memiliki jalur penyimpanan ini" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filter kueri kolom kustom" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Ekspresi kueri kolom kustom yang dienkode JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "hari penggeseran jadwal" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Jumlah hari untuk menggeser pemicu jadwal." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "jadwal berulang" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Jika jadwal harus berulang." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "jeda jadwal berulang dalam hari" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Jumlah hari antara pemicu jadwal berulang." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "bidang tanggal jadwal" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Bidang untuk memeriksa pemicu jadwal." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "bidang khusus tanggal jadwal" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "pemicu alur kerja" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "pemicu alur kerja" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "subjek email" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Subjek email, dapat berisi beberapa placeholder, lihat dokumentasi." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "isi surel" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Isi (pesan) email, dapat berisi beberapa placeholder, lihat dokumentasi." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "kirim surel ke" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Alamat email tujuan, pisahkan dengan koma." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "sertakan dokumen dalam email" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url webhook" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "URL tujuan untuk notifikasi." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "gunakan parameter" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "kirim sebagai JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parameter webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parameter yang dikirim bersama URL webhook jika body tidak digunakan." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "isi webhook" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Isi yang dikirim bersama URL webhook jika parameter tidak digunakan." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "header webhook" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Header yang dikirim bersama URL webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "sertakan dokumen dalam webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Tugas" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Penghapusan" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Surel" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Penghapusan kata sandi" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Pindahkan ke tempat sampah" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Jenis Aksi Alur Kerja" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "urut" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "tetapkan judul" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Tetapkan judul dokumen, harus berupa templat Jinja2, lihat dokumentasi." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "tetapkan label ini" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "tetapkan jenis dokumen ini" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "tetapkan koresponden ini" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "tetapkan lokasi penyimpanan ini" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "tetapkan pemilik ini" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "memberikan izin melihat kepada pengguna ini" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "memberikan izin melihat kepada grup ini" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "memberikan izin perubahan kepada pengguna ini" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "memberikan izin perubahan kepada grup ini" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "tetapkan area khusus ini" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "nilai bidang khusus" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Nilai tambahan untuk diisi ke bidang khusus." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "Hapus tag ini" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "hapus semua label" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "Hapus jenis dokumen ini" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "Hapus semua tipe dokumen" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "hapus koresponden(-koresponden) ini" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "hapus semua koresponden" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "hapus lokasi(-lokasi) penyimpanan ini" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "hapus semua lokasi penyimpanan" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "hapus pemilik(-pemilik) ini" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "hapus semua pemilik" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "hapus izin melihat kepada pengguna-pengguna ini" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "hapus izin melihat kepada grup-grup ini" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "hapus izin mengubah kepada pengguna-pengguna ini" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "hapus izin mengubah kepada grup-grup ini" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "hapus semua izin" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "hapus kolom-kolom khusus ini" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "hapus semua kolom khusus" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "surel" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "kata sandi" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Kata sandi yang dapat dicoba saat menghapus perlindungan PDF. Pisahkan dengan koma atau baris baru." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "tindakan alur kerja" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "tindakan alur kerja" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "pemicu-pemicu" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "tindakan" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "diaktifkan" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "alur kerja" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "tipe pemicu alur kerja" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "tanggal dijalankan" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "jalankan alur kerja" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "daftar jalankan alur kerja" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Izin tidak mencukupi" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Warna tidak sesuai." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Jenis berkas %(type)s tidak didukung" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Id kolom kustom harus berupa bilangan bulat: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Kolom kustom dengan id %(id)s tidak ada" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Kolom kustom harus berupa daftar bilangan bulat atau objek yang memetakan id ke nilai." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Beberapa kolom kustom tidak ada atau ditentukan dua kali." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Variabel ilegal terdeteksi." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Penggunaan pengenal dokumen ganda tidak diperbolehkan." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dokumen tidak ditemukan: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "Skema URI '{parts.scheme}' tidak diizinkan. Skema yang diizinkan: {', '. msgid "Unable to parse URI {value}" msgstr "Gagal membaca URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Izin tidak mencukupi untuk berbagi dokumen %(id)s" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paket sedang diproses." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Bundel tautan berbagi masih dalam proses persiapan. Silakan coba lagi nanti." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Bundel tautan berbagi tidak tersedia." @@ -2160,223 +2181,231 @@ msgstr "Atur pemetaan barcode tag" msgid "Enables splitting on tag barcodes" msgstr "Memungkinkan pemisahan berdasarkan barcode tag" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Mengaktifkan fitur AI" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Mengatur backend penyematan LLM" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Mengatur model penyematan LLM" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Mengatur backend LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Menetapkan model LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Mengatur kunci API LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Mengatur titik akhir LLM, opsional" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "pengaturan aplikasi paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Inggris (AS)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arab" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Bahasa Afrika" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Belarusia" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bahasa Bulgaria" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalan" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Bahasa Ceko" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Denmark" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Jerman" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Yunani" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Inggris (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spanyol" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persia" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finlandia" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Prancis" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Hungaria" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonesia" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italia" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Bahasa Jepang" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Bahasa Korea" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luksemburg" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norwegia" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Belanda" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polandia" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugis (Brasil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugis" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumania" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Rusia" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovakia" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovenia" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbia" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Swedia" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turki" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukraina" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnam" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Mandarin Sederhana" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Tionghoa Tradisional" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administrasi Paperless-ngx" diff --git a/src/locale/it_IT/LC_MESSAGES/django.po b/src/locale/it_IT/LC_MESSAGES/django.po index f5b42c0a2..54c7fdcfe 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-20 00:58\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -57,31 +57,31 @@ msgstr "Profondità massima di nidificazione superata." msgid "Custom field not found" msgstr "Campo personalizzato non trovato" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "proprietario" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Niente" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Qualsiasi parola" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Tutte le parole" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Corrispondenza esatta" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Espressione regolare" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Parola fuzzy" @@ -89,20 +89,20 @@ msgstr "Parola fuzzy" msgid "Automatic" msgstr "Automatico" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nome" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "corrispondenza" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritmo di corrispondenza" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "non distingue maiuscole e minuscole" @@ -166,7 +166,7 @@ msgstr "percorsi di archiviazione" msgid "title" msgstr "titolo" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "contenuto" @@ -202,8 +202,8 @@ msgstr "numero di pagine" msgid "The number of pages of the document." msgstr "Il numero di pagine del documento." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "creato il" @@ -267,1395 +267,1416 @@ msgstr "etichetta della versione" msgid "Optional short label for a document version." msgstr "Etichetta breve facoltativa per una versione del documento." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "documento" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "documenti" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archivio" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Banca" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Carrello" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Campanella" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Segnalibro" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Caselle" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Valigetta" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Edificio" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "Calcolatrice" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Calendario" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Fotocamera" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Checklist" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Contanti" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Chat" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Controllo" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Appunti" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Orologio" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Carta di credito" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Download" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Busta" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Avviso" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "File" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "File controllato" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "File bloccato" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "File medico" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "File personale" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Foglio di calcolo" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "File di testo" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "File" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Cartella" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtro" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "Ingranaggio" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "Globo" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "Hash" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "Cuore" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "Casa" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "In arrivo" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "Riviste" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "Lista delle attività" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "Giornale" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "Allegato" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "Persone" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "Persona" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "Stampante" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "Ricevuta" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "Sicuro" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "Cerca" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "Invia" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "Negozio" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "Pila" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "Stelle" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "Tag" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Etichette" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "Telefono" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "Camion" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "Codice a barre" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "Portafoglio" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabella" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Schede piccole" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Carte grandi" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titolo" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Creato" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Aggiunto" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Corrispondente" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Tipo di documento" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Percorso di archiviazione" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Nota" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Proprietario" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Condiviso" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Pagine" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "icona" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "campo di ordinamento" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "ordine invertito" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Visualizza dimensione pagina" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Modalità di visualizzazione" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Campi di visualizzazione del documento" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "vista salvata" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "viste salvate" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "il titolo contiene" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "il contenuto contiene" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN è" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "la corrispondenza è" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "il tipo di documento è" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "è in arrivo" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "ha etichetta" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "ha qualsiasi etichetta" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "creato prima del" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "creato dopo il" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "l'anno di creazione è" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "il mese di creazione è" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "il giorno di creazione è" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "aggiunto prima del" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "aggiunto dopo il" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modificato prima del" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modificato dopo" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "non ha tag" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "non ha ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "il titolo o il contenuto contiene" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "query fulltext" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "altro come questo" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "ha tag in" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN maggiore di" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN minore di" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "il percorso di archiviazione è" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "ha corrispondente in" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "non ha corrispondente in" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "ha tipo di documento in" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "non ha tipo di documento in" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "ha percorso di archiviazione in" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "non ha percorso di archiviazione in" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "proprietario è" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "ha proprietario in" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "non ha proprietario" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "non ha proprietario in" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "ha un valore di campo personalizzato" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "è condiviso da me" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "ha campi personalizzati" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "ha un campo personalizzato in" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "non ha un campo personalizzato in" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "non ha un campo personalizzato" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "query campi personalizzati" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "creato per" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "creato da" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "aggiunto a" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "aggiunto da" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "il tipo MIME è" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "ricerca semplice per titolo" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "ricerca semplice di testo" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "ha duplicati" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "tipo di regola" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "valore" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "regola filtro" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "regole filtro" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "In sospeso" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Avviato" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Riuscito" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Errore" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Revocato" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Utilizza file" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Addestra classificatore" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Controllo di coerenza" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Ottimizzazione dell'indice" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Recupero posta" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "Indice LLM" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Svuota cestino" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Controlla i flussi di lavoro" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Aggiornamento in blocco" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Rielabora documento" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Crea link di condivisione" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Elimina in blocco" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "Applica Suggerimenti IA" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Programmato" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Interfaccia utente web" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "Caricamento API" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Utilizzo cartella" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Utilizzo email" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Sistema" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Manuale" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID Attività" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "ID attività Celery" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Tipo di attività" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Il tipo di lavoro che viene eseguito" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Origine trigger" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Cosa ha avviato questa attività" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Stato" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Completato" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Durata (secondi)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Tempo trascorso dall'inizio al completamento" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Tempo di attesa (secondi)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Tempo dalla creazione dell'attività all'accettazione da parte del lavoratore" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Dati di input" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Parametri di input strutturati per l'attività" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Dati Risultanti" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Dati dei risultati strutturati dall'esecuzione dell'attività" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Accettato" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Attività" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Attività" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Nota per il documento" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "utente" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "nota" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "note" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Originale" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "scadenza" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "condividi link" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "condividi links" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "In elaborazione" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Pronto" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Non riuscito" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "dimensione (byte)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "ultimo errore" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "percorso del file" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "creato il" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "condividi pacchetto di link" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "condividi pacchetti di link" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Condividi pacchetto di link %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Stringa" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Data" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Booleano" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Numero Intero" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Numero a virgola mobile" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetaria" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Link Documento" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Selezione" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Testo lungo" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "tipo di dato" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dati aggiuntivi" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dati aggiuntivi per il campo personalizzato, come le opzioni di selezione" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "campo personalizzato" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "campi personalizzati" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "istanza campo personalizzato" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "istanze campo personalizzato" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Elaborazione avviata" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Documento aggiunto" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Documento aggiornato" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Cartella di elaborazione" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Upload Api" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Modificato" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Campo personalizzato" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tipo di trigger del flusso di lavoro" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "percorso filtro" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Utilizzare solo documenti con un percorso che corrisponda a questo, se specificato. Sono consentiti i caratteri jolly specificati come *. Maiuscole e minuscole non vengono distinte." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtra nome file" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtra i documenti da questa regola di posta" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "ha questi tag" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "ha tutti questi tag" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "non ha questi tag" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "ha questo tipo di documento" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "ha uno di questi tipi di documento" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "non ha questi tipi di documento" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "ha questo corrispondente" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "non ha questi corrispondenti" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "ha uno di questi corrispondenti" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "ha questo percorso di archiviazione" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "ha uno di questi percorsi di archiviazione" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "non ha questi percorsi di archiviazione" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtra query campo personalizzato" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Espressione di query del campo personalizzato con codifica JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "giorni di scostamento della pianificazione" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Il numero di giorni di cui compensare il trigger della pianificazione." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "la pianificazione è ricorrente" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Se la pianificazione deve essere ricorrente." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "ritardo ricorrente della pianificazione in giorni" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Il numero di giorni tra i trigger di pianificazione ricorrenti." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "campo data pianificazione" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Il campo da controllare per un trigger di pianificazione." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "campo personalizzato data pianificazione" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "trigger del flusso di lavoro" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "trigger del flusso di lavoro" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "oggetto dell'e-mail" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "L'oggetto dell'e-mail può includere alcuni segnaposto, vedi la documentazione." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "corpo dell'e-mail" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Il corpo (messaggio) dell'e-mail può includere alcuni segnaposto, vedere la documentazione." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-mail a" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Gli indirizzi e-mail di destinazione, separati da virgola." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "includi documento nell'e-mail" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "URL webhook" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "L'URL di destinazione per la notifica." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "utilizza parametri" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "invia come JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parametri webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "I parametri da inviare con l'URL del webhook se il corpo non viene utilizzato." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "corpo del webhook" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Il corpo da inviare con l'URL del webhook se i parametri non vengono utilizzati." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "intestazioni webhook" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Le intestazioni da inviare con l'URL del webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "includi documento nel webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Assegnazione" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Rimozione" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Rimozione della password" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Sposta nel cestino" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "OCR Remoto" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "Applica suggerimenti IA" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "Tipo di documento" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "Percorso di archiviazione" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "Data di creazione" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Tipo di azione del flusso di lavoro" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "priorità" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "assegna titolo" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Assegna un titolo al documento, deve essere un modello Jinja2, vedi la documentazione." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "assegna questo tag" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "assegna questo tipo di documento" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "assegna questo corrispondente" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "assegna questo percorso di archiviazione" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "assegna questo proprietario" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "concedi autorizzazioni di visualizzazione a questi utenti" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "concedi autorizzazioni di visualizzazione a questi gruppi" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "concedi autorizzazioni di modifica a questi utenti" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "concedi autorizzazioni di modifica a questi gruppi" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "assegna questi campi personalizzati" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "valori dei campi personalizzati" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Valori facoltativi da assegnare ai campi personalizzati." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "rimuovi questi tag" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "rimuovi tutti i tag" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "rimuovi questi tipi di documento" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "rimuovi tutti i tipi di documento" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "rimuovi questi corrispondenti" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "rimuovi tutti i corrispondenti" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "rimuovi questi percorsi di archiviazione" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "rimuovi tutti i percorsi di archiviazione" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "rimuovi questi proprietari" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "rimuovi tutti i proprietari" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "rimuovi le autorizzazioni di visualizzazione per questi utenti" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "rimuovi le autorizzazioni di visualizzazione per questi gruppi" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "rimuovi le autorizzazioni di modifica per questi utenti" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "rimuovi le autorizzazioni di modifica per questi gruppi" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "rimuovi tutte le autorizzazioni" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "rimuovi questi campi personalizzati" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "rimuovi tutti i campi personalizzati" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-mail" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "password" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Password da provare quando si rimuove la protezione PDF. Separare con virgole o nuove righe." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "Campi di suggerimento IA" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "Quale dei campi suggeriti dall'IA da applicare al documento." -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "crea gli oggetti mancanti" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "Crea tag suggeriti, corrispondenti, tipi di documenti e percorsi di archiviazione che non esistono già invece di saltarli." -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "sovrascrivi valori esistenti" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "Applica suggerimenti anche se il documento ha già un valore per quel campo. I tag sono sempre aggiunti, mai sostituiti." -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "azione del flusso di lavoro" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "azioni del flusso di lavoro" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "trigger" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "azioni" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "abilitato" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "flusso di lavoro" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "tipo di trigger del flusso di lavoro" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "data di esecuzione" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "esecuzione del flusso di lavoro" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "esecuzioni del flusso di lavoro" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Autorizzazioni insufficienti." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Colore non valido." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Il tipo di file %(type)s non è supportato" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "L'ID del campo personalizzato deve essere un numero intero: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Il campo personalizzato con ID %(id)s non esiste" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "I campi personalizzati devono essere un elenco di numeri interi o un oggetto che mappa gli ID ai valori." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Alcuni campi personalizzati non esistono o sono stati specificati due volte." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Variabile non valida rilevata." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Non sono consentiti identificatori di documenti duplicati." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Documenti non trovati: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "Lo schema URI '{parts.scheme}' non è consentito. Schemi consentiti: {', msgid "Unable to parse URI {value}" msgstr "Impossibile analizzare l'URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "more_like_id non valido" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Configurazione AI non valida." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "Richiesta di backend AI scaduta." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "Il backend IA ha rifiutato la richiesta. Controlla i log per i dettagli." -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Specificare solo uno tra text, title_search, query o more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Autorizzazioni insufficienti per condividere il documento %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Il pacchetto è già in fase di elaborazione." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Il pacchetto di link di condivisione è ancora in fase di preparazione. Riprova più tardi." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Il pacchetto di link di condivisione non è disponibile." @@ -2160,223 +2181,231 @@ msgstr "Imposta la mappatura del codice a barre del tag" msgid "Enables splitting on tag barcodes" msgstr "Abilita la suddivisione sui codici a barre dei tag" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "Imposta il motore OCR remoto" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "Imposta la chiave API OCR remota" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "Imposta l'endpoint OCR remoto" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "Determina quali documenti vengono inviati al motore OCR remoto" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Abilita le funzionalità di IA" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Imposta il backend di embedding LLM" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Imposta il modello di embedding LLM" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "Imposta la chiave API per gli embedding dell'LLM" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Imposta l'endpoint di incorporamento LLM, facoltativo" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Imposta la dimensione del blocco di incorporamento LLM" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Imposta la dimensione del contesto LLM" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Imposta il backend LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Imposta il modello LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Imposta la chiave API LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Imposta l'endpoint LLM, facoltativo" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Imposta la lingua di output LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Impostare il timeout dell’LLM in secondi" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "impostazioni dell'applicazione paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Inglese (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabo" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikaans" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Bielorusso" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgaro" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Catalano" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Ceco" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danese" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Tedesco" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Greco" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Inglese (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spagnolo" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persiano" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finlandese" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francese" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Ungherese" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonesiano" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italiano" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Giapponese" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Coreano" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Lussemburghese" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norvegese" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Olandese" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polacco" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portoghese (Brasile)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portoghese" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumeno" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russo" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovacco" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Sloveno" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbo" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Svedese" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turco" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ucraino" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamita" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Cinese semplificato" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Cinese tradizionale" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Amministrazione Paperless-ngx" diff --git a/src/locale/ja_JP/LC_MESSAGES/django.po b/src/locale/ja_JP/LC_MESSAGES/django.po index 731a80622..ebf856381 100644 --- a/src/locale/ja_JP/LC_MESSAGES/django.po +++ b/src/locale/ja_JP/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -57,31 +57,31 @@ msgstr "最大ネストの深さを超えました。" msgid "Custom field not found" msgstr "カスタムフィールドが見つかりません" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "所有者" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "なし" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "いずれかの単語" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "すべての単語" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "完全一致" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "正規表現" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "あいまいな単語" @@ -89,20 +89,20 @@ msgstr "あいまいな単語" msgid "Automatic" msgstr "自動" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "名称" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "マッチ" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "マッチングアルゴリズム" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "大文字・小文字の区別なし" @@ -166,7 +166,7 @@ msgstr "フォルダー" msgid "title" msgstr "タイトル" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "コンテンツ" @@ -202,8 +202,8 @@ msgstr "ページ数" msgid "The number of pages of the document." msgstr "ドキュメントのページ数。" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "作成日" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "ドキュメント" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "ドキュメント" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "アーカイブ" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "フィルター" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "タグ" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "テーブル" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "小カード" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "大カード" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "タイトル" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "作成済み" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "追加済" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "担当" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "ドキュメントタイプ" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "ストレージパス" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "メモ" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "所有者" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "共有済み" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "ページ" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "項目を並べ替え" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "項目を逆順で並べ替え" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "ページサイズの表示" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "表示モード" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "ドキュメントの表示フィールド" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "保存済みビュー" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "保存済みビュー" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "タイトルが次のものを含む" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "コンテンツが次のものを含む" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN が" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "担当が" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "ドキュメントタイプが" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "次のものが受信トレイにある" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "次のタグがある" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "次のいずれかのタグがある" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "次の日付以前に作成" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "次の日付以降に作成" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "作成年が" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "作成月が" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "作成日が" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "次の日付以前に追加" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "次の日付以降に追加" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "次の日付以前に変更" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "次の日付以降に変更" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "次のタグがない" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "次の ASN でない" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "タイトルまたはコンテンツに次のものを含む" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "全文検索" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "これと類似のもの" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "次のタグがある" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN が次の値より大きい" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN が次の値より小さい" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "フォルダーが" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "次のものが担当" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "次のものが担当でない" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "次のドキュメントタイプがある" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "次のドキュメントタイプがない" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "次のフォルダーがある" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "次のフォルダーがない" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "所有者が" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "所有者がいる" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "次のものが所有者" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "次のものが所有者でない" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "次のカスタム項目がある" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "自分が共有した" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "カスタムフィールド" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "カスタムフィールドがあります" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "カスタムフィールドがありません" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "カスタムフィールドがありません" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "カスタムフィールドのクエリ" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "作成" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "作成元" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "追加" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "追加元" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "MIMEタイプ" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "ルールタイプ" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "値" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "フィルタルール" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "フィルタールール" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "ファイルの利用" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "分類子の訓練" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "インデックスの最適化" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "メールの取得" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "スケジュール済" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "ウェブUI" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "タスク ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "タスクタイプ" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "結果データ" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "承認" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "ドキュメントのメモ" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "ユーザー" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "メモ" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "メモ" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "原本" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "有効期限" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "スラグ" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "共有リンク" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "共有リンク" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "文字列" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "日付" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "ブール値" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "整数" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "浮動小数点数" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "通貨 (ドル)" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "ドキュメントリンク" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "選択" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "データの種類" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "追加データ" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "カスタムフィールドの追加データ(選択オプションなど)" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "カスタム項目" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "カスタム項目" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "カスタム項目インスタンス" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "カスタム項目インスタンス" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "利用開始時" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "ドキュメントの追加時" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "ドキュメントの更新時" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "フォルダーの利用" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API アップロード" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "更新日" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "カスタムフィールド" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "ワークフローのトリガータイプ" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "パスをフィルター" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "指定されたパスを持つドキュメントのみを使用します。ワイルドカード (*) が使用できます。大文字・小文字を区別しません。" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "ファイル名をフィルター" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "指定されたファイル名に完全にマッチするドキュメントのみを使用します。 *.pdf や *請求書* などのワイルドカードが使用できます。大文字・小文字を区別しません。" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "このメールルールからのドキュメントをフィルター" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "タグ" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "ドキュメントタイプ" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "担当" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "スケジュールオフセット日" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "スケジュールトリガーをオフセットする日数。" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "スケジュールは繰り返します" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "スケジュールを繰り返しますか。" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "定期的な遅延を日数でスケジュールする" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "定期的なスケジュールがトリガーされる間隔の日数。" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "スケジュール日フィールド" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "スケジュールトリガーをチェックするフィールド。" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "スケジュール日カスタムフィールド" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "ワークフローのトリガー" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "ワークフローのトリガー" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "メールの件名" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "メールの件名にはプレースホルダーを含めることができます。ドキュメントを参照してください。" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "メール本文" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "メールの本文(メッセージ)にはプレースホルダを含めることができます。ドキュメントを参照してください。" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "メール先" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "宛先のメールアドレス(カンマ区切り)。" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "メールにドキュメントを含める" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook URL" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "通知の宛先URL。" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "パラメータを使用する" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "JSON形式で送信" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "webhookパラメータ" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "本文が使用されていない場合にWebhook URLとともに送信されるパラメータ。" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook本文" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "パラメータが使用されていない場合にWebhook URLとともに送信される本文。" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhookヘッダー" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Webhook URLとともに送信するヘッダー。" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "webhookにドキュメントを含める" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "割り当て" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "削除" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "メールアドレス" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "ワークフローのアクションタイプ" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "順序" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "タイトルの割り当て" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "タグの割り当て" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "ドキュメントタイプの割り当て" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "担当の割り当て" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "フォルダーの割り当て" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "所有者の割り当て" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "ユーザーへの表示権限の付与" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "グループへの表示権限の付与" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "ユーザーへの変更権限の付与" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "グループへの変更権限の付与" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "カスタム項目の割り当て" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "カスタムフィールド値" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "カスタムフィールドに割り当てる任意の値。" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "タグの削除" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "すべてのタグの削除" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "ドキュメントタイプの削除" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "すべてのドキュメントタイプの削除" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "担当の削除" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "すべての担当の削除" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "フォルダーの削除" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "すべてのフォルダーの削除" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "所有者の削除" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "すべての所有者の削除" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "ユーザの表示権限の削除" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "グループの表示権限の削除" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "ユーザの編集権限の削除" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "グループの編集権限の削除" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "すべての権限の削除" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "カスタム項目の削除" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "すべてのカスタム項目の削除" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "メール" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "ワークフローのアクション" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "ワークフローのアクション" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "トリガー" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "アクション" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "有効" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "ワークフロー" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "ワークフロートリガータイプ" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "日付実行" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "ワークフローの実行" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "ワークフローの実行" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "無効な色" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "ファイルタイプ %(type)s はサポートされていません" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "無効な変数を検出しました" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "Paperless アプリケーションの設定" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "英語 (米国)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "アラビア語" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "アフリカーンス語" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "ベラルーシ語" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "ブルガリア語" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "カタロニア語" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "チェコ語" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "デンマーク語" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "ドイツ語" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "ギリシャ語" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "英語 (英国)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "スペイン語" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "フィンランド語" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "フランス語" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "ハンガリー語" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "イタリア語" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "日本語" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "韓国語" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "ルクセンブルク語" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "ノルウェー語" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "オランダ語" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "ポーランド語" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "ポルトガル語 (ブラジル)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "ポルトガル語" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "ルーマニア語" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "ロシア語" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "スロバキア語" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "スロベニア語" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "セルビア語" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "スウェーデン語" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "トルコ語" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "ウクライナ語" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "中国語 (簡体字)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "中国語 (繁体)" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx の管理" diff --git a/src/locale/ko_KR/LC_MESSAGES/django.po b/src/locale/ko_KR/LC_MESSAGES/django.po index 36b40f217..9cf6da9e7 100644 --- a/src/locale/ko_KR/LC_MESSAGES/django.po +++ b/src/locale/ko_KR/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -57,31 +57,31 @@ msgstr "최대 중첩 깊이를 초과했습니다." msgid "Custom field not found" msgstr "사용자 지정 필드를 찾을 수 없음" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "소유자" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "없음" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "아무 단어" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "모든 단어" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "정확히 일치" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "정규식" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "불분명한 단어" @@ -89,20 +89,20 @@ msgstr "불분명한 단어" msgid "Automatic" msgstr "자동" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "이름" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "일치" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "일치 알고리즘" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "대소문자 구분 없음" @@ -166,7 +166,7 @@ msgstr "저장소 경로" msgid "title" msgstr "제목" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "내용" @@ -202,8 +202,8 @@ msgstr "페이지 수" msgid "The number of pages of the document." msgstr "문서의 페이지 수" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "생성" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "문서" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "문서" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "아카이브" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "필터" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "태그" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "테이블" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "소형 카드" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "큰 카드" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "제목" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "생성됨" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "추가됨" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "담당자" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "문서 타입" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "저장 경로" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "노트" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "소유자" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "공유됨" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "페이지" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "필드 정렬" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "역순으로 정렬" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "페이지 크기 보기" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "표시 모드 설정" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "문서 표시 필드" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "저장된 뷰" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "저장된 뷰" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "제목 포함" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "내용 포함" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN은" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "할당대상" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "문서 유형" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "문서함에 있음" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "태그가 있음" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "어떤 태그라도 있을 경우" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "이전에 생성됨" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "이후에 생성됨" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "생성 연도는" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "생성 월은" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "생성일은" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "이전에 추가됨" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "이후에 추가됨" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "이전에 수정됨" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "이후에 수정됨" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "태그가 없음" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "ASN이 없음" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "제목 또는 내용이 포함" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "전문 검색 쿼리" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "이와 유사한" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "태그가 포함된" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN이 초과됨" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN 미만" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "저장경로" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "할당 대상" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "해당 사항에 대한 대응이 없음" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "문서 유형" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "문서 유형이 없음" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "저장 경로가 있는" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "에 저장 경로가 없습니다." -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "소유자는" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "에 소유자가 있습니다." -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "소유자가 없음" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "소유자가 없음" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "사용자 정의 필드 값이 있음" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "내가 공유" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "사용자 정의 필드가 있습니다." -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "에 사용자 정의 필드가 있습니다." -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "에 사용자 정의 필드가 없습니다." -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "사용자 정의 필드가 없습니다." -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "사용자 정의 필드 쿼리" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "생성됨" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "생성됨" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "추가됨" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "추가됨" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "MIME 유형" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "룰 타잎" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "값" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "룰 필터" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "필터 룰" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "파일 사용" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "분류기 훈련" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "인덱스 최적화" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "메일 가져오기" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "예정됨" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "웹 UI" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "작업 ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "작업 유형" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "완료 결과" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "인정됨" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "문서에 대한 노트" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "사용자" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "노트" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "노트" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "원본" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "만료" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "슬러그" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "링크 공유" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "링크 공유" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "문자열" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "날짜" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "부울" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "정수" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "부동 소수점" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "통화" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "자료 링크" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "선택" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "긴 텍스트" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "데이터 타입" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "추가 데이터" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "선택 옵션과 같은 사용자 지정 필드에 대한 추가 데이터" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "사용자 정의 필드" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "사용자 정의 필드" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "사용자 정의 필드 인스턴스" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "사용자 정의 필드 인스턴스" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "소비 시작됨" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "문서 추가됨" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "문서 업데이트됨" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "소비된 폴더" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Api 업로드" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "수정됨" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "사용자정의 필드" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "워크플로 트리거 유형" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "필터 경로" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "지정된 경우 경로와 일치하는 문서만 사용합니다. * 와일드카드가 허용됩니다. 대소문자를 구분하지 않습니다." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "파일 이름 필터" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "지정된 경우 파일 이름과 완전히 일치하는 문서만 사용합니다. *.pdf와 같은 와일드카드 또는 invoice와 같은 것이 허용됩니다. 대소문자를 구분하지 않습니다." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "이 메일 규칙에서 문서 필터링" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "에는 다음 태그가 있습니다." -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "이 문서 유형이 있습니다." -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "이 담당자가 있습니다." -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "저장 경로" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "일정 조정 일수" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "일정 트리거를 조정할 일수" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "일정이 반복되는 경우" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "일정이 반복되어야 하는 경우." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "반복되는 지연을 일 단위로 예약" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "반복 일정 트리거 사이의 일 수입니다." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "일정 날짜 필드" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "일정 트리거를 확인할 필드입니다." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "일정 날짜 사용자 지정 필드" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "워크플로 트리거" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "워크플로 트리거" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "이메일 제목" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "이메일 제목에는 일부 자리 표시자를 포함할 수 있습니다. 문서를 참조하세요" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "이메일 본문" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "이메일 본문(message)에는 일부 자리 표시자를 포함할 수 있습니다. 문서를 참조하세요" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "이메일로" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "쉼표로 구분된 대상 이메일 주소입니다." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "이메일에 문서 포함" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "웹훅 Url" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "알림의 대상 URL입니다." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "매개변수 사용" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "JSON으로 보내기" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "웹훅 매개변수" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "본문을 사용하지 않는 경우 웹훅 URL과 함께 전송할 매개변수입니다." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "웹훅 본문" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "매개변수를 사용하지 않는 경우 웹훅 URL과 함께 전송할 본문입니다." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "웹훅 헤더" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "웹훅 URL과 함께 전송할 헤더입니다." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "웹훅에 문서 포함" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "과제" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "제거" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "전자우편" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "웹훅" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "워크플로 작업 유형" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "주문" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "제목 지정" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Jinja2 템플릿을 사용하여 문서 제목을 지정합니다. 자세한 내용은 설명서를 참조하세요." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "이 태그 할당" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "이 문서 유형 지정" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "이 담당자를 할당합니다." -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "이 저장 경로를 할당합니다." -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "이 소유자 지정" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "이러한 사용자에게 보기 권한 부여" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "다음 그룹에 보기 권한 부여" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "이러한 사용자에게 변경 권한 부여" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "이러한 그룹에 변경 권한 부여" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "다음 사용자 지정 필드를 할당합니다." -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "사용자 지정 필드 값" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "사용자 지정 필드에 할당할 선택적 값입니다." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "이 태그 제거" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "모든 태그 제거" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "이 저장 경로를 제거합니다." -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "모든 문서 유형 제거" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "이 담당자 삭제" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "모든 담당자 제거" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "이 저장 경로(들) 를 제거합니다." -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "모든 저장소 경로 제거" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "이러한 사용자에 대한 보기 권한 제거" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "이러한 그룹에 대한 보기 권한 제거" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "이러한 사용자에 대한 변경 권한 제거" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "이러한 그룹에 대한 변경 권한 제거" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "모든 권한 제거" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "다음 사용자 지정 필드를 제거합니다." -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "모든 사용자 지정 필드 제거" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "이메일" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "웹훅" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "워크플로 작업" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "워크플로 작업들" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "트리거" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "동작" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "활성화됨" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "워크플로우" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "워크플로우 트리거 유형" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "날짜 실행" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "워크플로 실행" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "워크플로우 실행" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "사용자 정의 ID 필드는 반드시 정수여야 합니다: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "%(id)s를 ID로 가지는 사용자 정의 필드가 존재하지 않습니다." -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "사용자 정의 필드는 정수 리스트이거나, ID를 값에 매핑하는 객체여야 합니다." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "존재하지 않거나 중복된 사용자 정의 필드가 있습니다." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "잘못된 변수가 감지되었습니다." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "URI 스킴 '{parts.scheme}'는 허용되지 않습니다. 허용된 스 msgid "Unable to parse URI {value}" msgstr "{value} URI를 파싱할 수 없음" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "태그 바코드 매핑 설정" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "페이퍼리스 애플리케이션 설정" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "영어 (미국)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "아랍어" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "아프리칸스어" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "벨라루스어" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "불가리어" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "카탈로니아어" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "체코어" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "덴마크어" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "독일어" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "그리스어" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "영어 (영국)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "스페인어" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "페르시아어" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "핀란드어" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "프랑스어" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "헝가리어" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "이탈리아어" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "일본어" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "한국어" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "룩셈부르크어" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "노르웨이어" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "네덜란드어" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "폴란드어" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "포르투갈어 (브라질)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "포르투갈어" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "루마니아어" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "러시아어" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "슬로바키아어" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "슬로베니아어" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "세르비아어" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "스웨덴어" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "튀르키예어" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "우크라이나어" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "베트남어" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "중국어 간체" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "중국어 번체" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx 관리" diff --git a/src/locale/lb_LU/LC_MESSAGES/django.po b/src/locale/lb_LU/LC_MESSAGES/django.po index 30489a44b..ea1fa055a 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Luxembourgish\n" "Language: lb_LU\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "Besëtzer" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Keng" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Iergendee Wuert" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "All d'Wierder" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Exakten Treffer" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regulären Ausdrock" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Ongenaut Wuert" @@ -89,20 +89,20 @@ msgstr "Ongenaut Wuert" msgid "Automatic" msgstr "Automatesch" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "Numm" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "Zouweisungsmuster" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "Zouweisungsalgorithmus" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "Grouss-/Klengschreiwung ignoréieren" @@ -166,7 +166,7 @@ msgstr "Späicherpfaden" msgid "title" msgstr "Titel" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "Inhalt" @@ -202,8 +202,8 @@ msgstr "saiten unnzuel" msgid "The number of pages of the document." msgstr "Weivill Saiten d' Dokument huet." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "erstallt" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "Dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "Dokumenter" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Etiketten" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabell" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Kleng Kaarten" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Grouss Kaarten" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titel" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Erstallt" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Dobäigesat" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korrespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Dokumententyp" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Späicherpfad" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Notiz" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Besëtzer" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Gedeelt" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "Zortéierfeld" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "ëmgedréint zortéieren" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "Gespäichert Usiicht" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "Gespäichert Usiichten" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "Titel enthält" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "Inhalt enthält" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN ass" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "Korrespondent ass" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "Dokumententyp ass" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "ass am Postagank" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "huet Etikett" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "huet iergendeng Etikett" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "erstallt virun" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "erstallt no" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "Erstellungsjoer ass" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "Erstellungsmount ass" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "Erstellungsdag ass" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "dobäigesat virun" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "dobäigesat no" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "verännert virun" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "verännert no" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "huet dës Etikett net" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "huet keng ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "Titel oder Inhalt enthalen" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "Volltextsich" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "ähnlech Dokumenter" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "huet Etiketten an" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN méi grouss ewéi" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN méi kleng ewéi" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "Späicherpfad ass" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "Besëtzer ass" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "Reegeltyp" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "Wäert" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "Filterreegel" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "Filterreegelen" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "Benotzer" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "Reiefolleg" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "dës Etikett zouweisen" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "Dësen Dokumententyp zouweisen" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "Dëse Korrespondent zouweisen" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Ongëlteg Faarf." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Fichierstyp %(type)s net ënnerstëtzt" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Ongëlteg Zeechen detektéiert." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Englesch (USA)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Belarusesch" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tschechesch" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dänesch" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Däitsch" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Englesch (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spuenesch" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Franséisch" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italienesch" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Lëtzebuergesch" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Hollännesch" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polnesch" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugisesch (Brasilien)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugisesch" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumänesch" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russesch" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slowenesch" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbesch" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Schwedesch" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Tierkesch" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chinesesch (Vereinfacht)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx-Administratioun" diff --git a/src/locale/lt_LT/LC_MESSAGES/django.po b/src/locale/lt_LT/LC_MESSAGES/django.po index bf10bf197..e1bcc4561 100644 --- a/src/locale/lt_LT/LC_MESSAGES/django.po +++ b/src/locale/lt_LT/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Lithuanian\n" "Language: lt_LT\n" @@ -57,31 +57,31 @@ msgstr "Viršytas maksimalus įdėjimo gylis." msgid "Custom field not found" msgstr "Pasirinktinis laukas nerastas" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "savininkas" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Niekas" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Bet koks žodis" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Visi žodžiai" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Tikslus atitikimas" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Paprastas paieška" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Neapibrėžtas žodis" @@ -89,20 +89,20 @@ msgstr "Neapibrėžtas žodis" msgid "Automatic" msgstr "Automatinis" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "vardas" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "atitikimas" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "atitikimo algoritmas" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "yra nejautrus" @@ -166,7 +166,7 @@ msgstr "saugyklos keliai" msgid "title" msgstr "pavadinimas" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "turinys" @@ -202,8 +202,8 @@ msgstr "puslapių skaičius" msgid "The number of pages of the document." msgstr "Dokumento puslapių skaičius." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "sukurtas" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokumentas" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumentai" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archyvas" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtruoti" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Žymos" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Lentelė" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Mažos kortelės" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Didelės kortelės" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Pavadinimas" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Sukurta" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Pridėta" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korespondentas" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Dokumento tipas" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Saugyklos kelias" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Pastaba" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Savininkas" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Bendrinama" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Puslapiai" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "rūšiuoti lauką" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "rūšiuoti atvirkščiai" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Peržiūros puslapio dydis" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Peržiūros rodymo režimas" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Dokumento rodymo laukai" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "išsaugota peržiūra" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "išsaugotos peržiūros" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "pavadinime yra" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "turinyje yra" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN yra" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korespondentas yra" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "dokumento tipas yra" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "yra gautuose" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "turi žymę" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "turi kokią nors žymę" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "sukurta prieš" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "sukurta po" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "sukūrimo metai yra" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "sukūrimo mėnuo yra" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "sukūrimo diena yra" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "pridėta prieš" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "pridėta po" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modifikuota prieš" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modifikuota po" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "neturi žymos" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "neturi ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "pavadinimas arba turinys turi" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "pilno teksto užklausa" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "daugiau tokių" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "turi žymes" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN daugiau nei" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN mažiau nei" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "talpyklos kelias yra" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "turi dokumentą" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "turi talpyklos kelią" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "neturi talpyklos kelio" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "savininkas yra" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "turi savininką" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "neturi savininko" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "neturi savininko" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "turi vartotojo apibrėžtus laukus" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "turi vartotojo apibrėžtą lauką" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "neturi vartotojo apibrėžto lauko" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "neturi vartotojo apibrėžto lauko" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "vartotojo apibrėžto lauko užklausa" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "sukurtas tam, kad" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "sukurtas iš" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "pridėta prie" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "pridėta iš" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "mime tipas yra" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "taisyklės tipas" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "reikšmė" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "užpildymo taisyklė" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "užpildymo taisyklės" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Laukiama" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Suvartoti failą" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Išmokinti klasifikatorių" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Indekso optimizavimas" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Web vartotojo sąsaja" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Užduoties ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Užduoties tipas" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Rezultatų duomenys" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Patvirtintas" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Pastaba dokumentui" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "naudotojas" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "pastaba" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "pastabos" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Orginalas" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "galiojimas" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "nuorodos pavadinimas" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "pasidalinti nuorodą" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "pasidalinti nuorodomis" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Apdorojama" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Paruošta" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Nepavyko" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "dydis (baitais)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "paskutinė klaida" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "failo kelias" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Pasirinkti" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Ilgas tekstas" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "datos tipas" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "papildoma data" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokumentas pridėtas" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokumentas atnaujintas" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Api užkrauti" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Taisytas" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtro kelias" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtro failo vardas" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "turi šias žymes" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "turi visas šias žymes" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "neturi šių žymių" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "turi šį dokumento tipą" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "neturi šių dokumentų tipų" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "turi šį talpyklos kelią" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "neturi šio talpyklos kelio/-ių" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON užkoduotas pritaikomo lauko užklausos išraiška." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "el. pašto turinys" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "siųsti kaip JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "webhook parametrai" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametrai siunčiami su webhook nuoroda, jei turinys nėra naudojamas." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook turinys" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Webhook turinys, jei parametrai nėra naudojami." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhook antraštės" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Priskyrimas" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Pašalinimas" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "El. paštas" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Slaptažodžio pašalinimas" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "priskirti pavadinimą" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Priskiriamas pavadinimas, privalo būti Jinja2 šablonas, peržiūrėkite dokumentaciją." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "priskirti šią žymę" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "priskirt šį dokumento tipą" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "priskirti šį korespondentą" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "priskirti šį saugyklos kelią" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "priskirti šį savininką" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "suteikti peržiūrėjimo leidimą šiems naudotojams" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "suteikti peržiūrėjimo leidimą šioms grupėms" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "suteikti redagavimo leidimą šiems naudotojams" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "sutiekti redagavimo leidimą šioms grupėms" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "priskirti šiuos nautojo sukurtus laukus" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "naudotojo sukurtų laukų reikšmės" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Pasirinktinės reikšmės, kurias reikia priskirti naudotojo sukurtiems laukams." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "pašalinti žym(ę/es)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "pašalinti visas žymes" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "pašalinti dokumento tip(ą/us)" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "pašalinti visus dokumento tipus" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "pašalinti korespondento tip(ą/us)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "pašalinti visus korespondentus" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "pašalinti saugyklos keli(ą/ius)" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "pašalinti visu saugyklos kelius" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "pašalinti savinink(ą/us)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "pašalinti visus savininkus" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "panaikinti peržiūrėjimo leidimą šiems naudotojams" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "pašalinti peržiūrėjimo leidimą šioms grupėms" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "pašalinti redagavimo leidima šiems naudotojams" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-paštas" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "URI schema '{parts.scheme}' nėra leistina. Galimos schemos: {', '.join( msgid "Unable to parse URI {value}" msgstr "Nepavyko apdoroti URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Nepakanka leidimų bendrinti dokumentą %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Rinkinys jau apdorojamas." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Bendrinimo nuorodų rinkinys vis dar ruošiamas. Bandykite dar kartą vėliau." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Dalinimos nuorodų rinkinys yra nepasiekiamas." @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Daniškai" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Vokiškai" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Graikų" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Anglų (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Ispanų" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persų" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Suomių" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Prancūzų" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Vengrų" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indoneziečių" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italų" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japonų" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Korėjiečių" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Liuksemburgiečių" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norvegų" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Olandų" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Lenkų" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugalų (Brazilija)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugalų" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumunų" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Rusų" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovakų" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovėnų" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbų" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Švedų" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turkų" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrainiečių" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamiečių" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Kinų supaprastinta" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Kinų tradicinė" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx valdymas" diff --git a/src/locale/lv_LV/LC_MESSAGES/django.po b/src/locale/lv_LV/LC_MESSAGES/django.po index f6e0da8e9..4f769013e 100644 --- a/src/locale/lv_LV/LC_MESSAGES/django.po +++ b/src/locale/lv_LV/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Latvian\n" "Language: lv_LV\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "īpašnieks" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Neviens" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Jebkādi vārdi" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Visi vārdi" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Precīza atbilstība" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regulāra izteiksme" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "\"izplūdis\" vārds" @@ -89,20 +89,20 @@ msgstr "\"izplūdis\" vārds" msgid "Automatic" msgstr "Automātiski" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nosaukums" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "atbilstība" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "atbilstības algoritms" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "nav reģistrjutīgs" @@ -166,7 +166,7 @@ msgstr "uzglabāšanas ceļi" msgid "title" msgstr "virsraksts" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "saturs" @@ -202,8 +202,8 @@ msgstr "" msgid "The number of pages of the document." msgstr "" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "izveidots" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokuments" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokuments" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arhīvs" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtrs" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "kārtošanas lauks" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "kārtot pretēji" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "saglabātais skats" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "saglabātais skati" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "virsraksts satur" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "saturā ir" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN ir" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korespondents ir" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "dokumenta veids ir" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "ir iesūtnē" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "ir birka" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "ir jekura birka" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "izveidots pirms" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "izveidots pēc" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "izveidotais gads ir" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "izveidotais mēnesis ir" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "izveidotā diena ir" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "pievienots pirms" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "pievienots pēc" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modificēts pirms" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modificēts pēc" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "nav birkas" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "nav ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "virsraksts vai saturs satur" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "pilnteksta vaicājums" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "vairāk šādi" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "ir birkas" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN lielāks par" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN mazāks par" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "uzglabāšanas ceļš ir" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "korespondents ir" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "nav korespondenta" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "dokumenta veids ir" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "nav dokumenta tipa" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "uzglabāšanas ceļš ir" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nav krātuves ceļa" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "īpašnieks ir" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "ir īpašnieks" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "nav īpašnieka" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "nav īpašnieka" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "ir pielāgota lauka vērtība" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "kopīgots ar mani" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "noteikumu tips" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "vērtība" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "filtra noteikums" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "filtra noteikumi" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Uzdevuma ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Atzīts" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "lietotājs" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "piezīme" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "piezīmes" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Oriģināls" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "kopīgot saiti" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "kopīgot saites" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Virkne" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Date" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Integer" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Float" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetary" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Dokumenta saite" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "datu tips" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "pielāgojams lauks" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "pielāgojami lauki" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokuments pievienots" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokuments atjaunināts" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "darbplūsmas trigeri" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Norīkojums" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Noņemt" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-pasts" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "piešķirt virsrakstu" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "piešķirt šo birku" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "piešķirt šo dokumenta tipu" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "piešķirt šo korespondentu" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "piešķirt šo krātuves ceļu" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "piešķirt šo īpašnieku" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "piešķirt skata atļaujas šiem lietotājiem" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "piešķirt skata atļaujas šīm grupām" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "piešķirt izmaiņu atļaujas šiem lietotājiem" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "dzēst birkas" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "dzēst visus īpašniekus" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "noņemt skata atļaujas šiem lietotājiem" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "noņemt skata atļaujas šīm grupām" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "noņemt visas atļaujas" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "darbības" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "ieslēgts" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Angļu (ASV)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arābu" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Āfrikāņu" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Baltkrievu" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgāru" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Kataloniešu" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Čehu" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dāņu" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Vācu" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grieķu" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Angļu (ASV)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spāņu" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Somu" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Franču" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Ungāru" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Itāļu" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japāņu" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luksemburgiešu" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norvēģu" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holandiešu" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Poļu" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugāļu (Brazīlija)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugāļu" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumāņu" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Krievu" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovāku" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovēņu" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Sērbu" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Zviedru" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turku" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukraiņu" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Ķīniešu (vienkāršota)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "" diff --git a/src/locale/mk_MK/LC_MESSAGES/django.po b/src/locale/mk_MK/LC_MESSAGES/django.po index 520f2a8bb..cfe8bf8ab 100644 --- a/src/locale/mk_MK/LC_MESSAGES/django.po +++ b/src/locale/mk_MK/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Macedonian\n" "Language: mk_MK\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "" @@ -89,20 +89,20 @@ msgstr "" msgid "Automatic" msgstr "" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "" @@ -166,7 +166,7 @@ msgstr "" msgid "title" msgstr "" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "" @@ -202,8 +202,8 @@ msgstr "" msgid "The number of pages of the document." msgstr "" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "" diff --git a/src/locale/ms_MY/LC_MESSAGES/django.po b/src/locale/ms_MY/LC_MESSAGES/django.po index d2d4db2e2..5b97c172c 100644 --- a/src/locale/ms_MY/LC_MESSAGES/django.po +++ b/src/locale/ms_MY/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Malay\n" "Language: ms_MY\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "pemilik" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Tiada" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Sebarang perkataan" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Semua perkataan" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Padanan tepat" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Ekspresi biasa" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Perkataan samar" @@ -89,20 +89,20 @@ msgstr "Perkataan samar" msgid "Automatic" msgstr "Automatik" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nama" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "padanan" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritma pemadanan" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "tidak sensitif" @@ -166,7 +166,7 @@ msgstr "" msgid "title" msgstr "tajuk" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "kandungan" @@ -202,8 +202,8 @@ msgstr "" msgid "The number of pages of the document." msgstr "" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "dicipta" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokumen" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumen" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arkib" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Tag" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Tajuk" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Dicipta" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Ditambah" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Pengirim" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Jenis Dokumen" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Nota" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Pemilik" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Dikongsi" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "tajuk mengandungi" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "ditambah sebelum" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "ditambah selepas" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "diubah sebelum" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "diubah selepas" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "tidak mempunyai tag" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "tidak mempunyai ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "tajuk atau kandungan mengandungi" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN lebih besar daripada" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN kurang daripada" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "mempunyai pengirim dalam" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "tidak mempunyai pengirim dalam" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "mempunyai jenis dokumen dalam" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "tidak mempunyai jenis dokumen dalam" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "tidak mempunyai pemilik" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "mempunyai nilai medan tersuai" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "dikongsi oleh saya" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "mempunyai medan tersuai" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "mempunyai medan tersuai dalam" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "mempunyai medan tersuai dalam" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "mempunyai medan tersuai" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "jenis syarat" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "nilai" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "syarat tapisan" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "syarat tapisan" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID Tugasan" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Diakui" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Nota untuk dokumen" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "pengguna" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "nota" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "nota" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Asal" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "tamat tempoh" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "kongsi pautan" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "kongsi pautan" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Tarikh" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Nombor bulat" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Pilih" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "jenis data" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "data tambahan" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "" diff --git a/src/locale/nl_NL/LC_MESSAGES/django.po b/src/locale/nl_NL/LC_MESSAGES/django.po index bfd2fd88d..3adc7c885 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -57,31 +57,31 @@ msgstr "Maximale nestdiepte overschreden." msgid "Custom field not found" msgstr "Aangepast veld niet gevonden" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "eigenaar" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Geen" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Elk woord" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Alle woorden" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Exacte overeenkomst" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Reguliere expressie" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Gelijkaardig woord" @@ -89,20 +89,20 @@ msgstr "Gelijkaardig woord" msgid "Automatic" msgstr "Automatisch" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "naam" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "Overeenkomst" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "Algoritme voor het bepalen van de overeenkomst" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "is niet hoofdlettergevoelig" @@ -166,7 +166,7 @@ msgstr "opslag paden" msgid "title" msgstr "titel" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "inhoud" @@ -202,8 +202,8 @@ msgstr "aantal pagina's" msgid "The number of pages of the document." msgstr "Het aantal pagina's van het document." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "aangemaakt" @@ -267,1395 +267,1416 @@ msgstr "versie label" msgid "Optional short label for a document version." msgstr "Optioneel kort label voor een documentversie." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "document" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "documenten" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archief" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" -msgstr "" +msgstr "Bank" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" -msgstr "" +msgstr "Bel" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" -msgstr "" +msgstr "Bladwijzer" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 -msgid "Building" -msgstr "" - -#: documents/models.py:560 -msgid "Calculator" -msgstr "" - -#: documents/models.py:561 -msgid "Calendar" -msgstr "" - -#: documents/models.py:562 -msgid "Camera" -msgstr "" - -#: documents/models.py:563 -msgid "Checklist" -msgstr "" - -#: documents/models.py:564 -msgid "Cash" -msgstr "" - -#: documents/models.py:565 -msgid "Chat" -msgstr "" - -#: documents/models.py:566 -msgid "Check" -msgstr "" - -#: documents/models.py:567 -msgid "Clipboard" -msgstr "" - -#: documents/models.py:568 -msgid "Clock" -msgstr "" - #: documents/models.py:569 -msgid "Credit card" -msgstr "" +msgid "Building" +msgstr "Gebouw" #: documents/models.py:570 -msgid "Download" -msgstr "" +msgid "Calculator" +msgstr "Rekenmachine" #: documents/models.py:571 -msgid "Envelope" -msgstr "" +msgid "Calendar" +msgstr "Kalender" #: documents/models.py:572 -msgid "Warning" -msgstr "" +msgid "Camera" +msgstr "Camera" #: documents/models.py:573 -msgid "File" -msgstr "" +msgid "Checklist" +msgstr "Controle lijst" #: documents/models.py:574 -msgid "Checked file" -msgstr "" +msgid "Cash" +msgstr "Contant" #: documents/models.py:575 -msgid "Locked file" -msgstr "" +msgid "Chat" +msgstr "Chat" #: documents/models.py:576 -msgid "Medical file" -msgstr "" +msgid "Check" +msgstr "Check" #: documents/models.py:577 -msgid "Person file" -msgstr "" +msgid "Clipboard" +msgstr "Klembord" + +#: documents/models.py:578 +msgid "Clock" +msgstr "Klok" + +#: documents/models.py:579 +msgid "Credit card" +msgstr "Creditcard" #: documents/models.py:580 -msgid "Spreadsheet" -msgstr "" +msgid "Download" +msgstr "Download" + +#: documents/models.py:581 +msgid "Envelope" +msgstr "Envelop" #: documents/models.py:582 -msgid "Text file" -msgstr "" +msgid "Warning" +msgstr "Waarschuwing" #: documents/models.py:583 -msgid "Files" -msgstr "" +msgid "File" +msgstr "Bestand" #: documents/models.py:584 -msgid "Folder" -msgstr "" +msgid "Checked file" +msgstr "Geselecteerd bestand" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:585 +msgid "Locked file" +msgstr "Vergrendeld bestand" + +#: documents/models.py:586 +msgid "Medical file" +msgstr "Medisch bestand" + +#: documents/models.py:587 +msgid "Person file" +msgstr "Persoon bestand" + +#: documents/models.py:590 +msgid "Spreadsheet" +msgstr "Werkblad" + +#: documents/models.py:592 +msgid "Text file" +msgstr "Tekstbestand" + +#: documents/models.py:593 +msgid "Files" +msgstr "Bestanden" + +#: documents/models.py:594 +msgid "Folder" +msgstr "Map" + +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" -msgstr "" +msgstr "Wereldbol" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" -msgstr "" +msgstr "Hash" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" -msgstr "" +msgstr "Hart" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" -msgstr "" +msgstr "Huis" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" -msgstr "" +msgstr "Postvak IN" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 -msgid "Newspaper" -msgstr "" - -#: documents/models.py:595 -msgid "Attachment" -msgstr "" - -#: documents/models.py:596 -msgid "People" -msgstr "" - -#: documents/models.py:597 -msgid "Person" -msgstr "" - -#: documents/models.py:598 -msgid "Printer" -msgstr "" - -#: documents/models.py:599 -msgid "Receipt" -msgstr "" - -#: documents/models.py:600 -msgid "Safe" -msgstr "" - -#: documents/models.py:601 -msgid "Search" -msgstr "" - -#: documents/models.py:602 -msgid "Send" -msgstr "" - -#: documents/models.py:603 -msgid "Shop" -msgstr "" - #: documents/models.py:604 +msgid "Newspaper" +msgstr "Krant" + +#: documents/models.py:605 +msgid "Attachment" +msgstr "Bijlage" + +#: documents/models.py:606 +msgid "People" +msgstr "Personen" + +#: documents/models.py:607 +msgid "Person" +msgstr "Persoon" + +#: documents/models.py:608 +msgid "Printer" +msgstr "Printer" + +#: documents/models.py:609 +msgid "Receipt" +msgstr "Betalingsbewijs" + +#: documents/models.py:610 +msgid "Safe" +msgstr "Veilig" + +#: documents/models.py:611 +msgid "Search" +msgstr "Zoeken" + +#: documents/models.py:612 +msgid "Send" +msgstr "Verzenden" + +#: documents/models.py:613 +msgid "Shop" +msgstr "Winkel" + +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" -msgstr "" +msgstr "Label" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Labels" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" -msgstr "" +msgstr "Telefoon" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" -msgstr "" +msgstr "Barcode" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" -msgstr "" +msgstr "Portemonnee" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabel" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Kleine kaarten" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Grote kaarten" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titel" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Aangemaakt" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Toegevoegd" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Correspondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Document type" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Opslaglocatie" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Notitie" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Eigenaar" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Gedeeld" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Pagina's" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" -msgstr "" +msgstr "icoon" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "sorteerveld" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "omgekeerd sorteren" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Bekijk pagina grootte" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Weergave modus weergeven" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Velden van documentweergave" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "opgeslagen weergave" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "opgeslagen weergaven" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "titel bevat" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "inhoud bevat" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN is" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "correspondent is" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "documenttype is" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "zit in \"Postvak in\"" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "heeft label" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "heeft één van de labels" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "aangemaakt voor" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "aangemaakt na" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "aangemaakt jaar is" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "aangemaakte maand is" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "aangemaakte dag is" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "toegevoegd voor" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "toegevoegd na" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "gewijzigd voor" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "gewijzigd na" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "heeft geen label" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "heeft geen ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "titel of inhoud bevat" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "inhoud doorzoeken" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "meer zoals dit" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "heeft labels in" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN groter dan" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN kleiner dan" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "opslagpad is" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "heeft corrrespondent in" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "heeft geen correspondent in" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "heeft documenttype in" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "heeft geen documentttype in" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "heeft opslagpad in" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "heeft geen opslagpad in" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "eigenaar is" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "heeft eigenaar in" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "heeft geen eigenaar" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "heeft geen eigenaar in" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "heeft waarde van aangepast veld" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "is gedeeld door mij" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "heeft aangepaste velden" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "heeft aangepaste velden in" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "heeft geen aangepaste velden in" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "heeft geen aangepaste velden" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "aangepaste velden zoekopdracht" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "gecreëerd tot" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "gemaakt vanuit" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "toegevoegd aan" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "toegevoegd uit" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "mimetype is" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "eenvoudige titel zoeken" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "eenvoudige tekst zoeken" -#: documents/models.py:732 -msgid "has duplicates" -msgstr "" - #: documents/models.py:742 +msgid "has duplicates" +msgstr "heeft dubbele" + +#: documents/models.py:752 msgid "rule type" msgstr "type regel" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "waarde" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "filterregel" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "filterregels" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "In behandeling" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Gestart" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Geslaagd" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Mislukt" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Ingetrokken" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Gebruik bestand" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Train Classifier" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Gezondheidscheck" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Index Optimaliseren" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "E-mails ophalen" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM Index" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Prullenbak legen" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Controleer Workflows" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Bulk bijwerken" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Document opnieuw verwerken" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Bouw Deel Link" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Bulk verwijderen" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Gepland" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Web interface" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API Upload" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Map inlezen" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Email Inlezen" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Systeem" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Handmatig" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Taak ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "Celery taak ID" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Taak type" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Het soort werk dat wordt uitgevoerd" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Trigger bron" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Wat begon deze taak" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Status" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Voltooid" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Duur (seconden)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Verstreken tijd van begin tot voltooiing" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Wachttijd (seconden)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" -msgstr "" +msgstr "Invoergegevens" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Resultaatgegevens" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Bevestigd" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" -msgstr "" +msgstr "Taak" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" -msgstr "" +msgstr "Taken" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Notitie bij het document" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "gebruiker" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "notitie" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notities" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Origineel" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "vervaldatum" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "gedeelde link" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "gedeelde links" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Bezig met verwerken" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" -msgstr "" +msgstr "Gereed" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" -msgstr "" +msgstr "Mislukt" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" -msgstr "" +msgstr "grootte (bytes)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" -msgstr "" +msgstr "Laatste foutmelding" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" -msgstr "" +msgstr "Bestandspad" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" -msgstr "" +msgstr "gebouwd op" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" -msgstr "" +msgstr "Deel link bundel" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" -msgstr "" +msgstr "deel link bundels" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Tekenreeks" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Datum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Geheel getal" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Zwevendekommagetal" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetair" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Documentkoppeling" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" -msgstr "" +msgstr "Selecteer" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Lange tekst" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "gegevenstype" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "extra data" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "aangepaste velden" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "aangepaste velden" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "aangepast veld instantie" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "aangepast veld instanties" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Verwerking gestart" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Document toegevoegd" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Document bijgewerkt" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Inname locatie" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API upload" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Gewijzigd" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Aangepast veld" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Workflow trigger type" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filter op opslaglocatie" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Alleen documenten verwerken die overeenkomen met dit pad. Wildcards met * zijn toegstaan. Niet hoofdlettergevoelig." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filter op bestandsnaam" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filter op documenten van deze e-mailregel" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "heeft deze label(s)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" -msgstr "" +msgstr "heeft al deze label(s)" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" -msgstr "" +msgstr "heeft deze tag(s) niet" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "heeft dit documenttype" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" -msgstr "" +msgstr "heeft een van deze documenttypes" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "heeft deze correspondent" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "heeft deze correspondent(en) niet" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "heeft één van deze correspondenten" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "heeft dit opslagpad" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "heeft een van deze opslagpaden" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "heeft geen deze opslagpad(en)" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "verschoven dagen plannen" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "workflow trigger" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "workflow triggers" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "email onderwerp" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "e-mail inhoud" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" -msgstr "" +msgstr "e-mails naar" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." -msgstr "" +msgstr "De bestemmings e-mailadressen, komma gescheiden" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "voeg document toe aan email" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" -msgstr "" +msgstr "webhook URL" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." -msgstr "" +msgstr "De bestemming URL voor de melding" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" -msgstr "" +msgstr "parameters gebruiken" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" -msgstr "" +msgstr "Verzenden als JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Toewijzing" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" -msgstr "" +msgstr "Verwijdering" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-mailadres" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" -msgstr "" +msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" -msgstr "" +msgstr "Wachtwoord verwijderen" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" -msgstr "" +msgstr "Externe OCR" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Actietype workflow" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "volgorde" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "titel toewijzen" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "wijs dit label toe" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "wijs dit documenttype toe" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "wijs deze correspondent toe" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "wijs dit opslagpad toe" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "wijs deze eigenaar toe" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "geef deze gebruikers weergaverechten" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "geef deze groepen weergaverechten" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "geef deze gebruikers bewerkingsrechten" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "geef deze groepen bewerkingsrechten" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "deze aangepaste velden toewijzen" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "waarden van aangepast veld" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Optionele waarden om in aangepaste velden te gebruiken." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "verwijder deze document type(n)" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "verwijder alle document typen" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "verwijder deze eigenaar(s)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "verwijder deze aangepaste velden" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "verwijder alle aangepaste velden" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "email" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" -msgstr "" +msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" -msgstr "" +msgstr "wachtwoorden" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "worflow actie" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "workflow acties" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "triggers" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "acties" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "ingeschakeld" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" -msgstr "" +msgstr "werkstroom" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Ongeldig kleur." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Bestandstype %(type)s niet ondersteund" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Aangepast veld met id %(id)s bestaat niet" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Aangepaste velden moeten een lijst van numerieke waarden zijn of een object mapping id naar waarden." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Sommige aangepaste velden bestaan niet of zijn dubbel opgegeven." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Ongeldige variabele ontdekt." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1798,7 +1819,7 @@ msgstr "" #: documents/templates/account/password_reset_from_key_done.html:14 msgid "log in" -msgstr "" +msgstr "inloggen" #: documents/templates/account/signup.html:5 msgid "Paperless-ngx sign up" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" -msgstr "" +msgstr "Stel de externe OCR engine in" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" -msgstr "" +msgstr "Zet de externe OCR API-sleutel" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "paperless applicatie instellingen" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Engels (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabisch" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikaans" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Wit-Russisch" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgaars" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Catalaans" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tsjechisch" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Deens" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Duits" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grieks" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Engels (Brits)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spaans" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Perzisch" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Fins" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Frans" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Hongaars" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italiaans" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japans" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Koreaans" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburgs" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Noors" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Nederlands" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Pools" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugees (Brazilië)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugees" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Roemeens" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russisch" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slowaaks" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Sloveens" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Servisch" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Zweeds" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turks" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Oekraïens" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamees" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chinees (vereenvoudigd)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administratie" diff --git a/src/locale/no_NO/LC_MESSAGES/django.po b/src/locale/no_NO/LC_MESSAGES/django.po index 1d904e9b9..84ca0781e 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -57,31 +57,31 @@ msgstr "For mange nivåer med nøsting." msgid "Custom field not found" msgstr "Egendefinert felt ble ikke funnet" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "eier" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Ingen" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Hvilket som helst ord" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Alle ord" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Eksakt treff" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Vanlige uttrykk" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Omtrentlig ord" @@ -89,20 +89,20 @@ msgstr "Omtrentlig ord" msgid "Automatic" msgstr "Automatisk" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "navn" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "treff" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "samsvarende algoritme" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "er ikke sensitiv" @@ -166,7 +166,7 @@ msgstr "lagringsstier" msgid "title" msgstr "tittel" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "innhold" @@ -202,8 +202,8 @@ msgstr "antall sider" msgid "The number of pages of the document." msgstr "Antall sider i dokumentet." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "opprettet" @@ -267,1395 +267,1416 @@ msgstr "versjonsmerke" msgid "Optional short label for a document version." msgstr "Valgfri kort merke for dokumentversjon." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumenter" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arkiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Bank" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Kurv" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Bjelle" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Bokmerke" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Bokser" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Koffert" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Bygning" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "Kalkulator" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Kalender" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Kamera" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Sjekkliste" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Kontanter" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Samtale" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Sjekk" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Utklippstavle" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Klokke" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Kredittkort" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Last ned" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Konvolutt" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Advarsel" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "Fil" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "Avkrysset fil" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "Låst fil" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "Medisinsk fil" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "Personlig fil" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Regneark" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Tekstfil" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "Filer" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Mappe" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtrer" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "Tannhjul" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "Klode" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "Hash" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "Hjerte" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "Hus" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "Innboks" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "Tidsskrifter" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "Oppgaveliste" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "Avis" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "Vedlegg" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "Mennesker" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "Person" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "Skriver" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "Kvittering" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "Sikker" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "Søk" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "Send" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "Butikk" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "Stabel" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "Stjerner" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "Merke" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Merker" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "Lastebil" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "Strekkode" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "Lommebok" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabell" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Små kort" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Store kort" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Tittel" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Opprettet" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Lagt til" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korrespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Dokumenttype" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Lagringssti" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Merknad" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Eier" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Delt" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN (NO)" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Sider" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "ikon" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "sorter felt" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "motsatt sortering" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Vis sidestørrelse" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Vis visningsmodus" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Utsnitt for dokumentvisning" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "lagret visning" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "lagrede visninger" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "tittelen inneholder" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "innholdet inneholder" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN er" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korrespondenten er" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "dokumenttype er" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "er i innboksen" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "har merke" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "har en merke" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "opprettet før" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "opprettet etter" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "opprettet år er" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "opprettet måned er" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "opprettet dag er" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "lagt til før" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "lagt til etter" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "endret før" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "endret etter" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "har ikke merke" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "har ikke ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "tittel eller innhold inneholder" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "fulltekstsøk" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "mer som dette" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "har merker i" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN større enn" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN mindre enn" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "lagringssti er" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "har korrespondent i" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "har ingen korrespondent i" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "har dokumenttype i" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "har ikke dokumenttype i" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "har lagringssti i" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "har ikke lagringssti i" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "eier er" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "har eier i" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "har ikke eier" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "har ikke eier i" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "har egendefinert feltverdi" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "er delt av meg" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "har egendefinerte felt" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "har egendefinert felt i" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "har ikke egendefinert felt i" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "har ikke egendefinert felt" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "egendefinerte felt spørring" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "opprettet til" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "opprettet fra" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "lagt til i" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "lagt til fra" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "mime-type er" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "enkelt tittelsøk" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "enkelt tekstsøk" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "regeltype" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "verdi" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "filterregel" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "filterregler" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Venter" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Startet" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Vellykket" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Feilet" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Tilbakekalt" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Bruk fil" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Train Classifier (NO)" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Kontroller holdbarhet" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Indeksoptimalisering" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Epost-henting" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM indeks" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Tøm papirkurven" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Sjekk arbeidsflyter" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Masseoppdatering" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Reprosessér dokumentet" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Bygg delingslenke" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Massesletting" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "Bruk KI-forslag" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Planlagt" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Web UI (NO)" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API opplasting" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Mappeforbruk" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "E-posthenting" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "System (NO)" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Håndbok" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Oppgave ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "Celery oppgave-ID" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Oppgavetype" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Hva slags arbeid som utføres" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Utløserkilde" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Hva initierte denne oppgaven" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Status (NO)" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Fullført" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Varighet (sekunder)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Brukt tid fra start til ferdigstillelse" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Ventetid (sekunder)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Tid fra opprettelse av arbeidsoppgaver til henting" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Input Data (NO)" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Structured input parameters for the task (NO)" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Resultat data" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Structured result data from task execution (NO)" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Bekreftet" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Oppgave" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Oppgaver" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Merknad til dokumentet" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "bruker" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "merknad" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "merknader" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Original (NO)" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "utløp" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug (NO)" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "del lenke" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "del lenker" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Behandler" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Klar" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Mislykket" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "størrelse (bytes)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "siste feil" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "filsti" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "bygget ved" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "del delingslenkepakke" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "del delingslenkepakker" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Share link bundle %(slug)s (NO)" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Tekst" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL (NO)" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Dato" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Bolsk" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Heltall" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Flyttall" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetær" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Dokumentlenke" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Velg" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Lang tekst" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "datatype" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "ekstra data" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Ekstra data for det tilpassede feltet, for eksempel velg alternativer" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "egendefinert felt" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "egendefinerte felt" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "egendefinert felt instans" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "egendefinert felt instanser" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Import startet" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument lagt til" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument oppdatert" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Importkatalog" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API-opplasting" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Endret" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Egendefinerte felt" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Arbeidsflyt utløser-type" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtrer sti" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Bare last inn dokumenter med en sti som samsvarer med dette hvis angitt. Jokertegn angitt som * er tillatt. Saker er usensitive." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtrer filnavn" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtrere dokumenter fra denne epostregelen" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "har disse merke(ene)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "har alle disse merkene" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "har ikke disse merkene" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "har denne dokumenttypen" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "har én av disse dokumenttypene" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "har ikke disse dokumenttypen(e)" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "har denne korrespondenten" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "har ikke disse korrespondenten(e)" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "har en av disse korrespondentene" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "har denne lagringsstien" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "har en av disse lagringsstiene" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "har ikke disse lagringsstien(e)" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filter custom field query (NO)" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON-kodet egendefinerte feltsøk uttrykk." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "schedule offset days (NO)" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "The number of days to offset the schedule trigger by. (NO)" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "schedule is recurring (NO)" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "If the schedule should be recurring. (NO)" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "schedule recurring delay in days (NO)" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "The number of days between recurring schedule triggers. (NO)" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "schedule date field (NO)" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "The field to check for a schedule trigger. (NO)" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "schedule date custom field (NO)" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "arbeidsflyt utløser" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "workflow triggers (NO)" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "e-post emne" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "The subject of the email, can include some placeholders, see documentation. (NO)" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "epost innhold" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "The body (message) of the email, can include some placeholders, see documentation. (NO)" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-post til" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "The destination email addresses, comma separated. (NO)" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "include document in email (NO)" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook url (NO)" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "The destination URL for the notification. (NO)" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "bruk parametere" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "send som JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "webhook parameters (NO)" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "The parameters to send with the webhook URL if body not used. (NO)" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook body (NO)" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "The body to send with the webhook URL if parameters not used. (NO)" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhook headers (NO)" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "The headers to send with the webhook URL. (NO)" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "include document in webhook (NO)" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Assignment (NO)" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Fjerning" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-post" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook (NO)" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Passordfjerning" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Flytt til papirkurven" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "Ekstern OCR" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "Bruk KI-forslag" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "Dokumenttype" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "Lagringssti" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "Opprettet dato" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Workflow Action Type (NO)" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ordre" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "tildel tittel" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Assign a document title, must be a Jinja2 template, see documentation. (NO)" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "tilordne dette merket" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "tilordne denne dokumenttypen" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "Tildel denne korrespondenten" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "tilordne denne lagringsstien" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "tilordne denne eieren" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "gir lesetilgang til disse brukerne" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "gi lesetilgang til disse brukerne" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "gir skrivetilgang til disse brukerne" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "gi skrivetilgang til disse gruppene" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "assign these custom fields (NO)" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "custom field values (NO)" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Optional values to assign to the custom fields. (NO)" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "remove these tag(s)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "fjern alle merker" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "remove these document type(s) (NO)" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "remove all document types (NO)" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "remove these correspondent(s) (NO)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "remove all correspondents (NO)" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "remove these storage path(s) (NO)" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "remove all storage paths (NO)" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "remove these owner(s) (NO)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "remove all owners (NO)" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "remove view permissions for these users (NO)" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "remove view permissions for these groups (NO)" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "remove change permissions for these users (NO)" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "remove change permissions for these groups (NO)" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "remove all permissions (NO)" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "remove these custom fields (NO)" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "remove all custom fields (NO)" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-post" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook (NO)" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "passwords (NO)" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Passwords to try when removing PDF protection. Separate with commas or new lines. (NO)" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "KI forslags felter" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "Hvilke av KI-foreslåtte felter som skal gjelde for dokumentet." -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "opprett manglende objekter" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "Opprett foreslåtte merker, korrespondenter, dokumenttyper og lagringsveier som ikke allerede eksisterer i stedet for å hoppe over dem." -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "overskrive eksisterende verdier" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "Bruk forslag selv om dokumentet allerede har en verdi for feltet. Merker blir alltid lagt til, aldri erstattet." -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "workflow action (NO)" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "workflow actions (NO)" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "utløsere" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "handlinger" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "aktivert" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "arbeidsflyt" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "workflow trigger type (NO)" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "date run (NO)" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "workflow run (NO)" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "workflow runs (NO)" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Utilstrekkelige tillatelser." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Ugyldig farge." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Filtype %(type)s støttes ikke" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Egendefinert felt-id må være et heltall: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Egendefinert felt med id %(id)s finnes ikke" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Custom fields must be a list of integers or an object mapping ids to values. (NO)" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Some custom fields don't exist or were specified twice. (NO)" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Ugyldig variabel oppdaget." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Duplicate document identifiers are not allowed. (NO)" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Documents not found: %(ids)s (NO)" @@ -1911,40 +1932,40 @@ msgstr "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join( msgid "Unable to parse URI {value}" msgstr "Unable to parse URI {value} (NO)" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Invalid more_like_id (NO)" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Invalid AI configuration. (NO)" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "Forespørselen til KI-tjenesten fikk tidsavbrudd." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Specify only one of text, title_search, query, or more_like_id. (NO)" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Insufficient permissions to share document %(id)s. (NO)" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Bundle is already being processed. (NO)" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "The share link bundle is still being prepared. Please try again later. (NO)" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "The share link bundle is unavailable. (NO)" @@ -2160,223 +2181,231 @@ msgstr "Angir tilordning av strekkode for merker" msgid "Enables splitting on tag barcodes" msgstr "Enables splitting on tag barcodes" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "Angir ekstern OCR motor" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "Angir ekstern OCR API-nøkkel" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "Angir ekstern OCR endepunkt" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "Angir hvilke dokumenter som skal sendes til ekstern OCR motor" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Aktiverer KI-funksjoner" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Sets the LLM embedding backend (NO)" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Angir modellen som brukes til LLM-innebygging" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Sets the LLM embedding endpoint, optional (NO)" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Sets the LLM embedding chunk size (NO)" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Sets the LLM context size (NO)" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Sets the LLM backend (NO)" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Sets the LLM model (NO)" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Sets the LLM API key (NO)" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Sets the LLM endpoint, optional (NO)" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Sets the LLM output language (NO)" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Setter tidsavbrudd for LLM i sekunder" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "paperless application settings (NO)" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Engelsk (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabisk" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikansk" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Hviterussisk" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgarian (NO)" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalansk" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tsjekkisk" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dansk" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Tysk" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Gresk" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Engelsk (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spansk" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persian (NO)" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finsk" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Fransk" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Hungarian (NO)" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonesian (NO)" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italiensk" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japanese (NO)" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Korean (NO)" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxembourgsk" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norsk" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Nederlandsk" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polsk" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugisisk (Brasil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugisisk" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumensk" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russisk" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovakisk" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovenian (NO)" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbisk" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Svensk" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Tyrkisk" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrainsk" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamese (NO)" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Kinesisk forenklet" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Chinese Traditional (NO)" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx-administrasjon" diff --git a/src/locale/pl_PL/LC_MESSAGES/django.po b/src/locale/pl_PL/LC_MESSAGES/django.po index 1c81f7e8e..da5befd1c 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -57,31 +57,31 @@ msgstr "Przekroczono maksymalną głębokość zagnieżdżenia." msgid "Custom field not found" msgstr "Nie znaleziono pola niestandardowego" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "właściciel" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Brak" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Dowolne słowo" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Wszystkie słowa" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Dokładne dopasowanie" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Wyrażenie regularne" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Niejasne pojęcie" @@ -89,20 +89,20 @@ msgstr "Niejasne pojęcie" msgid "Automatic" msgstr "Automatyczne" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nazwa" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "dopasowanie" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algorytm dopasowania" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "bez rozróżniania wielkości znaków" @@ -166,7 +166,7 @@ msgstr "Ścieżki zapisu" msgid "title" msgstr "tytuł" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "zawartość" @@ -202,8 +202,8 @@ msgstr "liczba stron" msgid "The number of pages of the document." msgstr "Ilość stron dokumentu." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "utworzono" @@ -267,1395 +267,1416 @@ msgstr "etykieta wersji" msgid "Optional short label for a document version." msgstr "Opcjonalna, krótka etykieta dla wersji dokumentu." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumenty" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archiwum" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtry" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Tagi" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabela" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Małe karty" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Duże karty" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Tytuł" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Utworzono" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Dodano" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Typ dokumentu" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Ścieżka zapisu" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Notatka" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Właściciel" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Współdzielony" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Strony" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "pole sortowania" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "sortuj malejąco" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Pokaż rozmiar strony" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Pokaż tryb wyświetlania" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Wyświetlane pola dokumentu" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "zapisany widok" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "zapisane widoki" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "tytuł zawiera" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "zawartość zawiera" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "numer archiwum jest" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korespondentem jest" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "typ dokumentu jest" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "jest w skrzynce odbiorczej" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "ma tag" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "ma dowolny tag" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "utworzony przed" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "utworzony po" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "rok utworzenia to" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "miesiąc utworzenia to" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dzień utworzenia to" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "dodany przed" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "dodany po" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "zmodyfikowany przed" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "zmodyfikowany po" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "nie ma tagu" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "nie ma numeru archiwum" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "tytuł lub zawartość zawiera" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "zapytanie pełnotekstowe" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "więcej podobnych" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "ma znaczniki w" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN większy niż" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN mniejszy niż" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "ścieżką zapisu jest" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "ma nadawcę w" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "nie ma nadawcy w" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "ma typ dokumentu w" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "nie ma typu dokumentu w" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "ma ścieżkę zapisu w" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nie ma ścieżki zapisu w" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "właściciel to" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "ma właściciela w" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "nie ma właściciela" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "nie ma właściciela w" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "ma wartość pola dodatkowego" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "jest udostępniony przeze mnie" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "posiada pola dodatkowe" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "ma dodatkowe pole w" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "nie ma dodatkowego pola w" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "nie ma pola dodatkowego" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "zapytanie o niestandardowe pola" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "utworzono w" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "utworzono z" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "dodano do" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "dodano z" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "typ MIME to" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "proste wyszukiwanie tytułów" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "proste wyszukiwanie tekstowe" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "typ reguły" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "wartość" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "reguła filtrowania" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "reguły filtrowania" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Oczekujące" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Przetwórz plik" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Wytrenuj klasyfikator" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optymalizuj indeks" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Pobieranie E-mail" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "Indeks LLM" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Opróżnij kosz" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Masowa aktualizacja" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Masowe usuwanie" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Zaplanowane" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Interfejs webowy" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "Przesyłanie przez API" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "System" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID zadania" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Typ zadania" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Status" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Zakończone" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Czas trwania (w sekundach)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Czas oczekiwania (w sekundach)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Dane wejściowe" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Dane wynikowe" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Potwierdzono" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Zadanie" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Zadania" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Notatka dla dokumentu" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "użytkownik" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "notatka" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notatki" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Oryginał" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "wygaśnięcie" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "adres URL" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "udostępnij link" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "udostępnij linki" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Przetwarzane" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Gotowe" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Niepowodzenie" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "rozmiar (bajty)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "ostatni błąd" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "ścieżka pliku" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "zbudowane w" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "udostępnij pakiet linków" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "udostępnij pakiety linków" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Udostępnij link do pakietu %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Ciąg znaków" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "Adres URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Data" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Wartość logiczna" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Liczba całkowita" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Liczba rzeczywista" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Format księgowy" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Link do dokumentu" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Lista" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Pełny tekst" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "typ danych" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dane dodatkowe" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dodatkowe dane dla pola niestandardowego, takie jak opcje wyboru" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "pole dodatkowe" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "pola dodatkowe" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "przypisane pole dodatkowe" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "przypisanych pól dodatkowych" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Rozpoczęto pobieranie" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dodano dokument" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument zaktualizowano" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Folder pobierania" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Przesyłanie przez API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Zmodyfikowano" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Pole dodatkowe" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Typ wyzwalacza dla procesu" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtruj ścieżkę" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Pobiera tylko dokumenty ze ścieżką, która pasuje do wyspecyfikowanej. Symbol * jest dozwolony. Wielkość liter bez znaczenia." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtruj po nazwie pliku" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtruj dokumenty z tej reguły pocztowej" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "posiada wskazane tag(i)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "Zawiera wszystkie podane tagi" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "Nie zawiera żadnego z podanych tagów" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "posiada wskazany typ dokumentu" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "posiada jeden z tych typów dokumentów" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "Nie posiada typów dokumentów" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "posiada wskazanego nadawcę" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "nie posiada nadawcy (-ów)" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "posiada jednego z tych nadawców" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "ma tę ścieżkę zapisu" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "posiada jedną ze ścieżek przechowywania" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "nie ma tej ścieżki/ścieżek zapisu" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtruj zapytanie pola niestandardowego" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Niestandardowe wyrażenie zapytania pola zakodowane w formacie JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "liczba dni przesunięcia harmonogramu" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Liczba dni, o którą należy przesunąć wyzwalacz harmonogramu." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "harmonogram jest cykliczny" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Czy harmonogram ma być cykliczny." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "opóźnienie cyklicznego harmonogramu w dniach" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Liczba dni między kolejnymi wyzwalaczami cyklicznego harmonogramu." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "pole daty harmonogramu" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Pole do sprawdzenia pod kątem wyzwalacza harmonogramu." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "wyzwalacz procesu" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "wyzwalacze procesu" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "temat wiadomości e-mail" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Temat wiadomości e-mail, może zawierać znaczniki zastępcze; zobacz dokumentację." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "treść e-maila" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Treść (wiadomość) e-maila, może zawierać znaczniki zastępcze; zobacz dokumentację." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "adresaci e-maila" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Docelowe adresy e-mail oddzielone przecinkami." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "dołącz dokument do e-maila" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "adres URL webhooka" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Docelowy adres URL powiadomienia." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "użyj parametrów" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "wyślij jako JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parametry webhooka" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametry wysyłane z adresem URL webhooka, gdy treść nie jest używana." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "treść webhooka" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Treść wysyłana z adresem URL webhooka, gdy parametry nie są używane." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "nagłówki webhooka" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Nagłówki wysyłane z adresem URL webhooka." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "dołącz dokument w webhooku" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Przypisanie" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Usuwanie" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Adres e-mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Usuwanie hasła" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Przenieś do kosza" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Typ akcji w procesie" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "kolejność" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "przypisz tytuł" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Przypisz tytuł dokumentu, musi być szablonem Jinja2, zobacz dokumentację." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "przypisz ten tag" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "przypisz ten typ dokumentu" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "przypisz tego korespondenta" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "przypisz tą ścieżkę zapisu" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "przypisz tego właściciela" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "nadaj tym użytkownikom uprawnienia do przeglądania" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "nadaj tym grupom uprawnienia do przeglądania" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "nadaj tym użytkownikom uprawnienia do zmiany" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "nadaj tym grupom uprawnienia do zmiany" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "przypisz te pola dodatkowe" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "wartości pól niestandardowych" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Opcjonalne wartości do przypisania polom niestandardowym." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "usuń ten tag/te tagi" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "usuń wszystkie tagi" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "usuń te typy dokumentów" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "usuń wszystkie typy dokumentów" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "usuń tych nadawców" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "usuń wszystkich nadawców" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "usuń te ścieżki zapisu" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "usuń wszystkie ścieżki zapisu" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "usuń tych właścicieli" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "usuń wszystkich właścicieli" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "usuń uprawnienia do wyświetlania dla tych użytkowników" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "usuń uprawnienia do wyświetlania dla tych grup" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "usuń uprawnienia do zmiany dla tych użytkowników" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "usuń uprawnienia do zmiany dla tych grup" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "usuń wszystkie uprawnienia" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "usuń te pola dodatkowe" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "usuń wszystkie pola dodatkowe" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "adres e-mail" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "hasła" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Hasła do wypróbowania podczas usuwania zabezpieczeń plików PDF. Oddziel je przecinkami lub nowymi wierszami." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "akcja procesu" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "akcje procesu" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "wyzwalacze" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "akcje" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "włączony" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "procesy" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "typ wyzwalacza przepływu pracy" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "data uruchomienia" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "uruchomienie przepływu pracy" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "uruchomienia przepływu pracy" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Niewystarczające uprawnienia." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Nieprawidłowy kolor." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Typ pliku %(type)s nie jest obsługiwany" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Identyfikator pola niestandardowego musi być liczbą całkowitą: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Pole niestandardowe z id %(id)s nie istnieje" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Pola niestandardowe muszą być listą liczb całkowitych lub obiektem mapującym identyfikatory na wartości." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Niektóre niestandardowe pola nie istnieją lub zostały określone dwukrotnie." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Wykryto nieprawidłową zmienną." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Nie dopuszcza się powielania identyfikatorów dokumentów." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Nie znaleziono dokumentów: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "Schemat URI '{parts.scheme}' jest niedozwolony. Dozwolone schematy: {', msgid "Unable to parse URI {value}" msgstr "Nie można przetworzyć URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Nieprawidłowy more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Brak uprawnień do udostępnienia dokumentu %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Pakiet jest już przetwarzany." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Pakiet do udostępnienia jest nadal przygotowywany. Spróbuj ponownie później." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Pakiet do udostępnienia jest niedostępny." @@ -2160,223 +2181,231 @@ msgstr "Ustawia mapowanie kodu kreskowego tagu" msgid "Enables splitting on tag barcodes" msgstr "Umożliwia dzielenie dokumentów na podstawie kodów kreskowych tagów" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Włącza funkcje oparte na sztucznej inteligencji" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Ustawia usługę do analizy treści dokumentów" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Ustawia model do analizy treści dokumentów" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Ustawia usługę sztucznej inteligencji" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Ustawia model sztucznej inteligencji" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Ustawia klucz dostępu do usługi AI" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Ustawia adres usługi AI (opcjonalnie)" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "paperless ustawienia aplikacji" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Angielski (USA)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "arabski" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrykanerski" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Białoruski" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bułgarski" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Kataloński" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Czeski" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Duński" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Niemiecki" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grecki" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Angielski (Wielka Brytania)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Hiszpański" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "perski" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Fiński" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francuski" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Węgierski" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonezyjski" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Włoski" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japoński" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Koreański" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luksemburski" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norweski" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holenderski" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polski" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugalski (Brazylia)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugalski" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumuński" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Rosyjski" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Słowacki" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Słoweński" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbski" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Szwedzki" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turecki" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukraiński" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Wietnamski" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chiński uproszczony" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "chiński tradycyjny" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administracja Paperless-ngx" diff --git a/src/locale/pt_BR/LC_MESSAGES/django.po b/src/locale/pt_BR/LC_MESSAGES/django.po index c8a6c28dd..b5bdfa9e3 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Portuguese, Brazilian\n" "Language: pt_BR\n" @@ -47,7 +47,7 @@ msgstr "{name!r} não é um campo personalizado válido." #: documents/filters.py:628 msgid "{data_type} does not support query expr {expr!r}." -msgstr "{data_type} Não suporta a consulta expr {expr!r}." +msgstr "{data_type} não suporta a consulta expr {expr!r}." #: documents/filters.py:747 documents/models.py:137 msgid "Maximum nesting depth exceeded." @@ -57,31 +57,31 @@ msgstr "Profundidade máxima do aninhamento excedida." msgid "Custom field not found" msgstr "Campo personalizado não encontrado" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "proprietário" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Nenhum" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Qualquer palavra" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Todas as palavras" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Correspondência exata" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Expressão regular" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Palavra difusa" @@ -89,20 +89,20 @@ msgstr "Palavra difusa" msgid "Automatic" msgstr "Automático" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nome" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "correspondência" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritmo de correspondência" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "diferencia maiúsculas de minúsculas" @@ -166,7 +166,7 @@ msgstr "caminhos de armazenamento" msgid "title" msgstr "título" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "conteúdo" @@ -202,8 +202,8 @@ msgstr "número de páginas" msgid "The number of pages of the document." msgstr "O número de páginas do documento." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "criado" @@ -267,1396 +267,1417 @@ msgstr "rótulo da versão" msgid "Optional short label for a document version." msgstr "Nome curto opcional para uma versão de documento." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "documento" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "documentos" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arquivo" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Banco" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Cesta" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Campainha" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Favorito" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Caixas" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Pasta" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Construindo" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "Calculadora" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Calendário" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Câmera" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Checklist" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Dinheiro" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Chat" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Verificar" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Área de Transferência" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Relógio" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Cartão de Crédito" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Download" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Envelope" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Aviso" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "Arquivo" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "Arquivo verificado" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "Arquivo bloqueado" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "Arquivo médico" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "Arquivo pessoal" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Planilha" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Arquivo de texto" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "Arquivos" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Pasta" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtro" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "Engrenagem" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "Globo" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "Hash" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "Coração" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "Casa" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "Caixa de entrada" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "Diários" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "Lista de tarefas" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "Jornal" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "Anexo" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "Pessoas" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "Pessoa" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "Impressora" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "Recibo" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "Seguro" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "Pesquisa" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "Enviar" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "Loja" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "Stack" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "Estrelas" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "Tag" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Etiquetas" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "Telefone" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "Caminhão" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "Código de barras" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "Carteira" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Mesa" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Cartões pequenos" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Cartões grandes" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Título" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Criado" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Adicionado" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Correspondente" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Tipo de documento" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Caminho de armazenamento" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Nota" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Proprietário" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Compartilhado" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Páginas" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "ícone" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "ordenar campo" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "odernar reverso" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Ver tamanho da página" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Ver modo de exibição" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Campos de exibição documento" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "visualização" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "visualizações" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "título contém" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "conteúdo contém" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "NSA é" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "correspondente é" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "tipo de documento é" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "é caixa de entrada" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "contém etiqueta" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "contém qualquer etiqueta" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "criado antes de" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "criado depois de" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "ano de criação é" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "mês de criação é" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dia de criação é" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "adicionado antes de" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "adicionado depois de" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modificado antes de" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modificado depois de" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "não tem etiqueta" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "não tem NSA" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "título ou conteúdo contém" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "pesquisa de texto completo" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "mais como este" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "contém etiquetas em" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "NSA maior que" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "NSA menor que" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "caminho de armazenamento é" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "tem correspondente em" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "não tem correspondente em" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "Possui categoria de documento em" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "Não possui categoria de documento em" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "Possui caminho de armazenamento em" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "Não possui caminho de armazenamento em" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "O proprietário é" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "Tem proprietário em" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "Não tem proprietário" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "Não tem proprietário em" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "Possui valor de campo personalizado " -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "Compartilhado por mim" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "Possui campos personalizados " -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "Possui campo personalizado dentro " -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "Não possui campo personalizado dentro " -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "Não possui campo personalizado " -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "Consulta de campos personalizados" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "Criado em" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "Criado por" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "Adicionado em" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "Adicionado por" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "mime type é" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "busca por título simples" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "busca de texto simples" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "possui duplicatas" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "tipo de regra" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "valor" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "regra de filtragem" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "regras de filtragem" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Pendente" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Iniciado" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Sucesso" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Falha" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Revogado" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Usar Arquivo" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Treinar Classificador" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Verificação de consistência" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Otimizar Índice" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Obter E-mail" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "Índice LLM" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Esvaziar a lixeira" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Verificar Workflows" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Atualização em Massa" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Reprocessar documento" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Construir Link de Compartilhamento" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Exclusão em massa" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "Aplicar sugestões de IA" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Agendado" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Web UI" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "Envio via API" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Importação por pasta" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Importação por Email" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Sistema" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Manual" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID da tarefa" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "ID da tarefa Celery" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Tipo de Tarefa" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "O tipo de trabalho que está sendo realizado" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Forma de acionamento" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "O que iniciou esta tarefa" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Status" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Concluído" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Duração (segundos)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Tempo decorrido do início à conclusão" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Tempo de espera (segundos)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Tempo entre a criação da tarefa e o início do processamento pelo worker" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Dados de entrada" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Parâmetros de entrada estruturados para a tarefa" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Dados de Resultado" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Dados estruturados do resultado da execução da tarefa" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Confirmado" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Tarefa" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Tarefas" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Nota para o documento" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "usuário" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "nota" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notas" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Original" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "validade" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "compartilhar link" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "compartilhar link" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Processando" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Pronto" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Falhou" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "Remoção de senha" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "último erro" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "local do arquivo" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "gerado em" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "pacote de compartilhamento" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "pacotes de compartilhamento" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Pacote de compartilhamento %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Texto" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Data" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Booleano" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Número inteiro" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Ponto flutuante" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Unidade monetária" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Link do documento" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Selecione" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Texto longo" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "tipo de dados" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "Dados extras" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dados extras para o campo personalizado, como opções de seleção" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "campo personalizado" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "campos personalizados" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instância de campo personalizado" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instâncias de campo personalizadas" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Consumo Iniciado" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Documento Adicionado" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Documento Atualizado" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Pasta de Consumo" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Envio por API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Modificado" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Campo personalizado" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tipo de gatilho de fluxo de trabalho" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtro de caminho" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Apenas utilize documentos que correspondem a esse endereço se especificado. Carácteres coringa usando * são permitidos. Sem diferenciação de maiúsculas e minúsculas." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "Filtro de nome de arquivo" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "Filtrar documentos desta regra de endereço eletrônico" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "Possui estas etiquetas" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "possui toda(s) esta(s) etiqueta(s)" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "não possui esta(s) etiqueta(s)" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "Possui este tipo de documento" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "tem um desses tipos de documento" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "não possui este(s) tipo(s) de documento" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "Possui este correspondente" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "não possui este(s) correspondente(s)" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "tem um destes correspondentes" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "possui este caminho de armazenamento" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "tem um destes caminhos de armazenamento" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "não possui este(s) caminho(s) de armazenamento" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "Filtrar consulta de campo personalizado" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Expressão de consulta de campo personalizado codificada em JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "agendar dias de deslocamento" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Número de dias para deslocar o gatilho do cronograma." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "agenda é recorrente" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Se o cronograma deve ser recorrente." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "agendar atraso recorrente em dias" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "O número de dias entre programas recorrentes." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "programar campo data" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "O campo para verificar se há um acionador agendado." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "programar campo data customizado" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "Gatilho do Fluxo de Trabalho" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "Gatilhos de Fluxo de Trabalho" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "assunto do email" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Atribuir um título de documento, pode incluir alguns espaços reservados, consulta a documentação." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "corpo do e-mail" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "O corpo do email, pode incluir alguns espaços reservados, consulta a documentação." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-mails para" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Os endereços de e-mail de destino, separados por vírgula." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "incluir documento no e-mail" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url do gancho web" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "A URL de destino para a notificação." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "utilizar parâmetros" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "enviar como JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parâmetros do gancho web" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Os parâmetros a enviar com a URL do webhook se o corpo não for usado." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "corpo do webhook" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "O corpo a ser enviado com a URL do webhook se os parâmetros não usados." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "cabeçalhos de webhook" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Os cabeçalhos a serem enviados com a URL do webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "incluir documento no e-mail" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Atribuição" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Remover" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Remoção de senha" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Mover para lixeira" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "OCR remoto" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "Aplicar sugestões de IA" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "Tipo de documento" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "Local de armazenamento" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "Data de criação" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Ação do tipo Fluxo de Trabalho" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ordem" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "atribuir título" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Informe o título do documento (use um template Jinja2). Veja a documentação." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "atribuir esta etiqueta" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "atribuir este tipo de documento" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "atribuir este correspondente" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "atribuir este caminho de armazenamento" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "atribuir este proprietário" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "Conceder permissões de visualização para esses usuários" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "Conceda permissões de visualização a estes grupos" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "Conceder permissões de mudança a estes usuários" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "Conceder permissões de mudança para esses grupos" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "atribuir estes campos personalizados" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "valores de campo personalizados" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Valores opcionais para atribuir aos campos personalizados." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "Remova essas etiquetas" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "Remova todas as etiquetas" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "Remova estes tipos de documentos" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "Remova todos os tipos de documentos" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "Remova estas correspondências" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "Remover todas as correspondências" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "Remova estes caminhos de armazenamento" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "Remova todos os caminhos de armazenamento" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "Remover este(s) proprietário(s)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "Remover todos os proprietários" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "Remover permissão de visualização para esses usuários" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "Remover permissões de visualização para estes grupos" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "Remover permissões de alteração para esses usuários" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "Remover permissões de alteração para esses grupos" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "Remover todas as permissões" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "Remover esses campos personalizados" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "Remover todos os campos personalizados" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-mail" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "senhas" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Senhas para tentar ao remover a proteção PDF. Separe com vírgulas ou ENTER." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "Sugestões de campos pela IA" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "Qual dos campos sugeridos pela IA devo aplicar ao documento?" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "criar objetos faltando" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "Crie tags sugeridas, correspondentes, tipos de documentos e caminhos de armazenamento que já não existam ao invés de ignorá-los." -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "sobrescrever valores existentes" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "Aplique sugestões mesmo que o documento já tenha um valor para esse campo. Tags são sempre adicionadas, nunca substituídas." -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "Ação de Fluxo de Trabalho" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "Ações de Fluxo de Trabalho" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "gatilhos" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "ações" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "Habilitado" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "fluxo de trabalho" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "tipo de gatilho de fluxo de trabalho" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "corrida de data" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "execução do fluxo de trabalho" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "execução de fluxo de trabalho" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Permissões insuficientes." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Cor inválida." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Tipo de arquivo %(type)s não suportado" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "O ID do campo personalizado deve ser um número inteiro: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Não existe um campo personalizado com o ID %(id)s" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Campos personalizados devem estar em uma lista de números inteiros ou em um objeto que relacione IDs a valores." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Campos personalizados inválidos ou duplicados." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Variável inválida detectada." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Não são permitidos identificadores de documento duplicados." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Documentos não encontrados: %(ids)s" @@ -1913,40 +1934,40 @@ msgstr "Esquema URI '{parts.scheme}' não é permitido. Esquemas permitidos:\n" msgid "Unable to parse URI {value}" msgstr "Não é possível analisar o URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "more_like_id inválido" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Configuração de IA inválida." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "A requisição backend da IA expirou." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Especifique apenas um text, title_search, consulta ou mais_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Permissões insuficientes para compartilhar o documento %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Pacote já está sendo processado." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "O pacote de link de compartilhamento ainda está sendo preparado. Tente novamente mais tarde." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "O pacote de link de compartilhamento não está disponível." @@ -2162,223 +2183,231 @@ msgstr "Define o mapeamento de códigos de barras da tag" msgid "Enables splitting on tag barcodes" msgstr "Habilita a divisão em códigos de barras de tags" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "Define o mecanismo OCR remoto" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "Define a chave de API do OCR remoto" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "Define o endpoint do OCR remoto" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "Define quais documentos são enviados ao motor do OCR remoto" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Habilita recursos IA" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Define o backend de incorporação LLM" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Define o modelo de incorporação LLM" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Define o endpoint do embbeding LLM, opcional" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Define o tamanho do chunk para o embbeding LLM" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Define o tamanho do contexto LLM" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Define o backend LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Define o modelo LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Define a chave de API LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Define o endpoint LLM, opcional" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Define o idioma de saída do LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Define o tempo limite do LLM em segundos" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "configurações do aplicativo paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Inglês (EUA)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Árabe" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Africanês" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Bielorrusso" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Búlgaro" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Catalão" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tcheco" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dinamarquês" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Alemão" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grego" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Inglês (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Espanhol" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persa" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finlandês" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francês" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Húngaro" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonésio" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italiano" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japonês" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Coreano" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburguês" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norueguês" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holandês" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polonês" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Português (Brasil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Português" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Romeno" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russo" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Eslovaco" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Esloveno" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Sérvio" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Sueco" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turco" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ucraniano" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "vietnamita" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chinês Simplificado" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Chinês Tradicional" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administração do Paperless-ngx" diff --git a/src/locale/pt_PT/LC_MESSAGES/django.po b/src/locale/pt_PT/LC_MESSAGES/django.po index 7103a51ab..d8ce2439a 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Portuguese\n" "Language: pt_PT\n" @@ -57,31 +57,31 @@ msgstr "" msgid "Custom field not found" msgstr "Campo personalizado não encontrado" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "dono" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Nenhum" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Qualquer palavra" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Todas as palavras" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Detecção exata" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Expressão regular" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Palavra difusa" @@ -89,20 +89,20 @@ msgstr "Palavra difusa" msgid "Automatic" msgstr "Automático" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nome" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "correspondência" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritmo correspondente" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "é insensível" @@ -166,7 +166,7 @@ msgstr "locais de armazenamento" msgid "title" msgstr "título" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "conteúdo" @@ -202,8 +202,8 @@ msgstr "número de páginas" msgid "The number of pages of the document." msgstr "O número de páginas do documento." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "criado" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "documento" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "documentos" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arquivo" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtro" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Etiquetas" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabela" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Cartões Pequenos" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Cartões Grandes" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Título" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Criado" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Adicionado" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Correspondente" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Tipo de Documento" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Caminho de armazenamento" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Nota" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Proprietário" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Partilhado" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Páginas" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "ordenar campo" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "ordenar inversamente" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Exibir tamanho da página" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Modo de visualização" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Exibir Campos de Documento" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "vista guardada" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "vistas guardadas" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "o título contém" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "o conteúdo contém" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "O NSA é" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "o correspondente é" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "o tipo de documento é" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "está na entrada" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "tem etiqueta" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "tem qualquer etiqueta" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "criado antes" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "criado depois" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "ano criada é" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "mês criado é" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dia criado é" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "adicionada antes" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "adicionado depois de" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modificado antes de" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modificado depois de" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "não tem etiqueta" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "não possui um NSA" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "título ou conteúdo contém" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "consulta de texto completo" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "mais como este" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "tem etiquetas em" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN maior que" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN menor que" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "local de armazenamento é" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "tem correspondente em" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "não tem correspondente em" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "tem categoria de documento em" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "não tem categoria de documento em" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "tem caminho de armazenamento em" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "não possui caminho de armazenamento em" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "o proprietário é" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "tem proprietário em" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "não tem proprietário" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "não tem proprietário em" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "tem valor de campo personalizado" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "é partilhado por mim" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "personalizado" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "tem um campo personalizado em" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "não tem um campo personalizado" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "não tem um campo personalizado" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "consulta de campos personalizados" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "criado até" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "criado a partir de" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "adicionado a" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "adicionado de" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "o tipo MIME é" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "tipo de regra" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "valor" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "regra de filtragem" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "regras de filtragem" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Pendente" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Otimizar Índice" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Obter E-mail" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Agendado" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Web UI" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID da tarefa" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Tipo de Tarefa" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Resultados" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Confirmado" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Nota do documento" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "utilizador" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "nota" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notas" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Original" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "validade" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "partilhar ligação" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "compartilhar links" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Em processamento" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Pronto" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Falhou" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "Tamanho (“bytes”)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "Último erro" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Texto" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Data" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Booleano" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Inteiro" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Virgula flutuante" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Moeda" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Endereço do Documento" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Seleccionar" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Texto Longo" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "tipo de dados" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dados extra" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "dados extra para o campo personalizado, tais como opções de selecção" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "campo personalizado" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "campos personalizados" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instância de campo personalizado" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instâncias de campo personalizado" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Consumo Iniciado" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Documento Adicionado" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Documento Atualizado" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Pasta de consumo" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Envio de Api" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Modificado" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Campo Personalizado" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tipo de acionamento de fluxo de trabalho" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "caminho do filtro" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Apenas consume documentos com um caminho que combina com o especificado. Wildcards especificados como * são permitidos. Não faz distinção entre maiúsculas de minúsculas." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtro do nome do ficheiro" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtrar documentos desta regra de e-mail" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "tem esta(s) tag(s)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "tem esta categoria de documento" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "tem esta correspondência" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "agendamento é recorrente" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Se o horário deve ser recorrente." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "agendar atraso recorrente em dias" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "acionador do fluxo de trabalho" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "acionadores do fluxo do trabalho" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "assunto do email" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "corpo do email" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-mails para" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "incluir documento no email" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "usar parâmetros" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "enviar como JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Atribuição" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Remoção" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Email" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Tipo do Acionador do Fluxo do Trabalho" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ordem" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "atribuir título" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "atribuir esta etiqueta" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "atribuir este tipo de documento" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "atribuir este correspondente" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "atribuir este caminho de armazenamento" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "atribuir este dono" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "conceder permissões de visualização para estes utilizadores" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "conceder permissões de visualização para estes grupos" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "conceder permissões de alteração a estes utilizadores" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "conceder permissões de alteração a estes grupos" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "atribuir estes campos personalizados" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "remover este(s) etiqueta(s)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "remover todas as etiquetas" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "remover este(s) tipo(s) de documento(s)" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "remover todos os tipos de documentos" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "remover esta(s) correspondência(s)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "remover todos os correspondentes" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "remover este(s) caminho(s) de armazenamento " -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "remover todos os caminhos de armazenamento" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "remover este(s) dono(s)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "remover todos os donos" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "remover permissões de visualização para estes utilizadores" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "remover permissões de visualização para estes grupos" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "remover permssões de alteração para estes utilizadores" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "remover permissões de alteração para estes grupos" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "remover todas as permissões" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "remover esses campos personalizados" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "remover todos os campos personalizados" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "endereço eletrónico" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "Palavra-passe" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Senhas para tentar ao remover a proteção de PDF. Separe com vírgulas ou novas linhas." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "acção do fluxo do trabalho" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "acções do fluxo do trabalho" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "acionadores" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "ações" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "ativado" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "fluxo de trabalho" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Cor invalida." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Tipo de arquivo %(type)s não suportado" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Variável inválida detetada." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "Não foi possível analisar o URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "configurações do paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Inglês (EUA)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Árabe" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Africano" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Bielorrusso" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Búlgaro" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Catalão" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Checo" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dinamarquês" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Deutsch" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grego" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Inglês (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Espanhol" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persa" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finlandês" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Français" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Húngaro" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italiano" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japonês" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Coreano" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburguês" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norueguês" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Nederlandse" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polaco" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Português (Brasil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Português" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Romeno" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Russo" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Eslovaco" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Esloveno" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Sérvio" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Sueco" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turco" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ucraniano" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamita" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chinês Simplificado" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administração do Paperless-ngx" diff --git a/src/locale/ro_RO/LC_MESSAGES/django.po b/src/locale/ro_RO/LC_MESSAGES/django.po index da2408f84..4f008a1a0 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Romanian\n" "Language: ro_RO\n" @@ -57,31 +57,31 @@ msgstr "Adâncimea maximă depășită." msgid "Custom field not found" msgstr "Câmpul personalizat nu a fost găsit" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "proprietar" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Nimic" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Orice cuvânt" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Toate cuvintele" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Potrivire exactă" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Expresie regulată" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Cuvânt neclar" @@ -89,20 +89,20 @@ msgstr "Cuvânt neclar" msgid "Automatic" msgstr "Automat" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "nume" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "potrivire" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritm de potrivire" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "nu ține cont de majuscule" @@ -166,7 +166,7 @@ msgstr "căi de stocare" msgid "title" msgstr "titlu" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "conținut" @@ -202,8 +202,8 @@ msgstr "număr de pagini" msgid "The number of pages of the document." msgstr "Numărul de pagini ale documentului." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "creat" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "document" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "documente" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arhivă" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtru" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Etichete" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabel" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Carduri Mici" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Carduri mari" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titlu" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Creat" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Adăugat" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Corespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Tipul de document" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Cale de stocare" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Notă" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Proprietar" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Distribuit" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Pagini" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "sortează camp" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "sortează invers" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Vezi dimensiunea paginii" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Vezi modul de afişare" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Afișare câmpuri document" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "vizualizare" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "vizualizări" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "titlul conține" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "conținutul conține" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "Avizul prealabil de expediție este" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "corespondentul este" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "tipul documentului este" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "este în inbox" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "are eticheta" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "are orice eticheta" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "creat înainte de" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "creat după" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "anul creării este" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "luna creării este" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "ziua creării este" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "adăugat înainte de" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "adăugat după" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "modificat înainte de" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "modificat după" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "nu are etichetă" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "nu are aviz prealabil de expediție" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "titlul sau conținutul conține" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "query fulltext" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "mai multe ca aceasta" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "are etichete în" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN mai mare decât" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN mai mic decât" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "calea de stocare este" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "are corespondent în" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "nu are corespondent în" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "are tip de document în" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "nu are tip document în" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "are cale de stocare în" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nu are cale de stocare în" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "proprietarul este" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "are proprietar în" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "nu are proprietar" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "nu are proprietar în" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "are valoare câmp personalizat" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "este partajat de mine" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "are câmpuri personalizate" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "are câmp personalizat în" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "nu are câmp personalizat în" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "nu are câmp personalizat" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "interogare câmpuri personalizate" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "creat pentru" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "creat din" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "adăugat în" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "adăugat din" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "tipul mime este" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "tip de regula" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "valoare" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "regulă de filtrare" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "reguli de filtrare" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Consumați fișierul" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Clasificator tren" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimizare Index" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Preluare email" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Golire gunoi" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Programat" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "UI Web" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID Sarcină" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Tip de sarcină" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Datele rezultatului" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Confirmat" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Notă pentru document" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "utilizator" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "notă" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "note" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Original" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "expirare" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "nume scurt" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "link de partajare" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "link-uri de partajare" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Şir de caractere" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "Adresă URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Dată" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Număr întreg" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Număr zecimal" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetară" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Link document" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Selectează" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Text Lung" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "tip date" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "date extra" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Date suplimentare pentru câmpul personalizat, cum ar fi opţiunile selectate" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "câmp personalizat" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "câmpuri personalizate" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instanță câmp personalizat" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instanțe câmpuri personalizate" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Consumul a început" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Document Adăugat" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Document Actualizat" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Consumați Dosarul" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Încărcare Api" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Modificat" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Câmp Personalizat" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tipul de declanșator flux de lucru" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "cale de filtrare" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Se vor procesa doar documentele cu o cale care corespunde acesteia, dacă este specificată. Sunt permise metacaracterele *. Nu se face distincție între majuscule și minuscule." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtru nume fișier" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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ă." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtrează documentele din această regulă de mail" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "are aceste etichete(ă)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "are toate aceste etichete(ă)" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "nu are aceste etichete(ă)" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "are acest tip document" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "nu are aceste tip(uri) de documente" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "are acest corespondent" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "nu are acești corespondent(ți)" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "are această cale de stocare" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "nu are aceste căi (cale) de stocare" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtrează interogarea câmpurilor personalizate" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Expresie câmp personalizat de interogare JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "decalaj de programare în zile" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Numărul de zile cu care este decalat declanșatorul programării." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "programarea este recurentă" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Dacă programarea trebuie să se repete." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "interval de repetare al programării în zile" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Numărul de zile între declanșatorii programării recurente." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "câmp de dată al programării" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Câmpul pentru a verifica un declanșator de planificare." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "orar data câmp personalizat" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "declanșator flux de lucru" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "declanșatoare flux de lucru" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "subiect email" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Subiectul e-mailului, poate include unii substituenți, puteți vedea documentația." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "corp email" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Corpul (mesajul) e-mailului poate include anumiți substituenți, se poate vedea documentația." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "emailuri către" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Adrese de e-mail destinație, separate prin virgulă." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "include documentul în email" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url webhook" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "URL-ul destinației pentru notificare." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "utilizează parametrii" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "trimite ca JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parametri webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametrii de trimis cu URL-ul webhook dacă corpul nu este utilizat." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "corp webhook" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Corpul de trimis cu URL-ul webhook dacă parametrii nu sunt folosiți." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "anteturi webhook" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Antetele de trimis folosind URL-ul webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "include documentul în webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Atribuire" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Eliminare" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Email" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Tip Acțiune flux de lucru" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ordonează" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "atribuie titlu" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Atribuirea unui titlu de document trebuie să fie un model Jinja2, a se vedea documentaţia." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "atribuie această etichetă" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "atribuie acest tip" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "atribuie acest corespondent" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "atribuie această cale de stocare" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "atribuie acest proprietar" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "acordă permisiuni de vizualizare acestor utilizatori" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "acordă permisiuni de vizualizare acestor grupuri" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "acordă permisiuni de schimbare acestor utilizatori" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "acordă permisiuni de modificare acestor grupuri" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "atribuie aceste câmpuri personalizate" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "valori ale câmpurilor personalizate" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Valori opţionale de atribuit ale câmpurilor personalizate." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "elimină aceste etichetă(e)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "elimină toate etichetele" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "elimină tipul (tipurile) de document" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "elimină toate tipurile de documente" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "elimină acești corespondent(ți)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "elimină toți corespondenții" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "eliminați aceste căi (cale) de stocare" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "îndepărtaţi toate căile de stocare" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "elimină acești proprietar(i)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "elimină toți proprietarii" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "elimină permisiunile de vizualizare pentru acești utilizatori" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "elimină permisiunile de vizualizare pentru aceste grupuri" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "elimină permisiunile de vizualizare pentru acești utilizatori" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "elimină permisiunile de modificare pentru aceste grupuri" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "elimină toate permisiunile" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "elimină aceste câmpuri personalizate" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "elimină toate câmpurile personalizate" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "email" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "acțiune flux de lucru" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "acțiuni flux de lucru" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "declanșatoare" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "acțiuni" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "activat" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "flux de lucru" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "tip declanșator flux de lucru" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "dată execuție" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "rulare flux de lucru" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "rulări flux de lucru" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Culoare invalidă." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Tip de fișier %(type)s nesuportat" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Id-ul câmpului personalizat trebuie să fie un număr întreg: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Câmp personalizat cu id %(id)s nu există" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Câmpurile personalizate trebuie să fie o listă de numere întregi sau un obiect mapping ids la valori." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Unele câmpuri personalizate nu există sau au fost specificate de două ori." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Variabilă nevalidă detectată." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "Schema URI '{parts.scheme}' nu este permisă. Schemele permise: {', '.jo msgid "Unable to parse URI {value}" msgstr "Nu se poate analiza URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "Setează maparea codului de bare al tag-ului" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Activează funcțiile IA" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Setează sistemul backend de încorporare LLM" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Setează modelul de încorporare LLM" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Setează backend-ul LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Setează modelul LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Setează cheia API LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Setează endpoint-ul LLM, opţional" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "setări ale aplicației paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Engleză (Americană)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabă" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Africană" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Bielorusă" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgară" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Catalană" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Cehă" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Daneză" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Germană" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Greacă" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Engleză (Britanică)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spaniolă" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persană" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finlandeză" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Franceză" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Maghiară" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indoneziană" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italiană" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japoneză" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Coreeană" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburgheză" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norvegiană" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Olandeză" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Poloneză" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugheză (Brazilia)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugheză" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Română" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Rusă" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovacă" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovenă" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Sârbă" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Suedeză" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turcă" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ucrainiană" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnameză" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Chineză simplificată" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Chineză Tradițională" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administrare Paperless-ngx" diff --git a/src/locale/ru_RU/LC_MESSAGES/django.po b/src/locale/ru_RU/LC_MESSAGES/django.po index e4da75057..8263b10fc 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-19 12:26\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -57,31 +57,31 @@ msgstr "Превышена максимальная глубина вложен msgid "Custom field not found" msgstr "Пользовательское поле не найдено" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "владелец" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Никакой" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Любые слова" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Все слова" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Точное соответствие" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Регулярное выражение" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "\"Нечёткий\" режим" @@ -89,20 +89,20 @@ msgstr "\"Нечёткий\" режим" msgid "Automatic" msgstr "Автоматически" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "имя" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "соответствие" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "алгоритм сопоставления" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "без учёта регистра" @@ -166,7 +166,7 @@ msgstr "пути хранения" msgid "title" msgstr "заголовок" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "содержимое" @@ -202,8 +202,8 @@ msgstr "количество страниц" msgid "The number of pages of the document." msgstr "Количество страниц документа." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "создано" @@ -267,1395 +267,1416 @@ msgstr "метка версии" msgid "Optional short label for a document version." msgstr "Необязательная короткая метка для версии документа." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "документ" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "документы" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Архив" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Банк" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Корзина" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Колокольчик" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Закладка" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Блоки" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Портфель" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Строительство" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "Калькулятор" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Календарь" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Камера" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Чеклист" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Наличные" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Чат" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Проверка" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Буфер обмена" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Часы" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Кредитная карта" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Загрузка" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Конверт" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Предупреждение" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "Файл" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "Отмеченный файл" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "Заблокированный файл" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "Медицинский файл" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "Файл персоны" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Электронная таблица" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Текстовой файл" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "Файлы" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Папка" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Фильтр" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "Шестеренка" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "Глобус" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "Хэш" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "Сердце" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "Дом" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "Входящие" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "Журналы" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "Список задач" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "Газета" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "Вложение" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "Контакты" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "Персона" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "Принтер" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "Чек" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "Безопасно" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "Поиск" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "Отправить" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "Магазин" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "Стек" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "Звезды" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "Метка" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Теги" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "Телефон" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "Грузоперевозки" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "Штрих-код" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "Кошелёк" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Таблица" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Маленькие карточки" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Большие карточки" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Название" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Создано" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Добавлено" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Корреспондент" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Тип документа" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Путь хранения" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Заметка" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Владелец" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Общий доступ" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Страницы" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "иконка" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "Поле сортировки" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "обратная сортировка" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Посмотреть размер страницы" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Режим отображения" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Показывать поля документа" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "сохранённое представление" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "сохраненные представления" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "заголовок содержит" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "содержимое содержит" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "АН" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "корреспондент" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "тип документа" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "во входящих" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "есть тег" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "есть любой тег" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "создан до" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "создан после" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "год создания" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "месяц создания" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "день создания" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "добавлен до" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "добавлен после" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "изменен до" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "изменен после" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "не имеет тега" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "не имеет архивного номера" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "Название или содержимое включает" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "полнотекстовый запрос" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "больше похожих" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "имеет теги в" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "АН больше чем" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "АН меньше чем" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "путь хранения является" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "имеет корреспондента в" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "не имеет корреспондента в" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "имеет тип документа в" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "не имеет тип документа в" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "имеет путь хранения в" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "не имеет пути хранения в" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "владелец" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "имеет владельца в" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "не имеет владельца" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "не имеет владельца в" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "имеет значение пользовательского поля" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "делится мною" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "имеет пользовательские поля" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "имеет пользовательское поле в" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "не имеет настраиваемого поля в" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "не имеет настраиваемого поля" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "запрос пользовательских полей" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "создано в" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "создано из" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "добавлено в" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "добавлено из" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "MIME-тип" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "простой поиск по названию" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "простой текстовый поиск" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "есть дубликаты" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "Тип правила" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "значение" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "Правило фильтрации" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "правила фильтрации" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "В обработке" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Запущено" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Успешно" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Неудача" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Отклонено" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Получить файл" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Обучить классификатор" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Проверка безопасности" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Оптимизировать индекс" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Получить почту" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM-индексация" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Очистить Корзину" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Проверка рабочих процессов" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Массовое обновление" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Переобработка документа" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Ссылки для сборки" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Массовое удаление" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "Применить советы ИИ" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Запланировано" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Веб-интерфейс" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "Загрузка API" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Потребление папки" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Потребление Email" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Система" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Руководство" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ИД задачи" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "Идентификатор задачи" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Тип задачи" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Вид выполняемой работы" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Источник срабатывания" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Что запустило эту задачу" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Статус" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Завершено" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Продолжительность (сек)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Прошло времени от начала до завершения" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Время ожидания (секунд)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Время от создания задачи до подбора на обработку" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Входные данные" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Структурированные входные параметры для задачи" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Данные результата" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Структурированные данные результата выполнения задачи" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Подтверждено" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Задача" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Задачи" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Заметка для документа" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "пользователь" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "заметка" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "заметки" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Оригинал" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "истечение" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "динамический идентификатор" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "ссылка для обмена" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "ссылки для обмена" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Обработка" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Готово" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Неудачно" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "размер (байт)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "последняя ошибка" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "путь к файлу" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "собрано в" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "поделиться набором ссылок" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "поделиться наборами ссылок" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Поделиться набором ссылок %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Строка" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "Ссылка" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Дата" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Логическое значение" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Целое число" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "С плавающей точкой" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Валюта" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Ярлык на документ" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Выбрать" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Длинный текст" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "тип данных" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "Дополнительные данные" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Дополнительные данные для пользовательского поля, такие как выбор опций" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "Пользовательское поле" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "Пользовательские поля" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "спецобразец поля" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "спецобразцы поля" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Обработка документа начата" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Документ добавлен" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Документ обновлен" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Обработка из папки" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API загрузка" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Изменено" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Пользовательское поле" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tип пускового механизма автоматизации" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "фильтр путя" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Обрабатывает только документы, соответствующие этому пути если он указан. Допускаются такие символы, как *. Верхний и нижний регистр не учитываются." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "фильтр имя файла" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Обрабатывать только документы, которые полностью совпадают с именем файла (если оно указано). Маски, например *.pdf или *счет*, разрешены. Без учёта регистра." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "фильтр документов из этого правила электронной почты" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "имеет эти этикетки" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "имеет все эти теги" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "не имеет этих тегов" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "имеет этот тип документа" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "имеет один из этих типов документов" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "не имеет этих типов документов" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "имеет этого корреспондента" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "не имеет этих корреспондентов" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "имеет одного из этих корреспондентов" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "имеет этот путь хранения" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "имеет один из этих путей хранения" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "не имеет этих путей хранения" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "фильтр пользовательского поля запроса" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Выражение запросов, кодированных в JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "дни смещения расписания" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Количество дней для смещения расписания триггера." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "расписание повторяется" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Если график должен быть повторяющимся." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "задержка в повторении расписания в днях" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Количество дней между триггерами периодического расписания." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "поле даты расписания" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Поле для проверки триггера расписания." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "пользовательское поле даты расписания" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "пусковой механизм автоматизации" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "пусковые механизмы автоматизации" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "тема письма" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Тема письма может включать некоторые плейсхолдеры, см. документацию." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "текст письма" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Текст письма может включать некоторые плейсхолдеры, см. документацию." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-mail-ы для" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Адреса электронной почты, разделенные запятыми." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "включать документ в email" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "URL-адрес вебхука" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "URL-адрес куда отправить уведомление" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "использовать параметры" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "отправить как JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "параметры вебхука" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Параметры для отправки с URL-адресом вебхука, если тело не используется." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "тело вебхука" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Тело для отправки с URL-адресом вебхука, если параметры не используются." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "HTTP-заголовки вебхука" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "HTTP-заголовки для отправки с URL-адресом вебхука." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "включить документ в вебхук" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Задание" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Удаление" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Электронная почта" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Вебхук" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Удаление пароля" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Переместить в корзину" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "Удаленное распознавание (OCR)" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "Применить советы ИИ" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "Тип документа" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "Путь к хранилищу" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "Дата создания" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Тип действия автоматизации" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "порядок" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "присвоить заголовок" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Присвоить название документу, должно быть шаблоном Jinja2, см. документацию." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "назначить этот тег" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "назначить этот тип документа" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "назначить этого корреспондента" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "назначить этот путь хранения" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "назначить этого владельца" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "предоставьте права на отображение этим пользователям" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "предоставьте права на отображение этим группам" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "предоставьте права на редактирование этим пользователям" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "предоставьте права на редактирование этим группам" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "назначьте эти спецполя" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "значения пользовательского поля" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Необязательные значения для присвоения пользовательским полям." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "удалить выбранные таг(и)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "удалить все таги" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "удалить эти тип(ы) документов" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "удалить все типы документов" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "удалить этого корреспондента(-ов)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "удалить всех корреспондентов" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "удалить эти пути хранения" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "удалить все пути хранения" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "удалить этого владельца(-ов)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "удалить всех владельцев" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "удалить разрешения на просмотр для этих пользователей" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "удалить права просмотра для этих групп" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "удалить права на изменение для этих пользователей" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "удалить права на изменение для этих групп" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "удалить все разрешения" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "удалить эти пользовательские поля" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "удалить все пользовательские поля" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "электронная почта" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "вебхук" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "пароли" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Пароли для удаления защиты PDF. Разделите запятыми или новыми строками." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "Предложенные ИИ поля" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "Какие из предлагаемых ИИ полей применить к документу." -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "создать недостающие объекты" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "Создать предложенные теги, корреспондентов, типы документов и пути хранения, которые еще не существуют, вместо того чтобы пропускать их." -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "перезаписать текущие значения" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "Применяйте предложения, даже если документ уже имеет значение для поля. Теги всегда добавляются, не заменяются." -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "действия автоматизации" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "действия автоматизации" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "пусковые механизмы" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "действия" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "включено" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "рабочий процесс" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "тип триггера рабочего процесса" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "дата запуска" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "запуск рабочего процесса" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "запуски рабочего процесса" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Недостаточно прав." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Неверный цвет." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Тип файла %(type)s не поддерживается" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Идентификатор настраиваемого поля должен быть целым числом: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Пользовательское поле с идентификатором %(id)s не существует" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Пользовательские поля должны быть списком целых чисел или идентификаторами отображения объектов значений." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Некоторые пользовательские поля не существуют или были указаны дважды." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Обнаружена неверная переменная." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Повторяющиеся идентификаторы документа не допускаются." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Документы не найдены: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "Недопустимая схема URI '{parts.scheme}'. Разреше msgid "Unable to parse URI {value}" msgstr "Невозможно распознать URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Недопустимый more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Неверная конфигурация ИИ." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "Таймаут запроса ИИ." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "Движок ИИ отклонил запрос. Проверьте логи." -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Укажите только одно: текст, title_search, query или more _like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Недостаточно прав для совместного доступа к документу %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Пакет уже обрабатывается." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Набор ссылок все еще готовится. Пожалуйста, повторите попытку позже." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Пакет общих ссылок недоступен." @@ -2160,223 +2181,231 @@ msgstr "Устанавливает сопоставление тег-штрих- msgid "Enables splitting on tag barcodes" msgstr "Включает разделение на штрих-коды тегов" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "Задаёт удаленный OCR-движок" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "Задаёт ключ API для удаленного распознавания" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "Задаёт конечную точку для удаленного распознавания" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "Устанавливает, какие документы отправляются в удаленный OCR движок" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Включить функции ИИ" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Установить бэкэнд LLM-встраивания" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Установить модель LLM-встраивания" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "Устанавливает API-ключ LLM встраивания" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Установить конечную точку LLM-встраивания, опционально" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Установить размер кучи LLM-встраивания" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Установить размер контекста LLM" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Установить бэкэнд LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Установить модель LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Установить ключ API LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Установить конечную точку LLM, опционально" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Установить язык вывода LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Установить тайм-аут LLM в секундах" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "настройки приложения paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Английский (США)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Арабский" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Африкаанс" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Белорусский" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Болгарский" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Каталонский" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Чешский" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Датский" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Немецкий" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Греческий" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Английский (Великобритании)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Испанский" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Персидский" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Финский" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Французский" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Венгерский" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "индонезийский" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Итальянский" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Японский" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Корейский" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Люксембургский" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Норвежский" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Датский" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Польский" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Португальский (Бразилия)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Португальский" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Румынский" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Русский" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Словацкий" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Словенский" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Сербский" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Шведский" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Турецкий" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Украинский" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Вьетнамский" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Китайский упрощенный" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Китайский (традиционный)" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Администрирование Paperless-ngx" diff --git a/src/locale/sk_SK/LC_MESSAGES/django.po b/src/locale/sk_SK/LC_MESSAGES/django.po index 5fbdf3ce7..ce1e6e5cd 100644 --- a/src/locale/sk_SK/LC_MESSAGES/django.po +++ b/src/locale/sk_SK/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-06 02:00\n" "Last-Translator: \n" "Language-Team: Slovak\n" "Language: sk_SK\n" @@ -57,31 +57,31 @@ msgstr "Bola prekročená maximálna hĺbka vetvenia." msgid "Custom field not found" msgstr "Vlastné pole nebolo nájdené" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "vlastník" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Žiadny" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Akékoľvek slovo" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Všetky slová" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Presná zhoda" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regulárny výraz" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Podobné slovo" @@ -89,20 +89,20 @@ msgstr "Podobné slovo" msgid "Automatic" msgstr "Automaticky" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "meno" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "zhoda" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritmus zhody" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "nerozlišuje veľké a malé písmená" @@ -166,7 +166,7 @@ msgstr "cesty k úložisku" msgid "title" msgstr "názov" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "obsah" @@ -202,8 +202,8 @@ msgstr "počet strán" msgid "The number of pages of the document." msgstr "Počet stránok dokumentu." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "vytvorené" @@ -267,1398 +267,1419 @@ msgstr "označenie verzie" msgid "Optional short label for a document version." msgstr "Voliteľný krátky popis verzie dokumentu." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumenty" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Archív" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Banka" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Košík" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Zvonček" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Záložka" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Krabice" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Schránka" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Budova" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "Kalkulačka" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Kalendár" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Fotoaparát" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Zoznam úloh" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Hotovosť" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Rozhovor" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Kontrola" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Schránka" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Hodinky" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Kreditná karta" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Stiahnuť" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Obálka" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Upozornenie" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "Súbor" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "Skontrolovaný súbor" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "Uzamknutý súbor" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "Lekársky spis" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "Osobný spis" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Tabuľka" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Textový súbor" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "Súbory" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Priečinok" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "Vybavenie" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "Glóbus" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "Hash" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "Srdce" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "Dom" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "Prijaté" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "Denníky" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "Zoznam úloh" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "Noviny" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "Príloha" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "Ľudia" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "Osoba" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "Tlačiareň" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "Účtenka" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "Bezpečný" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "Hľadať" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "Poslať" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "Obchod" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "Vrstvy" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "Hviezdy" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "Štítok" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Štítky" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "Telefón" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "Kamión" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "Čiarový kód" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "Peňaženka" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabuľka" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Malé karty" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Veľké karty" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Názov" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Vytvorené" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Pridané" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korešpondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Typ dokumentu" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Cesta k úložisku" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Poznámka" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Vlastník" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Zdieľané" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Stránok" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "ikona" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "zoraďovacie pole" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "zoradiť opačne" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Zobraziť veľkosť stránky" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Zobraziť režim zobrazenia" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Polia zobrazenia dokumentu" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "uložené zobrazenie" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "uložené zobrazenia" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "názov obsahuje" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "dokument obsahuje" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN je" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "odosielateľ je" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "typ dokumentu je" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "je v doručenej pošte" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "má štítok" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "má niektorý zo štítkov" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "vytvorený pred" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "vytvorený po" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "rok vytvorenia je" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "mesiac vytvorenia je" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "deň vytvorenia je" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "pridaný pred" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "pridaný po" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "zmenený pred" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "zmenený po" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "nemá štítok" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "nemá ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "názov alebo dokument obsahuje" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "fulltextový dopyt" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "viac podobných" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "má štítok v" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN väčšie ako" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN menšie ako" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "cesta k úložisku je" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "má korešpondenta v" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "nemá korešpondenta v" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "má typ dokumentu v" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "nemá typ dokumentu v" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "má cestu k úložisku v" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nemá cestu k úložisku v" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "vlastníkom je" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "má vlastníka v" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "nemá vlastníka" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "nemá vlastníka v" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "má hodnotu vlastného poľa" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "je zdieľaný mnou" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "má vlastné polia" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "má vlastné pole v" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "nemá vlastné pole v" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "nemá vlastné pole" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "požiadavky na vlastné polia" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "vytvorené do" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "vytvorené z" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "pridané do" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "pridané z" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "typ mime je" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "jednoduché hľadanie titulku" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "jednoduché hľadanie textu" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "má duplikáty" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "typ pravidla" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "hodnota" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "pravidlo filtra" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "pravidlá filtra" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Čakajúce" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Začaté" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Úspech" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Zlyhanie" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Zrušené" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Súbor spracovania" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Trénovací klasifikátor" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Kontrola zdravia" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimalizácia indexu" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Načítať poštu" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM Index" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Vyprázdniť kôš" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Skontrolovať pracovné postupy" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Hromadná aktualizácia" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Znovu spracovať dokument" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Vytvoriť odkaz na zdieľanie" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Hromadné zmazanie" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "Použiť návrhy umelej inteligencie" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Plánované" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Webové rozhranie" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "Nahrať pomocou API" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Konzumovať priečinok" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Konzumovať Email" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Systém" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Návod" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID úlohy" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "ID úlohy Celery" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Typ úlohy" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Druh vykonávanej práce" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Spustiť zdroj" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Čo iniciovalo túto úlohu" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Stav" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Dokončené" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Trvanie (sekundy)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Uplynutý čas od začiatku do konca" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Čas čakania (sekundy)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Čas od vytvorenia úlohy po vyzdvihnutie pracovníkom" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Vstupné dáta" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Štruktúrované vstupné parametre pre úlohu" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Výsledné dáta" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Štruktúrované výsledné údaje z vykonanej úlohy" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Potvrdené" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Úloha" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Úlohy" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Poznámka k dokumentu" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "používateľ" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "poznámka" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "poznámky" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Originál" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "vypršanie" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slimák" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "odkaz pre zdieľanie" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "odkazy pre zdieľanie" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Spracovávanie" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Pripravený" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Neúspešné" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "veľkosť (bajty)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "posledná chyba" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "cesta k súboru" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "vybudovaný" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "balík odkazu na zdieľanie" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "balík odkazov na zdieľanie" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "balík odkazu na zdieľanie %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Reťazec" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "Adresa URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Dátum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Logická hodnota" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Celé číslo" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Plávajúce číslo" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Peňažný" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Odkaz na dokument" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Vybrať" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Dlhý text" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "dátový typ" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dodatočné údaje" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dodatočné údaje pre vlastné pole, ako sú napr. možnosti výberu" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "vlastné pole" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "vlastné polia" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "inštancia vlastného poľa" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "inštancie vlastných polí" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Spustené spracovanie" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument pridaný" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument aktualizovaný" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Priečinok spracovania" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Nahrať pomocou API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Upravené" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Vlastné pole" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Typ spúšťača pracovného postupu" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filter cesty" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Spracovávať iba dokumenty s cestou, ktorá zodpovedá tomuto výrazu (ak je zadaný). Sú povolené zástupné znaky ako napr. *. Medzi malými a veľkými písmenami sa nerozlišuje." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filter názvu súboru" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Spracuje iba dokumenty so zhodným názvom, ak je vyplnený. Použitie zástupných znakov ako *.pdf alebo *invoice* je povolené. Rozoznáva malé a veľké písmená." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtrovať dokumenty z tohto poštového pravidla" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "má tieto štítky" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "má všetky tieto štítky" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "nemá tieto štítky" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "má tento typ dokumentu" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "má jeden z týchto typov dokumentu" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "nemá tieto typy dokumentu" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "má tohto korešpondenta" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "nemá týchto korešpondentov" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "má jeden z týchto korešpondentov" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "má túto cestu k úložisku" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "má jednu z týchto ciest k úložisku" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "nemá tieto cesty k úložisku" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" -msgstr "" +msgstr "filtrovanie dopytu podľa vlastného poľa" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." -msgstr "" +msgstr "Výraz dopytu pre vlastné pole kódovaný vo formáte JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "počet dní posunu plánu" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Počet dní, o ktoré sa má spúšťač plánu posunúť." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "plán sa opakuje" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Či by sa mal plán opakovať." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "oneskorenie opakovania plánu v dňoch" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Počet dní, o ktoré sa má spúšťač plánu posunúť." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" -msgstr "" +msgstr "pole dátumu plánovania" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." -msgstr "" +msgstr "Pole, v ktorom sa má kontrolovať spúšťač podľa plánu." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" -msgstr "" +msgstr "vlastné pole pre dátum plánovania" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "spúšťač pracovného postupu" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "spúšťače pracovného postupu" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "predmet e-mailu" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Predmet e-mailu, môže obsahovať niektoré zástupné znaky, viď dokumentácia." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "telo e-mailu" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Telo (správa) e-mailu, môže obsahovať niektoré zástupné znaky, viď dokumentácia." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-maily komu" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." -msgstr "" +msgstr "Cieľové e-mailové adresy oddelené čiarkami." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "pripnúť dokument do e-mailu" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url webhooku" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." -msgstr "" +msgstr "Cieľová adresa URL pre upozornenie." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "použiť parametre" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" -msgstr "" +msgstr "poslať ako JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parametre webhooku" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." -msgstr "" +msgstr "Parametre, ktoré sa majú odoslať spolu s URL adresou webhooku, ak sa nepoužíva telo požiadavky." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" -msgstr "" +msgstr "telo webhooku" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." -msgstr "" +msgstr "Telo správy, ktoré sa má odoslať spolu s URL adresou webhooku, ak sa nepoužijú parametre." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" -msgstr "" +msgstr "webook hlavičky" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." -msgstr "" +msgstr "Hlavičky, ktoré sa majú odoslať spolu s URL adresou webhooku." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" -msgstr "" +msgstr "zahrnúť dokument do webhooku" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Priradenie" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Odstránenie" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-mail" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Odstránenie hesla" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Presunúť do koša" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "Vzdialené OCR" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "Použiť návrhy umelej inteligencie" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "Typ dokumentu" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "Cesta k úložisku" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "Deň vytvorenia" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Typ akcie pracovného postupu" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "poradie" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "priradiť názov" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." -msgstr "" +msgstr "Priraďte názov dokumentu; musí ísť o šablónu Jinja2, pozrite si dokumentáciu." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "priradiť tento štítok" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "priradiť tento typ dokumentu" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "priradiť tohto odosielateľa" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "priradiť túto cestu k úložisku" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "priradiť tohto vlastníka" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" -msgstr "" +msgstr "udeliť týmto používateľom povolenia na zobrazenie" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" -msgstr "" +msgstr "udeliť týmto skupinám povolenia na zobrazenie" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" -msgstr "" +msgstr "udeliť týmto používateľom povolenia na zmeny" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" -msgstr "" +msgstr "udeliť týmto skupinám povolenia na zmeny" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "priradiť tieto vlastné polia" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "vlastné hodnoty poľa" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Voliteľné hodnoty na priradenie k vlastným poliam." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "odstrániť tieto štítky" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "odstrániť všetky štítky" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "odstrániť tieto typy dokumentov" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "odstrániť všetky typy dokumentov" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "odstrániť týchto korešpondentov" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "odstrániť všetkých korešpondentov" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "odstrániť tieto cesty k úložisku" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "odstrániť všetky cesty k úložisku" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "odstrániť týchto vlastníkov" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "odstrániť všetkých vlastníkov" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "odstrániť povolenia na zobrazenie pre týchto používateľov" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "odstrániť povolenia na zobrazenie pre tieto skupiny" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "odstrániť povolenia na úpravy pre týchto používateľov" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "odstrániť povolenia na úpravy pre tieto skupiny" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "odstrániť všetky povolenia" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "odstrániť tieto vlastné polia" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "odstrániť všetky vlastné polia" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-mail" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "heslá" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." -msgstr "" +msgstr "Heslá na vyskúšanie pri odstraňovaní ochrany PDF. Oddeľte ich čiarkami alebo novými riadkami." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" -msgstr "" +msgstr "Polia s návrhmi od umelej inteligencie" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." -msgstr "" +msgstr "Ktoré z polí navrhnutých umelou inteligenciou sa majú na dokument aplikovať." -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" -msgstr "" +msgstr "vytvoriť chýbajúce objekty" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." -msgstr "" +msgstr "Vytvorte navrhované štítky, korešpondentov, typy dokumentov a cesty k úložisku, ktoré ešte neexistujú, namiesto ich preskočenia." -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" -msgstr "" +msgstr "prepísať existujúce hodnoty" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." -msgstr "" +msgstr "Použiť návrhy, aj keď dané pole v dokumente už má priradenú hodnotu. Štítky sa vždy pridávajú; nikdy sa nenahrádzajú." -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "akcia pracovného postupu" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "akcie pracovného postupu" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "spúšťače" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "akcie" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "povolené" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "pracovný postup" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "typ spúšťača pracovného postupu" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "dátum spustenia" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "spustenie pracovného postupu" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "spustenia pracovných postupov" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Nedostatočné oprávnenia." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Neplatná farba." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Typ súboru %(type)s nie je podporovaný" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" -msgstr "" +msgstr "ID vlastného poľa musí byť celé číslo: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" -msgstr "" +msgstr "Vlastné pole s ID %(id)s neexistuje." -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." -msgstr "" +msgstr "Vlastné polia musia byť zoznamom celých čísel alebo objektom mapujúcim identifikátory na hodnoty." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." -msgstr "" +msgstr "Niektoré vlastné polia neexistujú alebo boli zadané dvakrát." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Zistená neplatná premenná." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." -msgstr "" +msgstr "Duplicitné identifikátory dokumentov nie sú povolené." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" -msgstr "" +msgstr "Dokumenty sa nenašli: %(ids)s" #: documents/templates/account/account_inactive.html:5 msgid "Paperless-ngx account inactive" @@ -1810,7 +1831,7 @@ msgstr "Už máte účet?" #: documents/templates/account/signup.html:19 msgid "Note: This is the first user account for this installation and will be granted superuser privileges." -msgstr "" +msgstr "Poznámka: Toto je prvý užívateľský účet pre túto inštaláciu a budú mu pridelené oprávnenia superpoužívateľa." #: documents/templates/account/signup.html:23 #: documents/templates/socialaccount/signup.html:16 @@ -1835,11 +1856,11 @@ msgstr "Tu je odkaz na dokumentáciu." #: documents/templates/mfa/authenticate.html:7 msgid "Paperless-ngx Two-Factor Authentication" -msgstr "" +msgstr "Dvojfaktorové overovanie v Paperless-ngx" #: documents/templates/mfa/authenticate.html:12 msgid "Your account is protected by two-factor authentication. Please enter an authenticator code:" -msgstr "" +msgstr "Váš účet je chránený dvojfaktorovým overením. Zadajte kód z autentifikátora:" #: documents/templates/mfa/authenticate.html:17 msgid "Code" @@ -1851,20 +1872,20 @@ msgstr "Zrušiť" #: documents/templates/paperless-ngx/base.html:58 msgid "Share link was not found." -msgstr "" +msgstr "Odkaz na zdielanie sa nenašiel." #: documents/templates/paperless-ngx/base.html:62 msgid "Share link has expired." -msgstr "" +msgstr "Odkaz na zdielanie vypršal." #: documents/templates/socialaccount/authentication_error.html:5 #: documents/templates/socialaccount/login.html:5 msgid "Paperless-ngx social account sign in" -msgstr "" +msgstr "Prihlásenie do Paperless-ngx pomocou účtu na sociálnej sieti" #: documents/templates/socialaccount/authentication_error.html:10 msgid "An error occurred while attempting to login via your social network account. Back to the" -msgstr "" +msgstr "Pri pokuse o prihlásenie prostredníctvom vášho účtu na sociálnej sieti sa vyskytla chyba. Späť na" #: documents/templates/socialaccount/authentication_error.html:10 msgid "login page" @@ -1873,7 +1894,7 @@ msgstr "prihlasovacia stránka" #: documents/templates/socialaccount/login.html:11 #, python-format msgid "You are about to connect a new third-party account from %(provider)s." -msgstr "" +msgstr "Chystáte sa pripojiť nový účet tretej strany od %(provider)s." #: documents/templates/socialaccount/login.html:15 msgid "Continue" @@ -1881,72 +1902,72 @@ msgstr "Pokračovať" #: documents/templates/socialaccount/signup.html:5 msgid "Paperless-ngx social account sign up" -msgstr "" +msgstr "Registrácia do Paperless-ngx pomocou účtu na sociálnej sieti" #: documents/templates/socialaccount/signup.html:11 #, python-format msgid "You are about to use your %(provider_name)s account to login." -msgstr "" +msgstr "Chystáte sa na prihlásenie použiť svoj účet %(provider_name)s." #: documents/templates/socialaccount/signup.html:13 msgid "As a final step, please complete the following form:" -msgstr "" +msgstr "Ako posledný krok vyplňte nasledujúci formulár:" #: documents/validators.py:24 #, python-brace-format msgid "Unable to parse URI {value}, missing scheme" -msgstr "" +msgstr "Nepodarilo sa analyzovať URI {value}, chýba schéma" #: documents/validators.py:29 #, python-brace-format msgid "Unable to parse URI {value}, missing net location or path" -msgstr "" +msgstr "Nepodarilo sa analyzovať URI {value}; chýba sieťové umiestnenie alebo cesta." #: documents/validators.py:36 msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}" -msgstr "" +msgstr "Schéma URI „{parts.scheme}“ nie je povolená. Povolené schémy: {', '.join(allowed_schemes)}" #: documents/validators.py:45 #, python-brace-format msgid "Unable to parse URI {value}" -msgstr "" +msgstr "Nepodarilo sa analyzovať URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" -msgstr "" +msgstr "Neplatné more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." -msgstr "" +msgstr "Neplatná konfigurácia umelej inteligencie." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." -msgstr "" +msgstr "Vypršal časový limit požiadavky na backend umelej inteligencie." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." -msgstr "" +msgstr "Backend umelej inteligencie zamietol požiadavku. Podrobnosti nájdete v záznamoch." -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." -msgstr "" +msgstr "Zadajte iba jednu z možností: text, title_search, query alebo more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." -msgstr "" +msgstr "Nedostatočné oprávnenia na zdieľanie dokumentu %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." -msgstr "" +msgstr "Balík sa už spracúva." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." -msgstr "" +msgstr "Balík odkazov na zdieľanie sa stále pripravuje. Skúste to znova neskôr." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." -msgstr "" +msgstr "Balík odkazov na zdieľanie nie je k dispozícii." #: paperless/apps.py:11 msgid "Paperless" @@ -2010,7 +2031,7 @@ msgstr "žiadny" #: paperless/models.py:70 msgid "LeaveColorUnchanged" -msgstr "" +msgstr "PonechaťFarbuNezmenenú" #: paperless/models.py:71 msgid "RGB" @@ -2018,7 +2039,7 @@ msgstr "RGB" #: paperless/models.py:72 msgid "UseDeviceIndependentColor" -msgstr "" +msgstr "UseDeviceIndependentColor" #: paperless/models.py:73 msgid "Gray" @@ -2030,19 +2051,19 @@ msgstr "CMYK" #: paperless/models.py:82 msgid "Azure AI Document Intelligence" -msgstr "" +msgstr "Inteligencia dokumentov s umelou inteligenciou v Azure" #: paperless/models.py:90 msgid "All supported documents" -msgstr "" +msgstr "Všetky podporované dokumenty" #: paperless/models.py:91 msgid "Only when a workflow enables it" -msgstr "" +msgstr "Len keď to pracovný postup umožňuje" #: paperless/models.py:95 paperless/models.py:105 msgid "OpenAI-compatible" -msgstr "" +msgstr "OpenAI-kompatibilný" #: paperless/models.py:96 msgid "Huggingface" @@ -2054,55 +2075,55 @@ msgstr "Ollama" #: paperless/models.py:115 msgid "Sets the output PDF type" -msgstr "" +msgstr "Nastaví typ PDF výstupu" #: paperless/models.py:127 msgid "Do OCR from page 1 to this value" -msgstr "" +msgstr "Spraviť OCR od strany 1 po túto hodnotu" #: paperless/models.py:133 msgid "Do OCR using these languages" -msgstr "" +msgstr "Spraviť OCR použitím týchto jazykov" #: paperless/models.py:140 msgid "Sets the OCR mode" -msgstr "" +msgstr "Nastaví OCR mód" #: paperless/models.py:148 msgid "Controls archive file generation" -msgstr "" +msgstr "Riadi vytváranie archívneho súboru" #: paperless/models.py:156 msgid "Sets image DPI fallback value" -msgstr "" +msgstr "Nastavuje náhradnú hodnotu DPI obrázka" #: paperless/models.py:163 msgid "Controls the unpaper cleaning" -msgstr "" +msgstr "Ovláda čistenie Unpaper" #: paperless/models.py:170 msgid "Enables deskew" -msgstr "" +msgstr "Povolí vyrovnanie sklonu" #: paperless/models.py:173 msgid "Enables page rotation" -msgstr "" +msgstr "Umožňuje otáčanie stránok" #: paperless/models.py:178 msgid "Sets the threshold for rotation of pages" -msgstr "" +msgstr "Nastaví prahovú hodnotu pre otáčanie stránok." #: paperless/models.py:184 msgid "Sets the maximum image size for decompression" -msgstr "" +msgstr "Nastaví maximálnu veľkosť obrázku na dekompresiu." #: paperless/models.py:190 msgid "Sets the Ghostscript color conversion strategy" -msgstr "" +msgstr "Nastaví stratégiu prevodu farieb pre Ghostscript" #: paperless/models.py:198 msgid "Adds additional user arguments for OCRMyPDF" -msgstr "" +msgstr "Pridáva ďalšie používateľské argumenty pre OCRMyPDF." #: paperless/models.py:207 msgid "Application title" @@ -2114,269 +2135,277 @@ msgstr "Logo aplikácie" #: paperless/models.py:229 msgid "Enables barcode scanning" -msgstr "" +msgstr "Povoliť skenovanie čiarových kódov" #: paperless/models.py:235 msgid "Enables barcode TIFF support" -msgstr "" +msgstr "Povoliť podporu čiarových kódov TIFF" #: paperless/models.py:241 msgid "Sets the barcode string" -msgstr "" +msgstr "Nastaví reťazec čiarového kódu" #: paperless/models.py:249 msgid "Retains split pages" -msgstr "" +msgstr "Zachováva rozdelené strany" #: paperless/models.py:255 msgid "Enables ASN barcode" -msgstr "" +msgstr "Povolí čiarový kód ASN" #: paperless/models.py:261 msgid "Sets the ASN barcode prefix" -msgstr "" +msgstr "Nastavuje predponu čiarového kódu ASN" #: paperless/models.py:269 msgid "Sets the barcode upscale factor" -msgstr "" +msgstr "Nastavuje faktor zväčšenia čiarového kódu" #: paperless/models.py:276 msgid "Sets the barcode DPI" -msgstr "" +msgstr "Nastavuje DPI čiarového kódu " #: paperless/models.py:283 msgid "Sets the maximum pages for barcode" -msgstr "" +msgstr "Nastavuje maximálny počet strán pre čiarový kód." #: paperless/models.py:290 msgid "Enables tag barcode" -msgstr "" +msgstr "Povolí štítok čiarového kódu" #: paperless/models.py:296 msgid "Sets the tag barcode mapping" -msgstr "" +msgstr "Nastavuje štítok mapovanie čiarového kódu" #: paperless/models.py:302 msgid "Enables splitting on tag barcodes" msgstr "Umožňuje rozdelenie na čiarových kódoch štítkov" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "Nastaví vzdialený OCR engine" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "Nastaví vzdialený OCR API kľúč " -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "Nastaví koncový bod vzdialeného OCR " -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "Nastaví, ktoré dokumenty sa odošlú do vzdialeného OCR enginu" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Povolí funkcie umelej inteligencie" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Nastaví backend pre vkladanie LLM" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Nastaví model vkladania LLM" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "Nastavuje API kľúč pre LLM vkladania" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Nastaví koncový bod vkladania LLM, voliteľné" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Nastaví veľkosť vkladacieho bloku LLM" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Nastaví veľkosť kontextu LLM" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Nastaví backend LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Nastaví model LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Nastaví LLM API kľúč" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Nastaví koncový bod LLM, voliteľné" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Nastaví výstupný jazyk LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Nastaví časový limit LLM v sekundách" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "nastavenia aplikácie paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Angličtina (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabčina" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikánčina" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Bieloruština" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulharčina" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Catalan" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Čeština" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Dánčina" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Nemčina" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Gréčtina" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Angličtina (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Španielčina" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Perzština" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finnish" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francúzština" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Maďarčina" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonézština" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Taliančina" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japončina" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Kórejčina" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburčina" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Nórčina" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holandčina" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polština" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugalčina (Brazília)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugalčina" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumunčina" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Ruština" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovenčina" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovinčina" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Srbčina" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Švédčina" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turečtina" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrainčina" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamčina" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Čínština (zjednodušená)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Čínština (tradičná)" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Administrácia Paperless-ngx" @@ -2626,7 +2655,7 @@ msgstr "filtrovať prílohy bez názvu súboru" #: paperless_mail/models.py:212 msgid "Do not consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." -msgstr "" +msgstr "Nespracúvajte dokumenty, ktoré sa presne zhodujú s týmto názvom súboru (ak je zadaný). Povolené sú zástupné znaky, ako napríklad *.pdf alebo *invoice*. Nerozlišujú sa veľké a malé písmená." #: paperless_mail/models.py:219 msgid "maximum age" diff --git a/src/locale/sl_SI/LC_MESSAGES/django.po b/src/locale/sl_SI/LC_MESSAGES/django.po index dc41fbed8..c0ff56fdc 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-19 12:26\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Slovenian\n" "Language: sl_SI\n" @@ -57,31 +57,31 @@ msgstr "Presežena je bila največja globina gnezdenja." msgid "Custom field not found" msgstr "Polja po meri ni bilo mogoče najti" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "lastnik" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Brez" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Katerakoli beseda" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Vse besede" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Točno ujemanje" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regularni izraz" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Zamegljena beseda" @@ -89,20 +89,20 @@ msgstr "Zamegljena beseda" msgid "Automatic" msgstr "Samodejno" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "ime" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "ujemanje" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritem ujemanja" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "brez razlikovanje velikosti črk" @@ -166,7 +166,7 @@ msgstr "poti shranjevanja" msgid "title" msgstr "naslov" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "vsebina" @@ -202,8 +202,8 @@ msgstr "število strani" msgid "The number of pages of the document." msgstr "Število strani dokumenta." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "ustvarjeno" @@ -267,1395 +267,1416 @@ msgstr "oznaka različice" msgid "Optional short label for a document version." msgstr "Neobvezna kratka oznaka za različico dokumenta." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumenti" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arhiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Banka" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Košarica" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Zvonec" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Zaznamek" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Škatle" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Aktovka" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Stavba" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "Kalkulator" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Koledar" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Kamera" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Kontrolni seznam" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Gotovina" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Klepet" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Preveri" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Odložišče" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Ura" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Kreditna kartica" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Prenos" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Ovojnica" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Opozorilo" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "Datoteka" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "Preverjena datoteka" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "Zaklenjena datoteka" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "Zdravstvena kartoteka" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "Osebna datoteka" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Preglednica" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Besedilna datoteka" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "Datoteke" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Mapa" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtriraj" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "Oprema" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "Globus" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "Zgoščena vrednost" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "Srce" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "Hiša" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "Nabiralnik" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "Dnevniki" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "Seznam opravil" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "Časopis" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "Priponka" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "Ljudje" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "Oseba" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "Tiskalnik" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "Račun" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "Varno" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "Iskanje" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "Pošlji" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "Trgovina" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "Sklad" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "Zvezde" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "Oznaka" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Oznake" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "Telefon" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "Tovornjak" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "Črtna koda" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "Denarnica" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabela" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Manjše kartice" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Večje kartice" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Naslov" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Ustvarjeno" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Dodano" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Dopisnik" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Vrsta dokumenta" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Pot do shrambe" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Opomba" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Lastnik" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Deljeno" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Strani" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "ikona" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "polje za razvrščanje" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "razvrsti obratno" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Velikost strani" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Način prikaza" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Prikaži polja dokumenta" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "shranjeni pogled" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "shranjeni pogledi" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "naslov vsebuje" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "vsebina vsebuje" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN je" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "dopisnik je" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "vrsta dokumenta je" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "je v prejetem" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "ima oznako" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "ima katero koli oznako" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "ustvarjeno pred" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "ustvarjeno po" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "leto nastanka" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "mesec nastanka" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dan nastanka" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "dodano pred" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "dodano po" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "spremenjeno pred" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "spremenjeno po" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "nima oznake" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "nima ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "naslov ali vsebina vsebujeta" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "polnobesedilna poizvedba" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "več podobnih" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "ima oznake" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN večje kot" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN manjši od" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "pot shranjevanja je" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "ima dopisnika v" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "nima dopisnika v" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "ima vrsto dokumenta v" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "nima vrste dokumenta v" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "ima pot za shranjevanje v" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nima poti za shranjevanje v" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "lastnik je" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "ima lastnika v" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "brez lastnika" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "nima lastnika v" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "vsebuje vrednost po meri" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "delim jaz" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "vsebuje polja po meri" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "vsebuje polje po meri v" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "ne vsebuje polja po meri v" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "ne vsebuje polja po meri" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "poizvedba polj po meri" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "ustvarjeno za" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "ustvarjeno iz" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "dodano k" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "dodano iz" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "tip mime je" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "preprosto iskanje po naslovu" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "preprosto iskanje po besedilu" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "ima dvojnike" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "vrsta pravila" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "vrednost" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "filtriraj pravilo" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "filtriraj pravila" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "V teku" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Začeto" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Uspešno" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Neuspešno" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Preklicano" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Porabi datoteko" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Klasifikator vlakov" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Preverjanje razumnosti" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimizacija indeksa" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Pridobi e-pošto" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "Kazalo LLM" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Izprazni smeti" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Preverite poteke dela" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Množična posodobitev" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Ponovno obdelaj dokument" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Zgradi povezavo za skupno rabo" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Množično brisanje" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "Uporabi predloge umetne inteligence" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Načrtovano" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Spletni uporabniški vmesnik" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "Nalaganje API-ja" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Poraba mape" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Poraba e-pošte" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Sistem" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Ročno" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID opravila" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "ID Celery opravila" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Vrsta naloge" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Vrsta dela, ki se opravlja" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Vir sprožilca" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Kaj je sprožilo to nalogo" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Stanje" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Končano" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Trajanje (sekunde)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Pretečeni čas od začetka do konca" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Čakalna doba (sekunde)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Čas od ustvarjanja naloge do prevzema delavca" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Vhodni podatki" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Strukturirani vhodni parametri za nalogo" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Podatki o rezultatu" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Strukturirani podatki o rezultatih izvajanja naloge" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Potrjeno" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Opravilo" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Opravila" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Opomba za dokument" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "uporabnik" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "opomba" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "zapiski" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Izvirnik" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "zapadlost" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "deli povezavo" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "deli povezave" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Obdelava" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Pripravljen" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Neuspešno" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "velikost (bajti)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "zadnja napaka" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "pot datoteke" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "zgrajeno" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "paket povezav za deljenje" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "paket povezav za deljenje" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Paket povezav za deljenje %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Niz (besedilo)" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Datum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Logična vrednost" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Celo število" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Ne celo število" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Denarno" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Povezava do dokumenta" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Izberi" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Dolgo besedilo" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "tip podatka" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dodatni podatki" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dodatni podatki za polje po meri, npr. opcije izbora" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "polje po meri" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "polja po meri" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "primer polja po meri" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "primeri polja po meri" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Obdelava pričeta" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument dodan" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument posodobljen" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Zajemalna mapa" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Api prenos" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Spremenjeno" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Polje po meri" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tip sprožilca procesa" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtriraj pot" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Če je določena, zajemi samo dokumente s potjo, ki se ujema s to. Dovoljeni so nadomestni znaki, določeni kot *. Ni občutljivo na velikost črk." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtriraj imena datotek" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtriraj dokumente iz tega e-poštnega pravila" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "vsebuje te oznake" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "ima vse te oznake" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "nima teh oznak" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "vsebuje tip dokumenta" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "ima eno od teh vrst dokumentov" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "nima teh vrst dokumentov" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "vsebuje dopisnika" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "nima teh dopisnikov" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "ima enega od teh dopisnikov" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "ima to pot shranjevanja" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "ima eno od teh poti shranjevanja" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "nima teh poti za shranjevanje" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtriranje polj po meri" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Izraz poizvedbe za polje po meri, kodiran v JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "dnevi izstopa v urniku" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Število dni, za katere naj se sproži sprožilec razporeda." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "urnik se ponavlja" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Če bi moral biti urnik ponavljajoč se." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "načrtujte ponavljajočo se zamudo v dnevih" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Število dni med ponavljajočimi se sprožilci razporeda." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "polje z datumom razporeda" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Polje za preverjanje sprožilca razporeda." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "polje po meri za datum razporeda" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "sprožilec procesa" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "sprožilci procesa" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "zadeva e-pošte" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Zadeva e-poštnega sporočila lahko vključuje nekaj nadomestnih besedil, glejte dokumentacijo." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "telo e-pošte" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Telo (sporočilo) e-pošte lahko vključuje nekaj nadomestnih besedil, glejte dokumentacijo." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-poštna sporočila za" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Ciljni e-poštni naslovi, ločeni z vejicami." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "vključi dokument v e-pošto" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "URL spletnega kavlja" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Ciljni URL za obvestilo." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "uporabite parametre" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "pošlji kot JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parametri spletnega kavlja" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametri, ki jih je treba poslati z URL-jem spletnega kavlja, če telo ni uporabljeno." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "telo spletnega kavlja" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Telo, ki ga je treba poslati z URL-jem spletnega kavlja, če parametri niso uporabljeni." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "glave spletnega kavlja" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Glave, ki jih je treba poslati z URL-jem spletnega kavlja." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "vključi dokument v spletni kavelj" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Dodelitev" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Odstranitev" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-pošta" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Spletni kavelj" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Odstranitev gesla" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Premakni v koš" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "Oddaljen OCR" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "Uporabite predloge umetne inteligence" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "Vrsta dokumenta" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "Pot shranjevanja" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "Datum nastanka" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Tip dejanja procesa" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "vrstni red" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "dodeli naslov" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Dodelite naslov dokumenta, mora biti predloga Jinja2, glejte dokumentacijo." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "dodeli to oznako" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "dodeli to vrsto dokumenta" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "dodeli tega dopisnika" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "dodeli to pot shranjevanja" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "določi tega lastnika" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "tem uporabnikom podeli dovoljenje za ogled" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "tem skupinam podeli dovoljenje za ogled" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "tem uporabnikom podeli dovoljenje za spreminjanje" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "tem skupinam podeli dovoljenje za spreminjanje" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "dodeli ta polja po meri" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "vrednosti polj po meri" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Neobvezne vrednosti, ki jih je treba dodeliti poljem po meri." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "odstrani te oznake" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "odstrani vse oznake" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "odstrani te vrste dokumentov" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "odstrani vse vrste dokumentov" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "odstrani te dopisnike" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "odstrani vse dopisnike" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "odstrani te poti do shrambe" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "odstrani vse poti do shrambe" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "odstrani te lastnike" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "odstrani vse lastnike" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "odstrani dovoljenja za ogled tem uporabnikom" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "odstrani dovoljenja za ogled tem skupinam" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "odstrani dovoljenja za spreminjanje tem uporabnikom" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "odstrani dovoljenja za spreminjanje tem skupinam" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "odstrani vsa dovoljenja" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "odstrani ta polja po meri" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "odstrani vsa polja po meri" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-pošta" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "spletni kavelj" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "gesla" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Gesla, ki jih je treba poskusiti uporabiti pri odstranjevanju zaščite PDF-jev. Ločite jih z vejicami ali novimi vrsticami." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "Polja za predloge umetne inteligence" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "Katero od polj, ki jih predlaga umetna inteligenca, uporabiti za dokument." -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "ustvari manjkajoče predmete" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "Ustvarite predlagane oznake, korespondence, vrste dokumentov in poti shranjevanja, ki še ne obstajajo, namesto da jih preskočite." -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "prepiši obstoječe vrednosti" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "Uporabite predloge, tudi če dokument že ima vrednost za to polje. Oznake se vedno dodajo, nikoli ne nadomestijo." -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "dejanje procesa" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "dejanja procesa" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "sprožilci" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "dejanja" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "omogočeno" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "potek dela" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "vrsta sprožilca poteka dela" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "datum poteka" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "izvajanje poteka dela" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "poteka dela" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Nezadostna dovoljenja." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Napačna barva." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Vrsta datoteke %(type)s ni podprta" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "ID polja po meri mora biti celo število: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Polje po meri z ID-jem %(id)s ne obstaja" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Polja po meri morajo biti seznam celih števil ali objekt, ki preslika ID-je v vrednosti." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Nekatera polja po meri ne obstajajo ali pa so bila navedena dvakrat." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Zaznani neveljavni znaki." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Podvojeni identifikatorji dokumentov niso dovoljeni." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dokumentov ni bilo mogoče najti: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "Shema URI '{parts.scheme}' ni dovoljena. Dovoljene sheme: {', '.join(all msgid "Unable to parse URI {value}" msgstr "Ni mogoče razčleniti URI-ja {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Neveljaven more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Neveljavna konfiguracija umetne inteligence." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "Časovna omejitev zahteve za umetno inteligenco je potekla." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "Zaledni sistem umetne inteligence je zavrnil zahtevo. Za podrobnosti preverite dnevnike." -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Navedite samo eno od naslednjih vrednosti: text, title_search, query ali more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Nezadostna dovoljenja za skupno rabo dokumenta %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paket se že obdeluje." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Paket povezav za deljenje je še vedno v pripravi. Poskusite znova pozneje." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Paket povezav za deljenje ni na voljo." @@ -2160,223 +2181,231 @@ msgstr "Nastavi preslikavo črtne kode oznake" msgid "Enables splitting on tag barcodes" msgstr "Omogoča razdelitev na črtne kode oznak" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "Nastavi oddaljeni OCR mehanizem" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "Nastavi oddaljeni ključ API-ja za OCR" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "Nastavi oddaljeno končno točko OCR" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "Določi, kateri dokumenti se pošljejo oddaljenemu mehanizmu OCR" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Omogoča funkcije umetne inteligence" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Nastavi zaledni del vdelave LLM" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Nastavi model vdelave LLM" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "Nastavi ključ API za vdelave LLM" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Nastavi končno točko vdelave LLM, neobvezno" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Nastavi velikost vdelanega bloka LLM" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Nastavi velikost konteksta LLM" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Nastavi zaledni sistem LLM" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Določa model LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Nastavi ključ LLM API" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Nastavi končno točko LLM, neobvezno" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Nastavi izhodni jezik LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Nastavi časovno omejitev LLM v sekundah" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "aplikacijske nastavitve paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Angleščina (ZDA)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabščina" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikanščina" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Beloruščina" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bolgarščina" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalonščina" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Češčina" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danščina" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Nemščina" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grščina" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Angleščina (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Španščina" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Perzijščina" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finščina" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francoščina" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Madžarščina" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonezijščina" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italijanščina" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "japonščina" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Korejščina" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luksemburški" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norveščina" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Nizozemščina" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Poljščina" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugalščina (Brazilija)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugalščina" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Romunščina" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Ruščina" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovaščina" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovenščina" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Srbščina" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Švedščina" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turščina" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrajinščina" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamščina" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Poenostavljena kitajščina" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Tradicionalna kitajščina" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administracija" diff --git a/src/locale/sq_AL/LC_MESSAGES/django.po b/src/locale/sq_AL/LC_MESSAGES/django.po index d52c0ba4c..98407ef36 100644 --- a/src/locale/sq_AL/LC_MESSAGES/django.po +++ b/src/locale/sq_AL/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Albanian\n" "Language: sq_AL\n" @@ -57,31 +57,31 @@ msgstr "Është tejkaluar thellësia maksimale e ndërfutjes." msgid "Custom field not found" msgstr "Fusha e personalizuar nuk u gjet" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "pronari" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Asgjë" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Çdo fjalë" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Të gjitha fjalët" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Përputhje e saktë" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Shprehje e rregullt" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Fjalë e përafërt" @@ -89,20 +89,20 @@ msgstr "Fjalë e përafërt" msgid "Automatic" msgstr "Automatike" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "emri" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "përputhje" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritmi i përputhjes" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "është pa dallim shkronjash" @@ -166,7 +166,7 @@ msgstr "shtigjet e ruajtjes" msgid "title" msgstr "titulli" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "përmbajtja" @@ -202,8 +202,8 @@ msgstr "numri i faqeve" msgid "The number of pages of the document." msgstr "Numri i faqeve të dokumentit." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "krijuar" @@ -267,1395 +267,1416 @@ msgstr "etiketa e versionit" msgid "Optional short label for a document version." msgstr "Etiketë e shkurtër opsionale për një version dokumenti." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokumenti" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumentet" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arkiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtër" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Etiketat" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabelë" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Karta të vogla" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Karta të mëdha" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titulli" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Krijuar" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Shtuar" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korrespondenti" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Lloji i dokumentit" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Shtegu i ruajtjes" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Shënim" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Pronari" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "I ndarë" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "[SQ] ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Faqet" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "fusha e renditjes" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "renditje e kundërt" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Madhësia e faqes së pamjes" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Mënyra e shfaqjes së pamjes" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Fushat e shfaqjes së dokumentit" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "pamje e ruajtur" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "pamje të ruajtura" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "titulli përmban" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "përmbajtja përmban" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN është" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korrespondenti është" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "lloji i dokumentit është" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "është në kutinë hyrëse" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "ka etiketë" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "ka ndonjë etiketë" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "krijuar para" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "krijuar pas" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "viti i krijimit është" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "muaji i krijimit është" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dita e krijimit është" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "më parë shtuar" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "shtuar pas" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "ndryshuar para" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "ndryshuar pas" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "nuk ka etiketë" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "nuk ka ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "përmban titull ose përmbajtje" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "kërkim në tekst të plotë" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "më shumë si kjo" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "ka etiketa në" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN më i madh se" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN më i vogël se" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "shtegu i ruajtjes është" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "ka korrespondent në" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "nuk ka korrespondent në" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "ka lloj dokumenti në" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "nuk ka lloj dokumenti në" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "ka shteg ruajtjeje në" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nuk ka rrugë ruajtjeje" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "pronari është" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "ka pronar në" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "nuk ka pronar" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "nuk ka pronar në" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "ka vlerë fushe të personalizuar" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "është ndarë nga unë" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "ka fusha të personalizuara" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "ka fushë të personalizuar në" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "nuk ka fushë të personalizuar në" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "nuk ka fushë të personalizuar" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "kërkim i fushave të personalizuara" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "krijuar deri më" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "krijuar nga" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "shtuar deri më" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "shtuar nga" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "lloji MIME është" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "kërkim i thjeshtë titulli" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "kërkim i thjeshtë teksti" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "lloji i rregullit" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "vlera" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "rregull filtri" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "rregulla filtri" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Në pritje" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Filluar" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Sukses" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Dështim" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Revokuar" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Konsumo skedarin" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Trajno klasifikuesin" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Kontroll logjik" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimizim indeksi" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Marrje email-i" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "Indeks LLM" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Zbraz koshin" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Kontrollo rrjedhat e punës" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Përditësim në masë" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Ripërpuno dokumentin" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Ndarja e krijimit të lidhjes" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Fshirje në masë" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Planifikuar" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Ndërfaqja web" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "Ngarkim API" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Konsum nga dosja" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Konsum nga email-i" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Sistemi" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Manuale" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID e detyrës" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "ID e detyrës Celery" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Lloji i detyrës" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Lloji i punës që po kryhet" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Burimi i nisjes" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Çfarë e nisi këtë detyrë" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Statusi" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Përfunduar" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Kohëzgjatja (sekonda)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Koha e kaluar nga fillimi deri në përfundim" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Koha e pritjes (sekonda)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Koha nga krijimi i detyrës deri te marrja nga punëtori" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Të dhënat hyrëse" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Parametra hyrës të strukturuar për detyrën" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Të dhënat e rezultatit" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Të dhëna të strukturuara të rezultatit nga ekzekutimi i detyrës" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Pranuar" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Detyrë" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Detyrat" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Shënim për dokumentin" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "përdoruesi" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "shënim" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "shënime" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Origjinal" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "skadimi" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "[SQ] slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "lidhje ndarjeje" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "lidhje ndarjeje" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Në përpunim" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Gati" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Dështoi" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "madhësia (bajt)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "gabimi i fundit" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "shtegu i skedarit" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "ndërtuar më" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "paketë lidhjeje ndarjeje" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "paketa lidhjesh ndarjeje" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Paketa e lidhjes së ndarjes %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Varg" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "[SQ] URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Datë" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "[SQ] Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Numër i plotë" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Numër dhjetor" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetar" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Lidhje dokumenti" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Përzgjedhje" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Tekst i gjatë" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "lloji i të dhënave" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "të dhëna shtesë" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Të dhëna shtesë për fushën e personalizuar, si opsionet e përzgjedhjes" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "fushë e personalizuar" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "fusha të personalizuara" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instancë fushe të personalizuar" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instanca fushash të personalizuara" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Konsumi filloi" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokumenti u shtua" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokumenti u përditësua" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Konsumo dosjen" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Ngarkim API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Ndryshuar" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Fusha e personalizuar" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Lloji i nisësit të rrjedhës së punës" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtro shtegun" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Konsumo vetëm dokumentet me shteg që përputhet me këtë, nëse është specifikuar. Lejohen shenja të përgjithshme si *. Pa dallim shkronjash." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtro emrin e skedarit" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Konsumo vetëm dokumentet që përputhen plotësisht me këtë emër skedari, nëse është specifikuar. Lejohen shenja të përgjithshme si *.pdf ose *invoice*. Pa dallim shkronjash." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtro dokumentet nga ky rregull email-i" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "ka këto etiketë(a)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "i ka të gjitha këto tag(s)" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "nuk ka këto etiketë(a)" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "ka këtë lloj dokumenti" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "ka një nga këto lloje dokumentesh" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "nuk ka këto lloj(e) dokumentesh" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "ka këtë korrespondent" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "nuk ka këta korrespondentë" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "ka një nga këta korrespondentë" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "ka këtë shteg ruajtjeje" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "ka një nga këto shtigje ruajtjeje" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "nuk ka këto shtegje ruajtjeje" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtro kërkimin e fushës së personalizuar" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Shprehje kërkimi e fushës së personalizuar e koduar si JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "ditët e zhvendosjes së orarit" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Numri i ditëve me të cilat zhvendoset nisësi i orarit." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "orari është i përsëritur" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Nëse orari duhet të përsëritet." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "vonesa e përsëritjes së orarit në ditë" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Numri i ditëve midis nisjeve të përsëritura të orarit." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "fusha e datës së orarit" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Fusha që kontrollohet për një nisës orari." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "fushë e personalizuar date për orarin" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "nisës rrjedhe pune" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "nisës rrjedhash pune" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "subjekti i email-it" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Subjekti i email-it, mund të përfshijë disa vendmbajtëse; shih dokumentacionin." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "trupi i email-it" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Trupi (mesazhi) i email-it, mund të përfshijë disa vendmbajtëse; shih dokumentacionin." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "email-et për" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Adresat email të destinacionit, të ndara me presje." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "përfshi dokumentin në email" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "URL e webhook-ut" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "URL-ja e destinacionit për njoftimin." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "përdor parametrat" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "dërgo si JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parametrat e webhook-ut" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametrat që dërgohen me URL-në e webhook-ut nëse nuk përdoret trupi." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "trupi i webhook-ut" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Trupi që dërgohet me URL-në e webhook-ut nëse nuk përdoren parametrat." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "kokat e webhook-ut" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Kokat që dërgohen me URL-në e webhook-ut." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "përfshi dokumentin në webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Caktim" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Heqje" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "[SQ] Email" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Heqje fjalëkalimi" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Zhvendos në kosh" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Lloji i veprimit të rrjedhës së punës" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "renditja" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "cakto titullin" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Cakto një titull dokumenti; duhet të jetë shabllon Jinja2, shih dokumentacionin." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "cakto këtë etiketë" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "cakto këtë lloj dokumenti" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "cakto këtë korrespondent" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "cakto këtë shteg ruajtjeje" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "cakto këtë pronar" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "jep leje shikimi këtyre përdoruesve" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "jepni leje shikimi këtyre grupeve" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "jep leje ndryshimi këtyre përdoruesve" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "jep leje ndryshimi këtyre grupeve" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "cakto këto fusha të personalizuara" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "vlerat e fushave të personalizuara" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Vlera opsionale për t'u caktuar fushave të personalizuara." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "hiq këto etiketë(a)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "hiq të gjitha etiketat" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "hiq këto lloj(e) dokumentesh" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "hiq të gjitha llojet e dokumenteve" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "hiq këta korrespondentë" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "hiq të gjithë korrespondentët" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "hiq këto shtigje ruajtjeje" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "hiq të gjitha shtigjet e ruajtjes" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "hiq këta pronarë" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "hiq të gjithë pronarët" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "hiq lejet e shikimit për këta përdorues" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "hiq lejet e shikimit për këto grupe" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "hiq lejet e ndryshimit për këta përdorues" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "hiq lejet e ndryshimit për këto grupe" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "hiq të gjitha lejet" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "hiq këto fusha të personalizuara" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "hiq të gjitha fushat e personalizuara" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "email" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "fjalëkalimet" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Fjalëkalimet që provohen gjatë heqjes së mbrojtjes PDF. Ndaji me presje ose rreshta të rinj." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "veprim rrjedhe pune" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "veprime rrjedhe pune" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "veprimet" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "aktivizuar" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "rrjedhë pune" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "lloji i nisësit të rrjedhës së punës" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "data e ekzekutimit" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "ekzekutim rrjedhe pune" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "ekzekutime rrjedhash pune" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Leje të pamjaftueshme." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Ngjyrë e pavlefshme." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Lloji i skedarit %(type)s nuk mbështetet" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "ID-ja e fushës së personalizuar duhet të jetë numër i plotë: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Fusha e personalizuar me ID %(id)s nuk ekziston" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Disa fusha të personalizuara nuk ekzistojnë ose janë specifikuar dy herë." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "U zbulua variabël e pavlefshme." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Identifikuesit dublikatë të dokumenteve nuk lejohen." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dokumentet nuk u gjetën: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Konfigurim AI i pavlefshëm." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Leje të pamjaftueshme për të ndarë dokumentin %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paketa po përpunohet tashmë." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Paketa e lidhjes së ndarjes ende po përgatitet. Ju lutemi provoni përsëri më vonë." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Paketa e lidhjes së ndarjes nuk është e disponueshme." @@ -2160,223 +2181,231 @@ msgstr "Përcakton lidhjen midis etiketës dhe barkodit" msgid "Enables splitting on tag barcodes" msgstr "Mundëson ndarjen bazuar në barkodet e etiketave" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Aktivizon veçoritë AI" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Cakton madhësinë e kontekstit LLM" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Cakton modelin LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Cakton çelësin API të LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Cakton gjuhën dalëse të LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Cakton kohën limit të LLM në sekonda" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Anglisht (SHBA)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabisht" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Bjellorusisht" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bullgarisht" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Çekisht" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danisht" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Gjermanisht" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Greqisht" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Anglisht (MB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spanjisht" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persisht" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finlandisht" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Frëngjisht" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Hungarisht" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italisht" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japonisht" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Koreane" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luksemburgisht" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norvegjeze" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holandisht" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polonisht" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugeze (Brazili)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugalisht" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumanisht" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Rusisht" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Sllovakisht" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Sllovenisht" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbisht" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Suedisht" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turqisht" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamisht" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Kinezisht e thjeshtuar" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Kinezisht tradicionale" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx Administration" diff --git a/src/locale/sr_CS/LC_MESSAGES/django.po b/src/locale/sr_CS/LC_MESSAGES/django.po index acc5ecc8e..bd94fe2e7 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Serbian (Latin)\n" "Language: sr_CS\n" @@ -57,31 +57,31 @@ msgstr "Premašena je maksimalna dubina grananja." msgid "Custom field not found" msgstr "Nije pronađeno prilagođeno polje" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "vlasnik" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Nijedan" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Bilo koja reč" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Sve reči" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Tačno podudaranje" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regularni izraz" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Neodređena reč" @@ -89,20 +89,20 @@ msgstr "Neodređena reč" msgid "Automatic" msgstr "Automatski" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "naziv" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "poklapanje" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "algoritam podudaranja" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "bez razlike veliko/malo slovo" @@ -166,7 +166,7 @@ msgstr "putanja skladišta" msgid "title" msgstr "naslov" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "sadržaj" @@ -202,8 +202,8 @@ msgstr "broj strana" msgid "The number of pages of the document." msgstr "Broj stranica dokumenta." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "kreirano" @@ -267,1395 +267,1416 @@ msgstr "oznaka verzije" msgid "Optional short label for a document version." msgstr "Opcionalna kratka oznaka za verziju dokumenta." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokumenta" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arhiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Korpa" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Oznake" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabela" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Male kartice" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Velike kartice" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Naslov" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Kreirano" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Dodato" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Tip dokumenta" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Putanje skladišta" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Beleška" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Vlasnik" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Deljeno" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Stranice" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "polje za sortiranje" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "obrnuto sortiranje" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Veličinа stranice za prikaz" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Režim prikaza" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Polja prikaza dokumenta" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "sačuvani prikaz" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "sačuvani prikazi" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "naslov sadrži" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "sadržaj sadrži" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN je" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korespondent je" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "tip dokumenta je" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "je u prijemnog sandučetu" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "ima oznaku" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "ima bilo koju oznaku" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "kreiran pre" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "kreiran posle" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "godina kreiranja je" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "mesec kreiranja je" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "dan kreiranja je" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "dodat pre" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "dodat posle" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "izmenjen pre" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "izmenjen posle" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "nema oznaku" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "nema ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "naslov i sadržaj sadrži" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "upit za ceo tekst" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "više ovakvih" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "ima oznake u" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN veći od" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN manji od" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "putanja skladišta je" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "postoji korespondent" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "ne postoji korespondent" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "postoji tip dokumenta" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "ne postoji tip dokumenta u" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "ima putanju skladišta u" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "nema putanju skladišta u" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "vlasnik je" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "ima vlasnika u" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "nema vlasnika" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "nema vlasnika u" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "ima vrednost prilagođenog polja" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "deljeno je od mene" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "ima prilagođena polja" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "ima prilagođeno polje u" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "nema prilagođeno polje u" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "nema prilagođeno polje" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "upit za prilagođena polja" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "kreirano za" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "kreirano od" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "dodato za" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "dodato od" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "vrsta višenamenske ekstenzije za mejl (mime type)" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "jednostavna pretraga naslova" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "jednostavna pretraga teksta" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "tip pravila" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "vrednost" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "pravilo filtriranja" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "pravila filtriranja" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Na čekanju" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Pokrenuto" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Uspešno" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Neuspešno" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Opozvano" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Obradi fajl" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Treniraj klasifikator" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Proveri ispravnost" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Optimizuj indeks" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Preuzimanje imejla" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM Indeks" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Isprazni Otpad" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Proverite tokove rada" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Masovno ažuriranje" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Ponovna obrada dokumenta" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Napravi link za deljenje" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Masovno brisanje" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Zakazano" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Veb korisnički interfejs" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API otpremanje" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Konzumiranje fascikle" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Potrošnja imejlova" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Sistem" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Ručno" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID Zadatka" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "ID zadatka za celer" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Vrsta zadatka" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Vrsta posla koji se obavlja" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Izvor okidača" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Šta je pokrenulo ovaj zadatak" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Status" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Završeno" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Trajanje (sekunde)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Proteklo vreme od početka do završetka" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Vreme čekanja (sekunde)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Vreme od kreiranja zadatka do preuzimanja radnika" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Ulazni podaci" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Strukturirani ulazni parametri za zadatak" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Podaci o rezultatu" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Strukturirani podaci o rezultatima izvršenja zadatka" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Potvrđeno" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Zadatak" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Zadaci" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Napomena za dokument" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "korisnik" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "napomena" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "beleške" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Originalni" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "istek" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "kratki naziv" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "deljeni link" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "deljeni linkovi" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Obrada" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Spremno" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Neuspešno" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "veličina (bajtovi)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "poslednja greška" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "putanja datoteke" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "izgrađeno u" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "paket linkova za deljenje" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "deljenje paketa linkova" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Deljenje paketa linkova %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "String" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Datum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Logičko" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Ceo broj" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Float" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetarno" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Link dokumenta" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Odaberi" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Dugi tekst" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "tip podataka" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dodatni podaci" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dodatni podaci za prilagođeno polje, kao što su opcije selekcije" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "prilagođeno polje" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "dodatna polja" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "instanca prilagođenog polja" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "instance prilagođenog polja" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Obrada je započela" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument dodat" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument ažuriran" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Folder za obradu" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Postavljanje putem API-ja" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Izmenjeno" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Prilagođeno polje" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Tip okidača radnog toka" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtriraj putanju" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Samo obrađivati dokumenta čija putanja odgovara ovome ako je navedeno. Znakovi u vidu * su dopušteni. Neosetljivo je na mala i mala slova." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtriraj ime fajla" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Obraditi 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtriraj dokumenta prema ovom pravilu za imejl" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "poseduje ove tagove" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "ima sve ove oznake" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "nema ove oznake" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "poseduje ovaj tip dokumenta" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "ima jedan od ovih tipova dokumenata" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "nema ove tipove dokumenata" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "poseduje ovog korespondenta" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "nema ove dopisnike" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "ima jednog od ovih dopisnika" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "ima ovu putanju za skladištenje" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "ima jednu od ovih putanja za skladištenje" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "nema ove putanje za skladištenje" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtriranje prilagođenog polja upita" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON-kodirani izraz upita za prilagođeno polje." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "dani za pomeranje rasporeda" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Broj dana za pomeranje zakazanog okidača." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "raspored je ponavljajući" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Ukoliko raspored treba da bude ponavljajući." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "kašnjenje ponavljanja rasporeda u danima" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Broj dana između ponavljajućih zakazanih okidača." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "polje za datum rasporeda" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Polje za proveru zakazanog okidača." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "prilagođeno polje za datum rasporeda" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "okidač radnog toka" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "okidači radnog toka" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "naslov imejla" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Naslov imejla može sadržati rezervisana mesta, pogledajte dokumentaciju." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "telo imejla" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Telo (poruka) imejla može sadržati rezervisana mesta, pogledajte dokumentaciju." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "imejl adrese primaoca" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Odredišne imejl adrese, odvojene zarezima." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "uključi dokument u imejl" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url webhook-a" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Odredišni URL za obaveštenje." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "koristi parametre" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "pošalji kao JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "parametri webhook-a" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametri za slanje sa URL-om webhook-a ukoliko telo nije korišćeno." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "telo webhook-a" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Telo za slanje sa URL-om webhook-a ukoliko parametri nisu korišćeni." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "zaglavlje webhook-a" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Zaglavlja za slanje sa URL-om webhook-a." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "uključi dokument u webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Dodeljivanje" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Uklanjanje" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Imejl" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Veb zakačka" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Uklanjanje lozinke" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Premesti u otpad" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Tip akcije radnog toka" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "raspored" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "dodeli naslov" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Dodelite naslov dokumenta, mora biti Jinja2 šablon, pogledajte dokumentaciju." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "dodeli ovu oznaku" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "dodeli ovaj tip dokumenta" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "dodeli ovog korespondenta" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "dodeli ovu putanju za skladištenje" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "dodeli ovog vlasnika" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "dodeli pravo pregleda svim korisnicima" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "dodeli pravo pregleda ovim grupama" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "dodeli pravo promene ovim korisnicima" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "dodeli pravo promene ovim grupama" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "dodeli ova prilagođena polja" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "prilagođene vrednosti polja" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Opcione vrednosti za dodelu za prilagođena polja." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "ukloni ove oznake" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "ukloni sve oznake" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "ukloni ove tipove dokumenta" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "ukloni sve tipove dokumenta" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "ukloni ove korespondente" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "ukloni sve korespondente" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "ukloni ove putanje za skladištenje" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "ukloni sve putanje za skladištenje" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "ukloni ove vlasnike" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "ukloni sve vlasnike" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "ukloni pravo pregleda za ove korisnike" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "ukloni pravo pregleda za ove grupe" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "ukloni prava promene za ove korisnike" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "ukloni prava promene za ove grupe" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "ukloni sva prava promene" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "ukloni ova prilagođena polja" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "ukloni sva prilagođena polja" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "imejl" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "veb zakačka" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "lozinke" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Lozinke koje treba isprobati prilikom uklanjanja zaštite PDF-a. Odvojite ih zarezima ili novim redovima." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "akcija radnog toka" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "akcije radnog toka" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "okidači" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "akcije" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "omogućeno" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "radni tok" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "tip okidača radnog toka" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "datum pokretanja" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "pokretanje radnog toka" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "pokretanje tokova rada" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Nedovoljne dozvole." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Nevažeća boja." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Vrsta datoteke %(type)s nije podržana" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "ID prilagođenog polja mora biti ceo broj: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Prilagođeno polje sa ID-em %(id)s ne postoji" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Prilagođena polja moraju biti lista celih brojeva ili objekat koji mapira identifikatore na vrednosti." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Neka prilagođena polja ne postoje ili su navedena dva puta." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Otkrivena je nevažeća promenljiva." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Duplirani identifikatori dokumenata nisu dozvoljeni." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dokumenti nisu pronađeni: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "Šema URI-ja '{parts.scheme}' nije dozvoljena. Dozvoljene šeme {', '.jo msgid "Unable to parse URI {value}" msgstr "Nije moguće analizirati URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Nevažeći more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Nevažeća konfiguracija veštačke inteligencije." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Navedite samo jedno od sledećeg: text, title_search, query ili more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Nedovoljne dozvole za deljenje dokumenta %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paket se već obrađuje." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Paket linkova za deljenje se još uvek priprema. Molimo pokušajte ponovo kasnije." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Paket linkova za deljenje nije dostupan." @@ -2160,223 +2181,231 @@ msgstr "Postavlja mapiranje barkoda oznake" msgid "Enables splitting on tag barcodes" msgstr "Omogućava podelu na barkodovima oznaka" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Omogućava veštačku inteligenciju" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Postavlja LLM bekend za ugrađivanje" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Postavlja LLM model ugrađivanja" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Postavlja LLM bekend" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Postavlja LLM model" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Postavlja LLM API ključ" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Postavlja krajnju tačku LLM-a, opciono" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "podešavanje paperless aplikacije" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Engleski (US)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arapski" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrički" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Beloruski" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bugarski" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalonski" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Češki" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danski" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Nemački" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grčki" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Engleski (UK)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Španski" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persijski" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finski" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Francuski" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Mađarski" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonežanski" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italijanski" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japanski" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Korejski" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luksemburški" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norveški" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holandski" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Poljski" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugalski (Brazil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugalski" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumunski" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Ruski" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovački" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovenački" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Srpski" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Švedski" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turski" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrajinski" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vijetnamski" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Kineski pojednostavljen" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Tradicionalni kineski" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx administracija" diff --git a/src/locale/sv_SE/LC_MESSAGES/django.po b/src/locale/sv_SE/LC_MESSAGES/django.po index c2048a49f..fc4cdd703 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-20 12:26\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -57,31 +57,31 @@ msgstr "Maximalt antal nästlade nivåer överskrids." msgid "Custom field not found" msgstr "Anpassat fält hittades inte" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "ägare" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Ingen" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Valfritt ord" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Alla ord" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Exakt matchning" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Reguljära uttryck" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Ungefärligt ord" @@ -89,20 +89,20 @@ msgstr "Ungefärligt ord" msgid "Automatic" msgstr "Automatisk" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "namn" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "träff" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "matchande algoritm" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "är ej skiftlägeskänsligt" @@ -166,7 +166,7 @@ msgstr "sökvägar för lagring" msgid "title" msgstr "titel" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "innehåll" @@ -202,8 +202,8 @@ msgstr "antal sidor" msgid "The number of pages of the document." msgstr "Antal sidor i dokumentet." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "skapad" @@ -267,1395 +267,1416 @@ msgstr "versionsetikett" msgid "Optional short label for a document version." msgstr "Valfri kort etikett för en dokumentversion." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "dokument" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "dokument" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arkiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Bank" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Korg" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Ringklocka" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Bokmärke" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Lådor" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Portfölj" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Byggnad" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "Kalkylator" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Kalender" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Kamera" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Checklista" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Kontanter" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Chatt" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Bock" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Urklipp" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Klocka" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Kreditkort" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "Ladda ner" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Kuvert" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Varning" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "Fil" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "Markerad fil" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "Låst fil" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "Medicinsk fil" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "Personfil" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Kalkylblad" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Textfil" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "Filer" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Mapp" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filter" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "Kugghjul" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "Jordglob" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "Nummertecken" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "Hjärta" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "Hus" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "Inkorg" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "Journaler" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "Uppgiftslista" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "Tidning" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "Bilaga" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "Personer" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "Person" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "Skrivare" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "Kvitto" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "Kassaskåp" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "Sök" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "Skicka" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "Butik" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "Stapel" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "Stjärnor" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "Tagg" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Taggar" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "Telefon" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "Lastbil" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "Streckkod" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "Plånbok" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tabell" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Små kort" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Stora kort" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Titel" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Skapad" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Tillagd" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Korrespondent" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Dokumenttyp" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Sökväg för lagring" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Anteckning" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Ägare" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Delad" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Sidor" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "ikon" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "sortera fält" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "sortera omvänt" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Visa sidstorlek" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Visa visningsläge" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Dokumentets visningsfält" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "sparad vy" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "sparade vyer" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "titel innehåller" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "innehåll innehåller" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN är" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "korrespondent är" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "dokumenttyp är" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "är i inkorgen" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "har etikett" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "har någon etikett" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "skapad före" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "skapad efter" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "skapat år är" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "skapad månad är" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "skapad dag är" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "tillagd före" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "tillagd efter" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "ändrad före" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "ändrad efter" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "har inte etikett" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "har inte ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "titel eller innehåll innehåller" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "fulltextfråga" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "mer som detta" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "har taggar i" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN större än" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN mindre än" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "sökväg till lagring är" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "har korrespondent i" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "har inte korrespondent i" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "har dokumenttyp i" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "har inte dokumenttyp i" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "har sökväg till lagring i" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "har inte sökväg till lagring i" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "ägare är" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "har ägare i" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "har inte ägare" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "har inte ägare i" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "har anpassat fältvärde" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "delas av mig" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "har anpassade fält" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "har anpassade fält i" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "har inte anpassade fält i" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "har inte anpassat fält" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "anpassade fält-fråga" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "skapat till" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "skapad från" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "tillagd till" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "tillagd från" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "MIME-typ är" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "enkel titelsökning" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "enkel textsökning" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "har dubbletter" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "regeltyp" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "värde" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "filtrera regel" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "filtrera regler" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Väntar" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Startad" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Lyckades" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Misslyckades" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "Återkallad" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Konsumera fil" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Träna klassificerare" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Rimlighetskontroll" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Indexoptimering" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Hämta e-post" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM-index" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Töm papperskorgen" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "Kontrollera arbetsflöden" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Massuppdatering" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Bearbeta dokument igen" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Bygg delningslänk" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Massborttagning" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "Tillämpa AI-förslag" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Schemalagd" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Web UI" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API-uppladdning" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Import från mapp" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "Import från e-post" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "System" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Handbok" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Uppgifts-ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "Celery-uppgifts-ID" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Uppgiftstyp" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Typ av arbete som utförs" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Utlösarkälla" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Vad som startade uppgiften" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Status" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Slutförd" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Varaktighet (sekunder)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Förfluten tid från början till slut" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Väntetid (sekunder)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Tid från att uppgiften skapades tills en arbetsprocess hämtade den" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Inmatningsdata" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Strukturerade indataparametrar för uppgiften" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Resultatdata" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Strukturerad resultatdata från uppgiftsutförande" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Bekräftad" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Uppgift" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Uppgifter" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Anteckning för dokumentet" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "användare" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "anteckning" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "anteckningar" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Original" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "utgångsdatum" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "permalänk" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "dela länk" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "dela länkar" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Bearbetar" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Klar" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Misslyckades" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "storlek (bytes)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "senaste fel" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "filväg" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "skapad den" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "delningslänkpaket" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "delningslänkpaket" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Delningslänkpaket %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Sträng" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Datum" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Booleskt värde" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Heltal" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Flyttal" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Monetär" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Dokumentlänk" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Välj" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Lång text" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "datatyp" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "ytterligare data" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Ytterligare data för det anpassade fältet, till exempel valalternativ" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "anpassat fält" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "anpassade fält" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "anpassad fältinstans" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "anpassade fältinstanser" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Konsumtion påbörjad" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Dokument tillagt" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Dokument uppdaterat" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Förbruka mapp" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API-uppladdning" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Ändrad" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Anpassat fält" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Typ av arbetsflödesutlösare" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtrera efter sökväg" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Importera endast dokument vars sökväg matchar detta värde, om det har angetts. Jokertecknet * tillåts. Inte skiftlägeskänsligt." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "filtrera filnamn" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 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." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "filtrera dokument från denna e-postregel" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "har dessa taggar" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "har alla dessa taggar" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "har inte dessa taggar" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "har denna dokumenttyp" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "har en av dessa dokumenttyper" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "har inte dessa dokumenttyper" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "har denna korrespondent" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "har inte dessa korrespondenter" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "har en av dessa korrespondenter" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "har denna lagringsväg" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "har en av dessa lagringsvägar" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "har inte dessa lagringsvägar" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "filtrera efter fråga för anpassade fält" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON-kodat frågeuttryck för anpassade fält." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "förskjutning av schema i dagar" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Antalet dagar som schemautlösaren ska förskjutas med." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "Schemat är återkommande" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Om schemat ska vara återkommande." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "intervall för återkommande schema i dagar" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Antalet dagar mellan återkommande schemautlösningar." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "datumfält för schema" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Fältet som ska kontrolleras för en schemautlösare." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "anpassat datumfält för schema" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "arbetsflödesutlösare" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "arbetsflödesutlösare" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "e-post ämne" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Ämnesraden i e-postmeddelandet kan innehålla platshållare; se dokumentationen." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "e-postinnehåll" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "E-postmeddelandets innehåll kan innehålla platshållare; se dokumentationen." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "e-post till" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Mottagarnas e-postadresser, avgränsade med kommatecken." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "inkludera dokument i e-post" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook-URL" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Mål-URL för aviseringen." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "använd parametrar" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "skicka som JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "webhook-parametrar" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Parametrarna som ska skickas till webhook-URL:en om inget innehåll används." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook-innehåll" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Innehållet som ska skickas till webhook-URL:en om inga parametrar används." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhook-rubriker" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "HTTP-rubrikerna som ska skickas till webhook-URL:en." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "inkludera dokument i webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Uppdrag" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Borttagning" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-post" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Borttagning av lösenord" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Flytta till papperskorgen" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "Fjärr-OCR" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "Tillämpa AI-förslag" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "Dokumenttyp" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "Lagringssökväg" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "Skapandedatum" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Arbetsflödesåtgärdstyp" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "ordning" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "tilldela titel" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Tilldela en dokumenttitel. Värdet måste vara en Jinja2-mall; se dokumentationen." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "tilldela denna etikett" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "tilldela den här dokumenttypen" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "tilldela denna korrespondent" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "tilldela denna lagringsväg" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "tilldela denna ägare" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "bevilja visningsbehörighet för dessa användare" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "Ge visningsbehörighet till dessa grupper" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "bevilja behörighet att ändra till dessa användare" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "Ge ändringsbehörigheter till dessa grupper" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "tilldela dessa anpassade fält" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "anpassade fältvärden" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Valfria värden att tilldela till anpassade fält." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "ta bort dessa taggar" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "ta bort alla etiketter" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "ta bort dessa dokumenttyper" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "ta bort alla dokumenttyper" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "ta bort dessa korrespondenter" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "ta bort alla korrespondenter" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "ta bort dessa lagringsvägar" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "Ta bort alla lagringsvägar" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "ta bort dessa ägare" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "ta bort alla ägare" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "ta bort visningsbehörigheter för dessa användare" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "ta bort visningsbehörigheter för dessa grupper" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "Ta bort ändringsbehörigheter för dessa användare" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "Ta bort ändringsbehörigheter för dessa grupper" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "ta bort alla behörigheter" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "ta bort dessa anpassade fält" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "ta bort alla anpassade fält" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-post" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "lösenord" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Lösenord att prova när PDF-skydd tas bort. Avgränsa dem med kommatecken eller radbrytningar." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "Fält för AI-förslag" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "Vilka av de AI-föreslagna fälten som ska tillämpas på dokumentet." -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "skapa saknade objekt" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "Skapa föreslagna etiketter, korrespondenter, dokumenttyper och lagringssökvägar som inte redan finns, i stället för att hoppa över dem." -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "skriv över befintliga värden" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "Tillämpa förslag även om dokumentet redan har ett värde för fältet. Etiketter läggs alltid till och ersätts aldrig." -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "arbetsflödesåtgärd" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "arbetsflödesåtgärder" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "utlösare" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "åtgärder" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "aktiverad" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "arbetsflöde" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "typ av arbetsflödesutlösare" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "körningsdatum" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "Arbetsflödeskörning" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "arbetsflöde körs" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Otillräckliga behörigheter." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Ogiltig färg." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Filtypen %(type)s stöds inte" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "Anpassat fält-id måste vara ett heltal: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Anpassat fält med id %(id)s finns inte" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Anpassade fält måste vara en lista med heltal eller ett objekt som mappar ID:n till värden." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Vissa anpassade fält finns inte eller har angetts två gånger." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Ogiltig variabel upptäckt." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Dubbletter av dokumentidentifierare är inte tillåtna." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dokumenten hittades inte: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "URI-schemat '{parts.scheme}' är inte tillåtet. Tillåtna scheman: {', msgid "Unable to parse URI {value}" msgstr "Kunde inte tolka URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Ogiltig more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Ogiltig AI-konfiguration." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "Begäran till AI-serverdelen tog för lång tid." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "AI-serverdelen avvisade begäran. Kontrollera loggarna för detaljer." -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Ange endast ett av text, title_search, query och more_like_id." -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Otillräckliga behörigheter för att dela dokument %(id)s." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paketet behandlas redan." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Delningslänkpaketet förbereds fortfarande. Försök igen senare." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Delningslänkpaketet är inte tillgängligt." @@ -2160,223 +2181,231 @@ msgstr "Anger mappningen mellan taggar och streckkoder" msgid "Enables splitting on tag barcodes" msgstr "Aktiverar delning vid taggstreckkoder" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "Anger motorn för fjärr-OCR" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "Anger API-nyckeln för fjärr-OCR" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "Anger slutpunkten för fjärr-OCR" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "Anger vilka dokument som skickas till motorn för fjärr-OCR" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Aktiverar AI-funktioner" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Anger serverdelen för LLM-inbäddning" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Anger modellen för LLM-inbäddning" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "Ställer in API-nyckel för LLM-inbäddning" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "Anger slutpunkten för LLM-inbäddning (valfritt)" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "Anger blockstorleken för LLM-inbäddning" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "Anger LLM-kontextstorleken" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Anger LLM-serverdelen" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Anger LLM-modellen" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Anger LLM-API-nyckeln" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Anger LLM-slutpunkten (valfritt)" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "Anger utdataspråket för LLM" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "Anger tidsgränsen för LLM i sekunder" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "programinställningar för Paperless" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Engelska (USA)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arabiska" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikaans" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Belarusiska" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgariska" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Kataloniska" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Tjeckiska" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danska" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Tyska" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Grekiska" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Engelska (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Spanska" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Persiska" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Finska" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Franska" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Ungerska" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Indonesiska" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Italienska" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japanska" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Koreanska" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxemburgiska" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norska" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Holländska" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polska" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portugisiska (Brasilien)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portugisiska" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Rumänska" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Ryska" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovakiska" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovenska" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Serbiska" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Svenska" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Turkiska" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukrainiska" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamesiska" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Kinesiska (förenklad)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Kinesiska traditionell" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx-administration" diff --git a/src/locale/th_TH/LC_MESSAGES/django.po b/src/locale/th_TH/LC_MESSAGES/django.po index 2d0bd42b1..0165a796e 100644 --- a/src/locale/th_TH/LC_MESSAGES/django.po +++ b/src/locale/th_TH/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -57,31 +57,31 @@ msgstr "จำนวนการซ้อนเงื่อนไขสูงส msgid "Custom field not found" msgstr "ไม่พบฟิลด์ที่กำหนด" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "เจ้าของ" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "ไม่ใช้งาน" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "คำใดคำหนึ่ง" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "ทุกคำ" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "ตรงกันทุกประการ" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Regular expression" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "คำไม่ชัดเจน" @@ -89,20 +89,20 @@ msgstr "คำไม่ชัดเจน" msgid "Automatic" msgstr "อัตโนมัติ" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "ชื่อ" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "การจำแนก" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "วิธีการจำแนก" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "ไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่" @@ -166,7 +166,7 @@ msgstr "พาธจัดเก็บ" msgid "title" msgstr "ชื่อ" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "เนื้อหา" @@ -202,8 +202,8 @@ msgstr "จำนวนหน้า" msgid "The number of pages of the document." msgstr "จำนวนหน้าทั้งหมดของเอกสาร" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "สร้างเมื่อ" @@ -267,1395 +267,1416 @@ msgstr "" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "เอกสาร" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "เอกสาร" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "เก็บถาวร" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "ตัวกรอง" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "แท็ก" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "ตาราง" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "การ์ดขนาดเล็ก" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "การ์ดขนาดใหญ่" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "ชื่อ" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "วันที่สร้าง" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "วันที่เพิ่ม" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "คนเขียน" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "ประเภทเอกสาร" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "ตำแหน่งจัดเก็บ" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "หมายเหตุ" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "เจ้าของ" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "แชร์แล้ว" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "หน้า" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "จัดเรียงตาม" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "เรียงย้อนกลับ" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "ขนาดการแสดงผลหน้า" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "โหมดการแสดงผล" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "ฟิลด์การแสดงผลของเอกสาร" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "การค้นที่เก็บไว้" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "การค้นที่เก็บไว้" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "ชื่อมีคำว่า" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "เนื้อหาเอกสารมีคำว่า" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN คือ" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "ผู้เขียนคือ" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "ประเภทเอกสารคือ" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "อยู่ในกล่องขาเข้า" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "มีแท็ก" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "มีแท็กใดก็ตาม" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "สร้างก่อน" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "สร้างหลังจาก" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "สร้างเมื่อปี" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "สร้างเมื่อเดือน" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "สร้างเมื่อวันที่" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "นำเข้าก่อน" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "นำเข้าหลังจาก" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "แก้ไขก่อน" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "แก้ไขหลังจาก" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "ไม่มีแท็ก" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "ไม่มี ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "ชื่อหรือเนื้อหามีคำว่า" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "ค้นจากทุกอย่าง" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "เอกสารที่คล้ายกัน" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "มีแท็ก" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN มากกว่า" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN น้อยกว่า" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "พาธจัดเก็บคือ" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "ผู้เขียนคือ" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "ไม่มีผู้เขียนเป็น" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "ประเภทเอกสารคือ" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "ไม่มีประเภทเป็น" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "พาธจัดเก็บคือ" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "ไม่มีพาธจัดเก็บเป็น" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "เจ้าของคือ" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "เจ้าของคือ" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "ไม่มีเจ้าของเป็น" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "ไม่มีเจ้าของเป็น" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "มีค่าฟิลด์ที่กำหนดเอง" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "แชร์โดยฉัน" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "มีฟิลด์ที่กำหนดเอง" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "มีฟิลด์ที่กำหนดเองใน" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "ไม่มีฟิลด์ที่กำหนดเอง" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "ไม่มีฟิลด์ที่กำหนดเองใน" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "การค้นหาฟิลด์ที่กำหนดเอง" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "สร้างขึ้นเพื่อ" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "สร้างขึ้นจาก" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "เพิ่มไปที่" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "เพิ่มจาก" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "mime type คือ" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "ชนิดของกฎ" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "ค่า" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "กฎในการค้น" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "กฎในการค้น" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "รอดำเนินการ" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "ใช้ไฟล์" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "รหัสงาน" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "ผลลัพธ์" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "จ่ายงานแล้ว" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "หมายเหตุสำหรับเอกสาร" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "ผู้ใช้งาน" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "หมายเหตุ" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "หมายเหตุ" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "ต้นฉบับ" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "หมดอายุ" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "แชร์​ลิงก์" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "แชร์​ลิงก์" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "กำลังประมวลผล" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "พร้อมแล้ว" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "ไม่สำเร็จ" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "ขนาด (ไบต์)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "ช้อผิดพลาดล่าสุด" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "ตำแหน่งไฟล์" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "สร้างไว้ที่" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "ตัวอักษร" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Boolean" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Integer" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Float" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "จำนวนเงิน" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "ลิงก์ของเอกสาร" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "เลือก" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "ชนิดข้อมูล" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "ข้อมูลเพิ่มเติม" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "ข้อมูลเพิ่มเติมสำหรับฟิลด์ที่กำหนดเอง เช่น ตัวเลือก" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "ฟิลด์ที่กำหนดเอง" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "ฟิลด์ที่กำหนดเอง" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "ชุดข้อมูลฟิลด์ที่กำหนดเอง" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "เริ่มใช้งาน" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "เพิ่มเอกสารแล้ว" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "ปรับปรุงเอกสารแล้ว" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "โฟลเดอร์ใช้งาน" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "ตัวกรองชื่อไฟล์" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "ประมวลผลเอกสารที่ชื่อไฟล์ตรงกับที่ระบุ (หากมี) โดยไม่สนใจอักษรพิมพ์ใหญ่-เล็ก และสามารถระบุแบบ wildcard ได้เช่น .pdf หรือ *invoice*" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "หัวเรื่องของอีเมล" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "เนื้อหาอีเมล" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "อีเมล์ถึง" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "เนื้อความที่จะส่งพร้อมกับ URL ของ เว็บฮุคหากไม่ได้ใช้พารามิเตอร์" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "อีเมล" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "ย้ายไปที่ถังขยะ" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "อันดับ" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "กำหนดแท็กนี้" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "กำหนดประเภทเอกสารนี้" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "กำหนดผู้เขียนนี้" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "ลบแท็กทั้งหมด" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "ลบประเภทเอกสารทั้งหมด" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "ลบที่จัดเก็บเอกสารทั้งหมด" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "เปิดใช้งานอยู่" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "สีไม่ถูกต้อง" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "ไม่รองรับไฟล์ประเภท %(type)s" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "ตรวจพบตัวแปรไม่ถูกต้อง" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1910,40 +1931,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2159,223 +2180,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "ภาษาอังกฤษ (สหรัฐฯ)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "ภาษาอาหรับ" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "ภาษาอาฟรีกานส์" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "ภาษาเบลารุส" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "ภาษาคาตาลัน" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "ภาษาเช็ก" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "ภาษาเดนมาร์ก" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "ภาษาเยอรมัน" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "ภาษากรีก" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "ภาษาอังกฤษ (สหราชอาณาจักร)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "ภาษาสเปน" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "ภาษาฟินแลนด์" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "ภาษาฝรั่งเศส" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "ภาษาอิตาลี" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "ภาษาลักเซมเบิร์ก" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "ภาษานอร์เวย์" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "ภาษาดัตช์" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "ภาษาโปแลนด์" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "ภาษาโปรตุเกส (บราซิล)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "ภาษาโปรตุเกส" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "ภาษาโรมาเนีย" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "ภาษารัสเซีย" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "ภาษาสโลวาเกีย" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "ภาษาสโลเวเนีย" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "ภาษาเซอร์เบีย" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "ภาษาสวีเดน" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "ภาษาตุรกี" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "ภาษายูเครน" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "ภาษาจีน (ตัวย่อ)" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "การจัดการ Paperless-ngx" diff --git a/src/locale/tr_TR/LC_MESSAGES/django.po b/src/locale/tr_TR/LC_MESSAGES/django.po index 10a727182..49cbb181b 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -57,31 +57,31 @@ msgstr "En çok iç içe geçme izni aşıldı." msgid "Custom field not found" msgstr "Özel alan bulunamadı" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "sahibi" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Hiçbiri" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Herhangi bir sözcük" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Tüm sözcükler" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Tam eşleşme" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Düzenli ifade" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Bulanık sözcük" @@ -89,20 +89,20 @@ msgstr "Bulanık sözcük" msgid "Automatic" msgstr "Otomatik" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "ad" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "eşleşme" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "eşleştirme algoritması" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "duyarsızdır" @@ -166,7 +166,7 @@ msgstr "depolama dizinleri" msgid "title" msgstr "başlık" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "içerik" @@ -202,8 +202,8 @@ msgstr "sayfa sayısı" msgid "The number of pages of the document." msgstr "Belgedeki sayfaların sayısı." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "oluşturuldu" @@ -267,1395 +267,1416 @@ msgstr "sürüm etiketi" msgid "Optional short label for a document version." msgstr "Doküman versiyonu için etiket, tercihe bağlı." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "belge" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "belgeler" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Arşiv" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "Banka" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "Sepet" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "Zil" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "Yer İşareti" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "Kutular" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "Evrak çantası" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "Bina" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "Hesap makinesi" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "Takvim" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "Kamera" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "Yapılacaklar Listesi" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "Nakit" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "Sohbet" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "Kontrol et" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "Pano" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "Saat" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "Kredi kartı" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "İndir" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "Zarf" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "Uyarı" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "Dosya" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "Kilitli dosya" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "Hesap tablosu" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "Metin dosyası" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "Dosyalar" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "Klasör" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Filtre" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Künyeler" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Tablo" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Küçük Kartlar" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Büyük kartlar" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Başlık" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Oluşturuldu" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Eklendi" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Muhatap" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Doküman Türü" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Dosya yolu" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Not" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Sahip" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Paylaşıldı" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Sayfalar" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "alan ile sırala" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "tersine sırala" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Dosya boyutunu görüntüle" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Ekran kipini görüntüle" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Belge görüntüleme alanları" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "kaydedilen görünüm" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "kaydedilen görünümler" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "başlık şunu içerir" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "içerik şunu içerir" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN ise" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "muhatap" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "belge türü ise" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "gelen kutusunda" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "şu künyesi var" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "herhangi bir künyesi var" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "bu tarihten önce oluşturuldu" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "bu tarihten sonra oluşturuldu" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "oluşturma yılı" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "oluşturulma ayı" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "oluşturma günü" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "bu tarihten önce eklendi" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "bu tarihten sonra eklendi" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "bu tarihten önce değiştirildi" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "bu tarihten sonra değiştirildi" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "künyeye sahip değil" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "ASN yok" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "başlık veya içerik şunu içerir" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "tam metin sorgulama" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "benzer listele" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "içerisinde etiketine sahip" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN şundan daha büyük" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN şundan daha küçük" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "depolama yolu" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "şurada muhatabı var" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "şurada muhatabı yok" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "belge türüne şurada sahip" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "belge türüne şurada sahip değil" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "şurada depolama yolu mevcut" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "şurada depolama yolu yok" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "sahibi" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "şurada sahibi" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "sahipsiz" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "şurada sahibi yok" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "özel alan değeri var" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "benimle paylaşıldı" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "özel veritabanı alanı var" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "içinde özel alan var" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "özel saha tanımlı değil" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "özel alan yok" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "özel alan sorgusu" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "şuna oluşturuldu" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "şundan oluşturuldu" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "şuna eklendi" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "şundan eklendi" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "dosya türü" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "basit başlık araması" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "basit metin araması" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "kural türü" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "değer" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "süzgeç kuralı" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "süzgeç kuralları" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Bekleniyor" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "Başladı" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "Başarılı" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "Başarısız" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "İptal Edildi" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Dosyayı İşle" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Eğitim Sınıflandırıcısı" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "Tutarlılık Denetimi" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Dizin Optimizasyonu" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Posta Yükle" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM Dizini" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "Çöp Kutusunu Boşalt" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "İş akışlarını kontrol et" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "Toplu güncelle" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "Dokümanı yeniden işle" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "Paylaşma linki oluştur" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "Toplu sil" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Zamanlanmış" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Web Arayüzü" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API yükleme" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "Dosya tüketme" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "E posta tüketme" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "Sistem" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "Elle" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "Görev Kimliği" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "Celery görev numarası" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Görev Tipi" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "Gerçekleştirilen iş türü" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "Başlama kaynağı" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "Bu görevi başlatan" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "Durum" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "Tamamlandı" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "Süre (saniye)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "Başlama zamanından itibaren geçen süre" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Bekleme süresi (saniye)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "Görev oluşturmadan işleme almaya kadar geçen süre" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Giriş Verileri" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "Görev için yapılandırılmış girdi parametreleri" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Sonuç Verisi" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "Görev işlemesinden yapılandırılmış sonuç verisi" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Onaylandı" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Görev" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Görevler" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Belge için not" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "kullanıcı" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "not" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "notlar" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Özgün" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "süre sonu" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "kısaltma" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "bağlantıyı paylaş" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "bağlantıları paylaş" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "İşleniyor" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Hazır" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Başarısız" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "boyut (bayt)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "son hata" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "dosya konumu" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "oluşturulma zamanı" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "link paketini paylaş" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "link paketlerini paylaş" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "Link paketi %(slug)slarını paylaş" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Dizi" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Tarih" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Evet/Hayır" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Tam sayı" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Ondalıklı sayı" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Parasal" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Belge Bağlantısı" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Seç" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Uzun Metin" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "veri türü" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "ekstra veri" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Seçenekler gibi özel alan için ekstra veriler" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "özel alan" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "özel alanlar" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "özel alan değeri" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "özel alan değerleri" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "İşleme başladı" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Belge eklendi" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Belge Güncellendi" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "İşlenecek Klasör" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Api yüklemesi" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Değiştirilmiş" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Özel Alan" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "İş Akışı Tetikleyici Tipi" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "filtre yolu" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Yalnızca belirtilen yola uyan belgeleri kullanın. * ile belirtilen joker karakterlere izin verilir. Büyük/küçük harf duyarlılığı yoktur." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "dosya adına göre filtrele" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Yalnızca belirtilen dosya adıyla tamamen eşleşen belgeleri işleyin. *.pdf veya *.fatura* gibi joker karakterlere izin verilir. Büyük/küçük harf duyarlılığı yoktur." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "bu posta kuralından belgeleri filtrele" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "bu etiket(ler) e sahip" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "bu etiket veya etiketlerine sahip" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "bu etiket(ler) e sahip değil" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "bu doküman tipindedir" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "bu doküman türlerinden birisi var" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "bu belge tür veya türlerine sahip değil" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "buna karşılık gelen" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "bu muhatablara sahip değil" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "karşılık gelenlerden birisi var" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "bu depolama yoluna sahip" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "depolama dizinlerinden birisi var" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "bu depolama dizin veya dizinleri mevcut değil" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "özel alanlara göre filtrele" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON olarak verilmiş özel alan sorgu ifadesi." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "kayma günlerini planla" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Program tetikleyicisini dengelemek için gereken gün sayısı." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "program tekrarlanıyor" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Programın tekrarlı olması gerekiyorsa." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "gün olarak tekrar eden plan gecikmesi" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Tekrarlayan zamanlama tetikleyicileri arasındaki gün sayısı." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "planlama tarih alanı" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Zamanlama tetikleyicisini kontrol etmek için kullanılan alan." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "program tarihi özel alanı" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "iş akışı tetikleyicisi" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "iş akışı tetikleyicileri" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "eposta konusu" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "E-postanın konusu, bazı yer tutucular içerebilir, belgelere bakın." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "e posta içeriği" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "E postanın gövdesi (mesajı) bazı yer tutucular içerebilir, dokümantasyonu inceleyin." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "kime" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Hedef e-posta adresleri, virgülle ayrılmış." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "belgeyi e-postaya ekle" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook url" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "Bildirimin hedef URL'si." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "parametreleri kullan" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "JSON formatında gönder" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "webhook parametreleri" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Gövde kullanılmadığında webhook URL'si ile birlikte gönderilecek parametreler." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook gövdesi" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Parametreler kullanılmadığında webhook URL'si ile birlikte gönderilecek gövde." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhook başlıkları" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Webhook URL'si ile birlikte gönderilecek başlıklar." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "belgeyi webhook içine dahil et" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Atama" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Kaldırma" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "E-posta" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Parola kaldırma" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Çöp kutusuna taşı" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Webhook Aksiyon Tipi" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "sıra" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "başlık ata" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Dökuman bașlıkları, Jinja2 taslağı olmalıdır, bakınız." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "bu künyeyi ata" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "bu dosya türünü ata" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "bu muhatabı ata" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "bu depolama yolunu atayın" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "bu sahibi ata" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "bu kullanıcılara görüntüleme izni ver" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "bu gruplara görüntüleme izni ver" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "bu kullanıcılara değişiklik yapma izni ver" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "bu gruplara değişiklik yapma izni ver" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "bu özel alanları atayın" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "özel alan değerleri" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Özel alanlara atanacak isteğe bağlı değerler." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "bu künye(ler)i kaldır" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "tüm künyeleri kaldır" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "bu belge türlerini kaldırın" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "tüm belge tiplerini kaldırın" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "bu muhatapları kaldır" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "tüm muhatapları kaldır" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "bu depolama yollarını kaldırın" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "tüm depolama yollarını kaldırın" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "bu sahip(ler)i kaldır" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "tüm sahipleri kaldır" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "bu kullanıcıların görüntüleme izinlerini kaldır" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "bu grupların görüntüleme izinlerini kaldır" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "bu kullanıcıların değişiklik yapma izinlerini kaldır" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "bu grupların değişiklik yapma izinlerini kaldır" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "tüm izinleri kaldır" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "bu özel alanları kaldır" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "tüm özel alanları kaldır" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "e-posta" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "parolalar" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "PDF koruması kaldırırken denenecek parolalar. Virgül veya yeni satır ile ayırın." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "iş akışı eylemi" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "iş akışı eylemleri" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "tetikleyiciler" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "eylemler" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "etkin" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "iş akışı" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "iş akışı tetikleyici tipi" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "çalışma tarihi" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "iş akışı çalıştırma" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "iş akışı çalıştırma" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Yetersiz izin." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Geçersiz renk." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Dosya türü %(type)s desteklenmiyor" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "%(id)s özel alan numarası tam sayı olmalıdır" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "%(id)s numaralı özel alan mevcut değil" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Özel alanlar bir tam sayı olarak veya bir nesne haritası numaraları olmalıdır." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Bazı õzel alan numaraları mevcut değil yada iki kez tanımlanmıș." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Geçersiz değişken algılandı." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Doküman kimliği çakışmasına izin verilmiyor." -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Dosyalar bulunamadı: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "URI şeması ‘{parts.scheme}’ izin verilmez. İzin verilen şemalar: msgid "Unable to parse URI {value}" msgstr "URI {value} işlenemiyor" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "Geçersiz more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "Geçersiz yapay zeka konfigürasyonu." -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "Yapay zeka isteği zaman aşımına uğradı." -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "Yalnızca bir metin, title_search, sorgu veya more_like_id" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "%(id)s dosyasını paylaşmak için yetkiniz yok." -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Paket zaten işlemede." -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "Etiket barkod eşleşmesini ayarlar" msgid "Enables splitting on tag barcodes" msgstr "Etiket barkodlarında ayırmayı sağlar" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Yapay zeka özelliklerini etkinleştirir" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "paperless uygulama ayarları" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "İngilizce (Birleşik Devletler)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Arapça" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrika dili" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Belarusça" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Bulgarca" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Katalanca" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Çekçe" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Danca" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Almanca" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Yunanca" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "İngilizce (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "İspanyolca" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Farsça" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Fince" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Fransızca" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Macarca" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "İtalyanca" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Japonca" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Korece" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Lüksemburgca" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norveçce" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Hollandaca" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Polonyaca" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Portekizce (Brezilya)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Portekizce" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Romence" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Rusça" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Slovakça" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Slovakça" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Sırpça" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "İsveççe" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Türkçe" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukraynaca" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Vietnamca" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Basitleştirilmiş Çince" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Geleneksel Çince" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx yönetimi" diff --git a/src/locale/uk_UA/LC_MESSAGES/django.po b/src/locale/uk_UA/LC_MESSAGES/django.po index 11b46dd59..dbfad30d5 100644 --- a/src/locale/uk_UA/LC_MESSAGES/django.po +++ b/src/locale/uk_UA/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Ukrainian\n" "Language: uk_UA\n" @@ -57,31 +57,31 @@ msgstr "Перевищена максимальна глибина вкладе msgid "Custom field not found" msgstr "Не знайдено користувацьке поле" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "власник" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Немає" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Будь-яке слово" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Усі слова" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Точна відповідність" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Регулярний вираз" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "Приблизний пошук" @@ -89,20 +89,20 @@ msgstr "Приблизний пошук" msgid "Automatic" msgstr "Автоматично" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "назва" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "відповідність" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "алгоритм зіставляння" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "нечутливий до регістру" @@ -166,7 +166,7 @@ msgstr "шляхи зберігання" msgid "title" msgstr "заголовок" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "вміст" @@ -202,8 +202,8 @@ msgstr "кількість сторінок" msgid "The number of pages of the document." msgstr "Кількість сторінок документа." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "створено" @@ -267,1395 +267,1416 @@ msgstr "мітка версії" msgid "Optional short label for a document version." msgstr "" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "документ" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "документи" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Архів" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Фільтр" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Теги" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Таблиця" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Малі Картки" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Великі Картки" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Назва" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Створено" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Додано" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Кореспондент" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Тип документа" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Шлях до сховища" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Примітка" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Власник" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Спільні" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Сторінки" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "поле сортування" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "зворотнє сортування" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Розмір перегляду сторінок" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Режим відображення" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Відображення полів документу" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "збережене представлення" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "збережені представлення" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "заголовок містить" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "вміст містить" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "АСН" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "кореспондент" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "тип документа" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "у вхідних" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "має тег" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "має будь-який тег" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "створено до" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "створено після" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "рік створення" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "місяць створення" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "день створення" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "додано до" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "додано після" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "змінено до" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "змінено після" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "не має тегу" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "не має АСН" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "заголовок або вміст містить" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "повнотекстовий запит" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "шукати подібне" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "має теги в" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "АСН більший ніж" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "АСН менший ніж" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "шлях зберігання" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "має кореспондента в" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "не має кореспондента в" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "має тип документа в" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "не має типу документа в" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "має шлях до сховища в" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "не має шляху до сховища в" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "власник є" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "має власника в" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "не має власника" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "не має власника в" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "має значення спеціального поля" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "поділився я" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "має користувацькі поля" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "має користувацькі поля у" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "не має користувацьких полей у" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "не має користувацьких полей" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "створено з" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "додано до" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "додано з" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "тип mime є" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "тип правила" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "значення" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "правило фільтрації" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "правила фільтрації" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Навчити класифікатор" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Завантаження пошти" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Заплановано" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "Веб-інтерфейс" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID завдання" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "Час очікування (сек)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "Вхідні дані" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Дані результату" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Підтверджено" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "Задача" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "Задачі" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Примітка до документа" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "користувач" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "примітка" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "нотатки" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Оригінал" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "закінчується" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "слаг" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "поділитися посиланням" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "поділитися посиланнями" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Обробка" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Готово" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Текст" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL-адреса" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Дата" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "Логічне значення" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Ціле число" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "З рухомою комою" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Монетарний" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Посилання на документ" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Вибрати" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Довгий текст" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "тип даних" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "додаткові дані" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Додаткові дані для користувальницького поля, такі як варіанти вибору" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "користувацьке поле" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "користувацькі поля" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "спеціальний екземпляр поля" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "спеціальні екземпляри поля" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Використання розпочато" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Документ додано" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Документ оновлено" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Використати теку" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Завантаження API" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Змінено" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Тип тригера робочого процесу" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "шлях фільтра" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Використовувати лише документи зі шляхом, який відповідає цьому, якщо вказано. Допускаються символи підставлення, позначені як *. Регістр не враховується." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "фільтрувати за назвою файлу" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Обробляти лише ті документи, які повністю відповідають назві файлу, якщо вказано. Шаблони, такі як *.pdf чи *invoice* дозволені. Без врахування регістру." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "фільтрувати документи з цього правила пошти" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "має цей тег(и)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "має тип документа" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "має кореспондента" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "запланувати періодичну затримку в днях" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "поле дати розкладу" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "тригер робочого процесу" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "тригери робочого процесу" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Призначення" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Видалення" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Ел. пошта" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Тип дії робочого процесу" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "порядок" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "призначити назву" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "призначити цей тег" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "призначити цей тип документа" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "призначити цього кореспондента" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "призначити шлях до сховища" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "призначити власника" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "надати дозволи на перегляд цим користувачам" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "надати дозволи на перегляд цим групам" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "надати дозволи на зміну цим користувачам" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "надати дозволи на зміну цим групам" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "призначити користувацькі поля" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "видалити тег(и)" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "видалити всі теги" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "видалити тип(и) документів" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "видалити всі типи документів" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "видалити кореспондента (-ів)" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "видалити всіх кореспондентів" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "видалити шлях для зберігання" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "видалити всі шляхи зберігання" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "видалити власника (-ів)" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "видалити всіх власників" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "видалити дозволи на перегляд для цих користувачів" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "видалити дозволи на перегляд для цих груп" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "видалити дозволи на редагування для цих користувачів" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "видалити дозволи на редагування для цих груп" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "видалити всі дозволи" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "видалити користувацькі поля" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "видалити всі користувацькі поля" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "дія робочого циклу" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "дії робочого циклу" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "тригери" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "дії" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "ввімкнено" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Неправильний колір." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Тип файлу %(type)s не підтримується" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Виявлено неправильну змінну." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "" @@ -1911,40 +1932,40 @@ msgstr "" msgid "Unable to parse URI {value}" msgstr "" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "" @@ -2160,223 +2181,231 @@ msgstr "" msgid "Enables splitting on tag barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "налаштування програми документообігу" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Англійська (США)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Арабська" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Африкаанс" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Білоруська" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Болгарська" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Каталонська" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Чеська" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Данська" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Німецька" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Грецька" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Англійська (Велика Британія)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Іспанська" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Фінська" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Французька" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Угорська" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Італійська" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Японська" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Корейська" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Люксембурзька" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Норвезька" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Нідерландська" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Польська" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Португальська (Бразилія)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Португальська" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Румунська" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Російська" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Словацька" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Словенська" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Сербська" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Шведська" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Турецька" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Українська" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Китайська спрощена" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Адміністрування Paperless-ngx" diff --git a/src/locale/vi_VN/LC_MESSAGES/django.po b/src/locale/vi_VN/LC_MESSAGES/django.po index b912b9e46..8c9c76ba6 100644 --- a/src/locale/vi_VN/LC_MESSAGES/django.po +++ b/src/locale/vi_VN/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -57,31 +57,31 @@ msgstr "Đã vượt quá độ sâu lồng nhau tối đa." msgid "Custom field not found" msgstr "Không tìm thấy trường tùy chỉnh" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "chủ sở hữu" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "Trống rỗng" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "Bất kỳ từ nào" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "Tất cả các từ" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "Khớp chính xác" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "Biểu thức chính quy" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "So khớp mờ (Fuzzy)" @@ -89,20 +89,20 @@ msgstr "So khớp mờ (Fuzzy)" msgid "Automatic" msgstr "Tự động" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "tên" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "phù hợp" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "thuật toán tìm kiếm" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "không nhạy cảm" @@ -166,7 +166,7 @@ msgstr "Đường dẫn lưu trữ" msgid "title" msgstr "chức danh" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "nội dung" @@ -202,8 +202,8 @@ msgstr "đếm trang" msgid "The number of pages of the document." msgstr "Số trang của tài liệu." -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "đã tạo" @@ -267,1395 +267,1416 @@ msgstr "nhãn phiên bản" msgid "Optional short label for a document version." msgstr "Nhãn ngắn tùy chọn cho phiên bản tài liệu." -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "tài liệu" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "tài liệu" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "Lưu trữ" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" -msgstr "" +msgstr "Ngân hàng" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" -msgstr "" +msgstr "Giỏ hàng" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "Lọc" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" -msgstr "" +msgstr "Tìm kiếm" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" -msgstr "" +msgstr "Gửi" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" -msgstr "" +msgstr "Cửa hàng" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" -msgstr "" +msgstr "Tag" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "Nhãn" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "Bảng" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "Thẻ nhỏ" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "Thẻ lớn" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "Tiêu đề" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "Ngày tạo" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "Đã thêm" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "Đối tác" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "Loại Tài liệu" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "Đường dẫn Lưu trữ" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "Lưu ý" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "Chủ sở hữu" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "Chia sẻ" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "Trang" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "trường sắp xếp" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "sắp xếp ngược" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "Xem kích thước trang" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "Xem chế độ hiển thị" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "Trường hiển thị tài liệu" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "dạng xem đã lưu" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "dạng xem đã lưu" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "tiêu đề có chứa" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "nội dung chứa" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN là" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "người gửi là" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "loại tài liệu là" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "ở trong hộp thư đến" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "có nhãn" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "có bất kỳ thẻ nào" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "được tạo trước" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "được tạo sau" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "ngày tạo" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "tháng đã tạo là" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "ngày tạo là" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "được thêm trước" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "được thêm sau" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "được sửa đổi trước" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "được sửa đổi sau" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "không có nhãn" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "không có ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "tiêu đề hoặc nội dung chứa" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "truy vấn văn bản đầy đủ" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "như thế này" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "có nhãn trong" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN lớn hơn" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN nhỏ hơn" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "đường dẫn lưu trữ" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "có người gửi ở" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "không có người gửi trong" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "có loại tài liệu trong" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "không có loại tài liệu trong" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "có đường dẫn lưu trữ trong" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "không có đường dẫn lưu trữ trong" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "chủ sở hữu là" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "có chủ sở hữu trong" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "không có chủ sở hữu" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "không có chủ sở hữu trong" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "có giá trị trường tùy chỉnh" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "được tôi chia sẻ" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "có trường tùy chỉnh" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "có trường tùy chỉnh trong" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "không có trường tùy chỉnh trong" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "không có trường tùy chỉnh" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "truy vấn trường tùy chỉnh" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "đã tạo tới" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "được tạo từ" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "đã thêm vào" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "được thêm từ" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "loại mime là" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" -msgstr "" +msgstr "Tìm kiếm đơn giản" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" -msgstr "" - -#: documents/models.py:732 -msgid "has duplicates" -msgstr "" +msgstr "Thông tin tìm kiếm" #: documents/models.py:742 +msgid "has duplicates" +msgstr "có trùng" + +#: documents/models.py:752 msgid "rule type" msgstr "loại quy tắc" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "giá trị" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "quy tắc bộ lọc" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "quy tắc bộ lọc" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "Đang chờ" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" -msgstr "" +msgstr "Đã bắt đầu" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "Sử dụng Tệp" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "Đào tạo Classifier" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "Tối ưu hóa Chỉ mục" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "Lấy thư (Mail Fetch)" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "Dự kiến" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "UI web" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "ID nhiệm vụ" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "Loại Nhiệm vụ" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "Dữ liệu Kết quả" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "Được công nhận" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "Ghi chú cho tài liệu" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "người dùng" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "ghi chú" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "ghi chú" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "Gốc" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "hết hạn" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "slug" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "chia sẻ liên kết" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "chia sẻ liên kết" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "Đang xử lý" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "Sẵn sàng" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "Thất bại" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "dung lương (bytes)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "lỗi cuối cùng" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "đường dẫn tệp" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "xây phần mềm vào lúc" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "chia sẻ gói liên kết" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "chia sẻ các gói liên kết" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "chia sẻ gói liên kết %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "Chuỗi" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "Ngày" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "kiểu Boolean" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "Số nguyên" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "Nổi" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "Tiền tệ" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "Liên kết tài liệu" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "Chọn" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Văn bản dài" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "kiểu dữ liệu" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "dữ liệu bổ sung" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "Dữ liệu phụ cho trường tùy chỉnh, ví dụ như lựa chọn các tùy chọn" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "trường chuyên biệt" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "trường tùy chỉnh" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "phiên bản trường tùy chỉnh" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "phiên bản trường tùy chỉnh" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "Bắt đầu nhập liệu" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "Đã thêm tài liệu" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "Đã cập nhật tài liệu" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "Thư mục nhập liệu (Consume Folder)" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Tải lên Api" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "Sửa đổi" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "Trường tùy chỉnh" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "Loại kích hoạt quy trình làm việc" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "đường dẫn bộ lọc" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "Chỉ sử dụng tài liệu với đường dẫn trùng khớp với mục này nếu được chỉ định. Ký tự đại diện được chỉ định là * được phép. Không phân biệt chữ hoa/thường." -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "tên tệp lọc" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "Chỉ dùng các tài liệu hoàn toàn khớp với tên tệp này nếu được chỉ ra. Đã cho phép các ký tự đại diện như *.pdf hoặc *hóa đơn*. Không phân biệt chữ hoa/thường." -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "lọc tài liệu từ quy tắc thư này" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "có những thẻ này" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "có tất cả thẻ này" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "không có các nhãn này" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "có loại tài liệu này" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "có một trong các loại tài liệu sau đây" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "không có các loại tài liệu này" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "có người gửi này" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "không có các người gửi này" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "có một trong số những phóng viên này" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "có đường dẫn lưu trữ này" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "có một trong số những đường dẫn lưu trữ này" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "không có các đường dẫn lưu trữ này" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "lọc truy vấn trường tùy chỉnh" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "Biểu thức truy vấn trường tùy chỉnh dạng JSON." -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "lịch trình ngày bù trừ" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "Số ngày để bù đắp bộ kích hoạt lịch trình." -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "lịch biểu lặp lại" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "Nếu lịch biểu nên được lặp lại." -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "lên lịch sự chậm trễ lặp lại trong ngày" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "Số ngày giữa các bộ kích hoạt lịch trình lặp lại." -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "trường lịch biểu ngày" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "Trường để kiểm tra bộ kích hoạt lịch trình." -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "trường tùy chỉnh ngày lịch biểu" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "bộ kích hoạt quy trình làm việc" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "quy trình kích hoạt" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "chủ đề email" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "Chủ đề của email, có thể bao gồm một số trình giữ chỗ, xem tài liệu." -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "nội dung email" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "Nội dung email có thể bao gồm một số trình giữ chỗ, xem tài liệu." -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "email đến" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "Các địa chỉ email đích, phân tách bằng dấu phẩy." -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "bao gồm tài liệu trong email" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "url của webhook" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "URL đích của thông báo." -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "dùng tham số" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "gửi ở dạng JSON" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "tham số webhook" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "Các tham số để gửi cùng với URL webhook nếu nội dung không được sử dụng." -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "nội dung webhook" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "Nội dung để gửi bằng URL webhook nếu các tham số không được sử dụng." -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "đầu đề webhook" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Tiêu đề để gửi bằng URL webhook." -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "bao gồm tài liệu trong webhook" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "Gán giá trị" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "Gỡ bỏ" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "Thư điện tử" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "Xóa mật khẩu" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "Di chuyển đến thùng rác" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "Loại Hành động Quy trình làm việc" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "thứ tự" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "gán tiêu đề" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "Gán tiêu đề tài liệu, phải là mẫu Jinja2, xem tài liệu hướng dẫn." -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "gán thẻ này" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "gán loại tài liệu này" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "gán người gửi này" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "gán đường dẫn lưu trữ này" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "gán chủ sở hữu này" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "cấp quyền xem cho những người dùng này" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "cấp quyền xem cho những nhóm này" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "cho phép thay đổi quyền đối với những người dùng này" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "cho phép thay đổi các quyền đối với những nhóm này" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "gán các trường tùy chỉnh này" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "giá trị trường tùy chỉnh" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "Các giá trị tùy chọn để gán cho trường tùy chỉnh." -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "loại bỏ các nhãn này" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "loại bỏ tất cả các nhãn" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "xóa (các) loại tài liệu này" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "loại bỏ tất cả các loại tài liệu" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "xóa (các) người gửi này" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "xóa tất cả người gửi" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "loại bỏ (các) đường dẫn lưu trữ này" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "loại bỏ tất cả đường dẫn lưu trữ" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "xóa những chủ sở hữu này" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "loại bỏ tất cả chủ sở hữu" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "loại bỏ quyền xem của những người dùng này" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "loại bỏ quyền xem của những nhóm này" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "loại bỏ quyền thay đổi cho những người dùng này" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "loại bỏ quyền thay đổi cho những nhóm này" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "loại bỏ tất cả quyền" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "loại bỏ các trường tùy chỉnh này" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "loại bỏ tất cả trường tùy chỉnh" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "gửi email" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "mật khẩu" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "Mật khẩu để thử khi xóa bảo vệ PDF. Ngăn cách bằng dấu phẩy hoặc dòng mới." -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "hành động quy trình" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "hành động quy trình" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "điều kiện kích hoạt" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "hành động" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "cho phép" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "quy trình" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "loại kích hoạt quy trình làm việc" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "ngày chạy" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "lần chạy quy trình" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "các lần chạy quy trình" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "Không có đủ quyền." -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "Màu không hợp lệ." -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "Loại tập tin %(type)s không được hỗ trợ" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "ID trường tùy chỉnh phải là số nguyên: %(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "Trường tùy chỉnh với ID %(id)s không tồn tại" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "Trường tùy chỉnh phải là danh sách số nguyên hoặc đối tượng ánh xạ ID sang giá trị." -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "Một số trường tùy chỉnh không tồn tại hoặc được chỉ định hai lần." -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "Đã phát hiện biến số không hợp lệ." -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "Không cho phép các định danh tài liệu trùng lặp" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "Không tìm thấy tài liệu: %(ids)s" @@ -1911,40 +1932,40 @@ msgstr "Giao thức URI '{parts.scheme}' không được phép. Các giao thức msgid "Unable to parse URI {value}" msgstr "Không thể phân tích URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "Không đủ quyền để chia sẻ tài liệu %(id)s" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "Gói đang được xử lý" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "Liên kết chia sẻ gói vẫn đang được chuẩn bị. Vui lòng thử lại sau." -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "Không tồn tại liên kết chia sẻ gói" @@ -2160,223 +2181,231 @@ msgstr "Đặt ánh xạ mã vạch thẻ" msgid "Enables splitting on tag barcodes" msgstr "Kích hoạt tách trên mã vạch thẻ" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "Kích hoạt các tính năng AI " -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "Thiết đặt backend cho LLM nhúng" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "Thiết đặt mô hình cho LLM nhúng" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" msgstr "" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "" + +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "Thiết đặt backend cho LLM " -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "Thiết đặt mô hình cho LLM" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "Thiết đặt khóa API cho LLM" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "Thiết đặt đầu cuối cho LLM, tùy chọn" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "thiết đặt ứng dụng không cần giấy tờ" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "Tiếng Anh (Hoa Kỳ)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "Tiếng Ả Rập" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Tiếng Afrikaans" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "Tiếng Belarus" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "Tiếng Bulgaria" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Tiếng Catalan" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "Séc" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "Đan Mạch" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "Tiếng Đức" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Tiếng Hy Lạp" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "Tiếng Anh (GB)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "Tiếng Tây Ban Nha" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "Tiếng Ba Tư" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "Tiếng Phần Lan" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "Tiếng Pháp" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "Tiếng Hungary" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "Tiếng Indonesia" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "Tiếng Ý" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "Tiếng Nhật" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "Tiếng Hàn" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "Luxembourgish" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Tiếng Na Uy" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "Tiếng Hà Lan" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "Tiếng Ba Lan" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "Tiếng Bồ Đào Nha (Brazil)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "Tiếng Bồ Đào Nha" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "Tiếng Romania" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "Tiếng Nga" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "Tiếng Slovakia" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "Tiếng Slovenia" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "Tiếng Serbia" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "Tiếng Thụy Điển" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "Thổ Nhĩ Kỳ" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "Ukraine" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "Tiếng Việt" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "Tiếng Trung Giản thể" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "Tiếng Trung (Phồn thể)" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Quản trị" diff --git a/src/locale/zh_CN/LC_MESSAGES/django.po b/src/locale/zh_CN/LC_MESSAGES/django.po index 28e388e25..4df7a7819 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: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -57,31 +57,31 @@ msgstr "超出最大嵌套深度。" msgid "Custom field not found" msgstr "Custom field not found" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "所有者" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "无" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "任意单词" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "所有单词" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "精确匹配" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "正则表达式" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "模糊单词" @@ -89,20 +89,20 @@ msgstr "模糊单词" msgid "Automatic" msgstr "自动" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "名称" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "匹配" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "匹配算法" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "忽略大小写" @@ -166,7 +166,7 @@ msgstr "保存路径" msgid "title" msgstr "标题" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "内容" @@ -202,8 +202,8 @@ msgstr "页数" msgid "The number of pages of the document." msgstr "文档页数。" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "已创建" @@ -267,1395 +267,1416 @@ msgstr "版本标签" msgid "Optional short label for a document version." msgstr "文档版本的可选短标签。" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "文档" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "文档" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "归档" -#: documents/models.py:553 +#: documents/models.py:563 msgid "Bank" msgstr "银行" -#: documents/models.py:554 +#: documents/models.py:564 msgid "Basket" msgstr "" -#: documents/models.py:555 +#: documents/models.py:565 msgid "Bell" msgstr "" -#: documents/models.py:556 +#: documents/models.py:566 msgid "Bookmark" msgstr "书签" -#: documents/models.py:557 +#: documents/models.py:567 msgid "Boxes" msgstr "盒子" -#: documents/models.py:558 +#: documents/models.py:568 msgid "Briefcase" msgstr "公文包" -#: documents/models.py:559 +#: documents/models.py:569 msgid "Building" msgstr "建筑" -#: documents/models.py:560 +#: documents/models.py:570 msgid "Calculator" msgstr "计算器" -#: documents/models.py:561 +#: documents/models.py:571 msgid "Calendar" msgstr "日历" -#: documents/models.py:562 +#: documents/models.py:572 msgid "Camera" msgstr "相机" -#: documents/models.py:563 +#: documents/models.py:573 msgid "Checklist" msgstr "检查清单" -#: documents/models.py:564 +#: documents/models.py:574 msgid "Cash" msgstr "现金" -#: documents/models.py:565 +#: documents/models.py:575 msgid "Chat" msgstr "聊天" -#: documents/models.py:566 +#: documents/models.py:576 msgid "Check" msgstr "检查" -#: documents/models.py:567 +#: documents/models.py:577 msgid "Clipboard" msgstr "剪贴板" -#: documents/models.py:568 +#: documents/models.py:578 msgid "Clock" msgstr "时钟" -#: documents/models.py:569 +#: documents/models.py:579 msgid "Credit card" msgstr "信用卡" -#: documents/models.py:570 +#: documents/models.py:580 msgid "Download" msgstr "下载" -#: documents/models.py:571 +#: documents/models.py:581 msgid "Envelope" msgstr "信封" -#: documents/models.py:572 +#: documents/models.py:582 msgid "Warning" msgstr "警告" -#: documents/models.py:573 +#: documents/models.py:583 msgid "File" msgstr "文件" -#: documents/models.py:574 +#: documents/models.py:584 msgid "Checked file" msgstr "已检查的文件" -#: documents/models.py:575 +#: documents/models.py:585 msgid "Locked file" msgstr "锁定的文件" -#: documents/models.py:576 +#: documents/models.py:586 msgid "Medical file" msgstr "医疗文件" -#: documents/models.py:577 +#: documents/models.py:587 msgid "Person file" msgstr "个人文件" -#: documents/models.py:580 +#: documents/models.py:590 msgid "Spreadsheet" msgstr "表格" -#: documents/models.py:582 +#: documents/models.py:592 msgid "Text file" msgstr "文本文件" -#: documents/models.py:583 +#: documents/models.py:593 msgid "Files" msgstr "文件" -#: documents/models.py:584 +#: documents/models.py:594 msgid "Folder" msgstr "文件夹" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "过滤器" -#: documents/models.py:586 +#: documents/models.py:596 msgid "Gear" msgstr "" -#: documents/models.py:587 +#: documents/models.py:597 msgid "Globe" msgstr "地球" -#: documents/models.py:588 +#: documents/models.py:598 msgid "Hash" msgstr "哈希值" -#: documents/models.py:589 +#: documents/models.py:599 msgid "Heart" msgstr "心形" -#: documents/models.py:590 +#: documents/models.py:600 msgid "House" msgstr "房子" -#: documents/models.py:591 +#: documents/models.py:601 msgid "Inbox" msgstr "收件箱" -#: documents/models.py:592 +#: documents/models.py:602 msgid "Journals" msgstr "日记" -#: documents/models.py:593 +#: documents/models.py:603 msgid "Task list" msgstr "任务列表" -#: documents/models.py:594 +#: documents/models.py:604 msgid "Newspaper" msgstr "报纸" -#: documents/models.py:595 +#: documents/models.py:605 msgid "Attachment" msgstr "附件" -#: documents/models.py:596 +#: documents/models.py:606 msgid "People" msgstr "" -#: documents/models.py:597 +#: documents/models.py:607 msgid "Person" msgstr "" -#: documents/models.py:598 +#: documents/models.py:608 msgid "Printer" msgstr "" -#: documents/models.py:599 +#: documents/models.py:609 msgid "Receipt" msgstr "收据" -#: documents/models.py:600 +#: documents/models.py:610 msgid "Safe" msgstr "" -#: documents/models.py:601 +#: documents/models.py:611 msgid "Search" msgstr "" -#: documents/models.py:602 +#: documents/models.py:612 msgid "Send" msgstr "" -#: documents/models.py:603 +#: documents/models.py:613 msgid "Shop" msgstr "" -#: documents/models.py:604 +#: documents/models.py:614 msgid "Stack" msgstr "" -#: documents/models.py:605 +#: documents/models.py:615 msgid "Stars" msgstr "" -#: documents/models.py:606 +#: documents/models.py:616 msgid "Tag" msgstr "标签" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "标签" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" msgstr "" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" msgstr "" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" msgstr "" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" msgstr "钱包" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "表格" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "小卡片" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "大卡片" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "标题" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "创建时间" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "添加时间" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "往来方" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "文档类型" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "保存路径" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "备注" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "所有者" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "已分享" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "ASN" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "页" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" msgstr "" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "排序字段" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "反向排序" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "查看页面大小" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "查看显示模式" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "文档显示字段" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "保存的视图" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "保存的视图" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "标题包含" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "内容包含" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "ASN 为" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "联系人是" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "文档类型是" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "在收件箱中" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "有标签" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "有任意标签" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "在此时间之前创建" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "在此时间之后创建" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "创建年份是" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "创建月份是" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "创建日期是" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "添加早于" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "添加晚于" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "修改早于" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "修改晚于" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "没有标签" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "没有 ASN" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "标题或内容包含" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "全文检索" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "如同这个" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "有标签包含于" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "ASN 大于" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "ASN 小于" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "保存路径" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "往来方" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "没有往来方" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "文档类型" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "没有文档类型" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "存储路径" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "没有存储路径" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "所有者是" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "已经设置所有者" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "没有所有者" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "没有所有者" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "添加自定义字段值" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "由我分享" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "具有自定义字段" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "具有自定义字段在其中" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "没有自定义字段在其中" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "没有自定义字段" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "自定义字段查询" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "创建到" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "创建于" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "添加到" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "添加于" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "MIME 类型是" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" msgstr "简易标题搜索" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" msgstr "简易文本搜索" -#: documents/models.py:732 +#: documents/models.py:742 msgid "has duplicates" msgstr "" -#: documents/models.py:742 +#: documents/models.py:752 msgid "rule type" msgstr "规则类型" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "值" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "过滤规则" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "过滤规则" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" msgstr "等待处理" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" msgstr "已启动" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" msgstr "成功" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" msgstr "失败" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" msgstr "已撤销" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "处理文件" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "训练分类器" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" msgstr "合理性检查" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "索引优化" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "邮件获取" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" msgstr "LLM 索引" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" msgstr "清空回收站" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" msgstr "检查工作流" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" msgstr "批量更新" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" msgstr "重新处理文档" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" msgstr "构建分享链接" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" msgstr "批量删除" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" msgstr "应用 AI 建议" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "已预约" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "网页界面 (Web UI)" -#: documents/models.py:808 +#: documents/models.py:818 msgid "API Upload" msgstr "API 上传" -#: documents/models.py:809 +#: documents/models.py:819 msgid "Folder Consume" msgstr "文件夹消耗量" -#: documents/models.py:810 +#: documents/models.py:820 msgid "Email Consume" msgstr "电子邮件消耗量" -#: documents/models.py:811 +#: documents/models.py:821 msgid "System" msgstr "系统" -#: documents/models.py:812 +#: documents/models.py:822 msgid "Manual" msgstr "手动" -#: documents/models.py:818 +#: documents/models.py:828 msgid "Task ID" msgstr "任务ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" msgstr "" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "任务类型" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" msgstr "正在进行的工作类型" -#: documents/models.py:833 +#: documents/models.py:843 msgid "Trigger Source" msgstr "触发源" -#: documents/models.py:834 +#: documents/models.py:844 msgid "What initiated this task" msgstr "什么启动了这个任务" -#: documents/models.py:843 +#: documents/models.py:853 msgid "Status" msgstr "状态" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" msgstr "已完成" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" msgstr "持续时间(秒)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" msgstr "从开始到完成的已用时间" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" msgstr "等待时间 (秒)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" msgstr "从任务创建到worker拾取的时间" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" msgstr "输入数据" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" msgstr "任务的结构化输入参数" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "结果数据" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" msgstr "任务执行的结构化结果数据" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "已确认" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" msgstr "任务" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" msgstr "任务" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "文档备注" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "用户" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "备注" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "备注" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "原版" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "过期时间" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "缩写" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "分享链接" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "分享链接" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "正在处理" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "就绪" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "失败" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "大小(字节)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" msgstr "最后一个错误" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "文件路径" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" msgstr "构建于" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" msgstr "分享链接包" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" msgstr "分享链接包" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" msgstr "分享链接包 %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "字符串" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL链接" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "日期" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "布尔型" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "整数" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "浮点数" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "货币" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "文档链接" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "选择" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "Good" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "数据类型" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "额外数据" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "自定义字段的额外数据,例如选择选项" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "自定义字段" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "自定义字段" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "自定义字段实例" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "自定义字段实例" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "消费已开始" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "文档已添加" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "文档已更新" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" msgstr "消费文件夹" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "Api上传" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "修改时间" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "自定义字段" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "工作流触发器类型" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "过滤路径" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "只消耗匹配了指定路径的文档。路径指定中允许使用*作为通配符,大小写不敏感。" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "过滤文件名" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "如果指定了文件名,只处理完全匹配此文件名的文档。允许使用通配符,如 *.pdf 或 *发票*。不区分大小写。" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "从邮件规则中过滤文档" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "有这些标签(s)" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "全部包含这些标签" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "不包含这些标签(s)" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "具有此文档类型" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" msgstr "有其中一种文档类型" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "不包含这些文档类型(s)" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "已有此往来方" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "不包含这些往来方" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" msgstr "属于以下任一往来方" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "使用此存储路径" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" msgstr "有其中一个存储路径" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "不包含这些存储路径(s)" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "自定义字段查询筛选" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON编码的自定义字段查询表达式。" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "预约偏移天数" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "预约触发器的偏移天数。" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "预约已设定循环" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "预约是否应该循环。" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "预约循环延迟天数" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "预约触发器循环间隔天数。" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "预约日期字段" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "预约触发器对应的字段" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "预约自定义日期字段" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "工作流触发器" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "工作流触发器" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "邮件主题" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "邮件主题,可以包含一些占位符,参见文档。" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "邮件正文" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "邮件正文(内容),可以包含一些占位符,参见文档。" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "发送邮件到" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "目标邮箱地址,以逗号分隔。" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "在邮件中添加文档" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "webhook链接" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "通知的目标地址" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "使用参数" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "以 JSON 格式发送" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "webhook 参数" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "要添加的webhook参数(不使用负载时)" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "webhook负载" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "要添加的webhook负载(不使用参数时)" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "webhook标头" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "要添加的webhook标头" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "在webhook中添加文档" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "分配任务" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "移除" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "电子邮件" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" msgstr "删除密码" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" msgstr "移动到回收站" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" msgstr "" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" msgstr "" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" msgstr "" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" msgstr "" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" msgstr "" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "工作流动作类型" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "排序" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "指定标题" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "分配文档标题,必须为 Jinja2 模板,参见文档。" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "分配此标签" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "分配此文档类型" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "分配此往来方" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "指定存储路径" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "指定所有者" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "为这些用户授予观看权限" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "为这些用户组授予观看权限" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "为这些用户授予修改权限" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "为这些用户组授予修改权限" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "分配这些自定义字段" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "自定义字段值" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "给自定义字段分配可选值。" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "移除这些标签" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "删除全部标签" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "移除这些文档类型 " -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "移除所有文档类型" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "移除这些往来方" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "移除所有往来方" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "移除这些存储路径" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "移除全部存储路径" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "移除这些所有者 " -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "移除所有所有者" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "移除这些用户的查看权限" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "移除这些组的查看权限" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "为这些用户授予修改权限" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "移除这些组的更改权限" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "移除所有权限" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "移除这些自定义字段" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "移除所有自定义字段" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "电子邮件" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" msgstr "密码" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." msgstr "移除PDF保护时的密码。用逗号或新行分隔。" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" msgstr "" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." msgstr "" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" msgstr "" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." msgstr "" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" msgstr "" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." msgstr "" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "工作流动作" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "工作流动作" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "触发器" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "动作" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" msgstr "已启用" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "工作流" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "工作流触发类型" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "运行日期" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "工作流运行" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "工作流运行" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." msgstr "权限不足。" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "无效的颜色" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "不支持文件类型 %(type)s" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "自定义字段 id 必须是数字:%(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "自定义字段 id %(id)s 不存在" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." msgstr "自定义字段必须为整数列表,或是一个将ID映射到值的对象。" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "部分自定义字段不存在或重复指定。" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "检测到无效变量。" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." msgstr "不允许重复文档标识符。" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" msgstr "未找到文档:%(ids)s" @@ -1911,40 +1932,40 @@ msgstr "URI 格式 '{parts.scheme}' 不支持。支持的格式有:{', '.join( msgid "Unable to parse URI {value}" msgstr "无法解析 URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" msgstr "无效的more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." msgstr "无效的 AI 配置。" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." msgstr "AI 后端请求超时。" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." msgstr "" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." msgstr "只能指定 text、title_search、query 或 more_like_id 中的一项。" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." msgstr "权限不足以分享文件:%(id)s。" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." msgstr "捆绑包已在处理中。" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." msgstr "分享链接包仍在准备中,请稍后再试。" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." msgstr "分享链接包不可用。" @@ -2160,223 +2181,231 @@ msgstr "设置标签条码映射" msgid "Enables splitting on tag barcodes" msgstr "启用标签条码拆分" -#: paperless/models.py:312 +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" +msgstr "" + +#: paperless/models.py:318 msgid "Sets the remote OCR engine" msgstr "" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" msgstr "" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" msgstr "" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" msgstr "" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "启用 AI 功能" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" msgstr "设置 LLM 嵌入后端" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" msgstr "设置 LLM 嵌入模型" -#: paperless/models.py:369 +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "" + +#: paperless/models.py:382 msgid "Sets the LLM embedding endpoint, optional" msgstr "设置 LLM 嵌入接口(可选)" -#: paperless/models.py:376 +#: paperless/models.py:389 msgid "Sets the LLM embedding chunk size" msgstr "设置 LLM 嵌入分块大小" -#: paperless/models.py:382 +#: paperless/models.py:395 msgid "Sets the LLM context size" msgstr "设置 LLM 上下文大小" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" msgstr "设置 LLM 后端" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" msgstr "设置 LLM 模型" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" msgstr "设置 LLM API 密钥" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" msgstr "设置 LLM 接口(可选)" -#: paperless/models.py:417 +#: paperless/models.py:430 msgid "Sets the LLM output language" msgstr "设置 LLM 输出语言" -#: paperless/models.py:424 +#: paperless/models.py:437 msgid "Sets the LLM timeout in seconds" msgstr "设置 LLM 超时时间(秒)" -#: paperless/models.py:430 +#: paperless/models.py:443 msgid "paperless application settings" msgstr "paperless 应用设置" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "英语(美国)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "阿拉伯语" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "Afrikaans 荷兰语" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "白俄罗斯语" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "保加利亚语" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "Catalan 加泰罗尼亚语" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "捷克语" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "丹麦语" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "德语" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "Greek 希腊语" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "英语(英国)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "西班牙语" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "波斯文" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "已完成" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "法语" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "匈牙利语" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" msgstr "印度尼西亚语" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "意大利语" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "日语" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "韩语" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "卢森堡语" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "Norwegian 挪威语" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "荷兰语" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "波兰语" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "葡萄牙语 (巴西)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "葡萄牙语" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "罗马尼亚语" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "俄语" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "斯洛伐克语" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "斯洛语尼亚语" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "塞尔维亚语" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "瑞典语" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "土耳其语" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "乌克兰语" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "越南语" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "简体中文" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "繁体中文" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx 管理" diff --git a/src/locale/zh_TW/LC_MESSAGES/django.po b/src/locale/zh_TW/LC_MESSAGES/django.po index 78933055c..4f12c9dfd 100644 --- a/src/locale/zh_TW/LC_MESSAGES/django.po +++ b/src/locale/zh_TW/LC_MESSAGES/django.po @@ -2,8 +2,8 @@ msgid "" msgstr "" "Project-Id-Version: paperless-ngx\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-09-18 01:29+0000\n" -"PO-Revision-Date: 2026-09-18 01:30\n" +"POT-Creation-Date: 2026-10-05 16:26+0000\n" +"PO-Revision-Date: 2026-10-05 16:27\n" "Last-Translator: \n" "Language-Team: Chinese Traditional\n" "Language: zh_TW\n" @@ -57,31 +57,31 @@ msgstr "超過最大巢狀深度。" msgid "Custom field not found" msgstr "找不到自訂欄位" -#: documents/models.py:40 documents/models.py:1020 documents/models.py:1068 +#: documents/models.py:40 documents/models.py:1111 documents/models.py:1159 msgid "owner" msgstr "擁有者" -#: documents/models.py:57 documents/models.py:1366 +#: documents/models.py:57 documents/models.py:1457 msgid "None" msgstr "無" -#: documents/models.py:58 documents/models.py:1367 +#: documents/models.py:58 documents/models.py:1458 msgid "Any word" msgstr "任何字詞" -#: documents/models.py:59 documents/models.py:1368 +#: documents/models.py:59 documents/models.py:1459 msgid "All words" msgstr "所有字詞" -#: documents/models.py:60 documents/models.py:1369 +#: documents/models.py:60 documents/models.py:1460 msgid "Exact match" msgstr "完全符合" -#: documents/models.py:61 documents/models.py:1370 +#: documents/models.py:61 documents/models.py:1461 msgid "Regular expression" msgstr "正則表達式" -#: documents/models.py:62 documents/models.py:1371 +#: documents/models.py:62 documents/models.py:1462 msgid "Fuzzy word" msgstr "模糊字詞" @@ -89,20 +89,20 @@ msgstr "模糊字詞" msgid "Automatic" msgstr "自動" -#: documents/models.py:66 documents/models.py:633 documents/models.py:1992 +#: documents/models.py:66 documents/models.py:643 documents/models.py:2083 #: paperless_mail/models.py:23 paperless_mail/models.py:143 msgid "name" msgstr "名稱" -#: documents/models.py:68 documents/models.py:1435 +#: documents/models.py:68 documents/models.py:1526 msgid "match" msgstr "比對" -#: documents/models.py:71 documents/models.py:1438 +#: documents/models.py:71 documents/models.py:1529 msgid "matching algorithm" msgstr "比對演算法" -#: documents/models.py:76 documents/models.py:1443 +#: documents/models.py:76 documents/models.py:1534 msgid "is insensitive" msgstr "不區分大小寫" @@ -166,7 +166,7 @@ msgstr "儲存路徑" msgid "title" msgstr "標題" -#: documents/models.py:191 documents/models.py:934 +#: documents/models.py:191 documents/models.py:944 msgid "content" msgstr "內容" @@ -202,8 +202,8 @@ msgstr "頁數" msgid "The number of pages of the document." msgstr "文件的頁數。" -#: documents/models.py:248 documents/models.py:940 documents/models.py:978 -#: documents/models.py:1040 documents/models.py:1168 documents/models.py:1227 +#: documents/models.py:248 documents/models.py:950 documents/models.py:1069 +#: documents/models.py:1131 documents/models.py:1259 documents/models.py:1318 msgid "created" msgstr "建立日期" @@ -249,1416 +249,1437 @@ msgstr "實體紙本文件的存放位置。" #: documents/models.py:321 msgid "root document for this version" -msgstr "" +msgstr "此版本的根文件" #: documents/models.py:325 msgid "version index" -msgstr "" +msgstr "版本索引" #: documents/models.py:329 msgid "Index of this version within the root document." -msgstr "" +msgstr "此版本在根文件中的索引。" #: documents/models.py:333 msgid "version label" -msgstr "" +msgstr "版本標籤" #: documents/models.py:337 msgid "Optional short label for a document version." -msgstr "" +msgstr "文件版本的簡短標籤(選填)" -#: documents/models.py:342 documents/models.py:951 documents/models.py:1005 -#: documents/models.py:2035 +#: documents/models.py:342 documents/models.py:961 documents/models.py:992 +#: documents/models.py:1096 documents/models.py:2126 msgid "document" msgstr "文件" -#: documents/models.py:343 documents/models.py:1111 +#: documents/models.py:343 documents/models.py:1202 msgid "documents" msgstr "文件" -#: documents/models.py:552 documents/models.py:974 +#: documents/models.py:562 documents/models.py:1065 msgid "Archive" msgstr "封存" -#: documents/models.py:553 -msgid "Bank" -msgstr "" - -#: documents/models.py:554 -msgid "Basket" -msgstr "" - -#: documents/models.py:555 -msgid "Bell" -msgstr "" - -#: documents/models.py:556 -msgid "Bookmark" -msgstr "" - -#: documents/models.py:557 -msgid "Boxes" -msgstr "" - -#: documents/models.py:558 -msgid "Briefcase" -msgstr "" - -#: documents/models.py:559 -msgid "Building" -msgstr "" - -#: documents/models.py:560 -msgid "Calculator" -msgstr "" - -#: documents/models.py:561 -msgid "Calendar" -msgstr "" - -#: documents/models.py:562 -msgid "Camera" -msgstr "" - #: documents/models.py:563 -msgid "Checklist" -msgstr "" +msgid "Bank" +msgstr "銀行" #: documents/models.py:564 -msgid "Cash" -msgstr "" +msgid "Basket" +msgstr "購物籃" #: documents/models.py:565 -msgid "Chat" -msgstr "" +msgid "Bell" +msgstr "鈴鐺" #: documents/models.py:566 -msgid "Check" -msgstr "" +msgid "Bookmark" +msgstr "書籤" #: documents/models.py:567 -msgid "Clipboard" -msgstr "" +msgid "Boxes" +msgstr "箱子" #: documents/models.py:568 -msgid "Clock" -msgstr "" +msgid "Briefcase" +msgstr "公事包" #: documents/models.py:569 -msgid "Credit card" -msgstr "" +msgid "Building" +msgstr "大樓" #: documents/models.py:570 -msgid "Download" -msgstr "" +msgid "Calculator" +msgstr "計算機" #: documents/models.py:571 -msgid "Envelope" -msgstr "" +msgid "Calendar" +msgstr "行事曆" #: documents/models.py:572 -msgid "Warning" -msgstr "" +msgid "Camera" +msgstr "相機" #: documents/models.py:573 -msgid "File" -msgstr "" +msgid "Checklist" +msgstr "檢查表" #: documents/models.py:574 -msgid "Checked file" -msgstr "" +msgid "Cash" +msgstr "現金" #: documents/models.py:575 -msgid "Locked file" -msgstr "" +msgid "Chat" +msgstr "聊天" #: documents/models.py:576 -msgid "Medical file" -msgstr "" +msgid "Check" +msgstr "打勾" #: documents/models.py:577 -msgid "Person file" -msgstr "" +msgid "Clipboard" +msgstr "剪貼板" + +#: documents/models.py:578 +msgid "Clock" +msgstr "時鐘" + +#: documents/models.py:579 +msgid "Credit card" +msgstr "信用卡" #: documents/models.py:580 -msgid "Spreadsheet" -msgstr "" +msgid "Download" +msgstr "下載" + +#: documents/models.py:581 +msgid "Envelope" +msgstr "信封" #: documents/models.py:582 -msgid "Text file" -msgstr "" +msgid "Warning" +msgstr "警告" #: documents/models.py:583 -msgid "Files" -msgstr "" +msgid "File" +msgstr "檔案" #: documents/models.py:584 -msgid "Folder" -msgstr "" +msgid "Checked file" +msgstr "已檢查的檔案" -#: documents/models.py:585 paperless_mail/admin.py:58 +#: documents/models.py:585 +msgid "Locked file" +msgstr "已鎖定的檔案" + +#: documents/models.py:586 +msgid "Medical file" +msgstr "醫療檔案" + +#: documents/models.py:587 +msgid "Person file" +msgstr "人物檔案" + +#: documents/models.py:590 +msgid "Spreadsheet" +msgstr "試算表" + +#: documents/models.py:592 +msgid "Text file" +msgstr "文字檔案" + +#: documents/models.py:593 +msgid "Files" +msgstr "檔案" + +#: documents/models.py:594 +msgid "Folder" +msgstr "檔案夾" + +#: documents/models.py:595 paperless_mail/admin.py:58 msgid "Filter" msgstr "篩選器" -#: documents/models.py:586 -msgid "Gear" -msgstr "" - -#: documents/models.py:587 -msgid "Globe" -msgstr "" - -#: documents/models.py:588 -msgid "Hash" -msgstr "" - -#: documents/models.py:589 -msgid "Heart" -msgstr "" - -#: documents/models.py:590 -msgid "House" -msgstr "" - -#: documents/models.py:591 -msgid "Inbox" -msgstr "" - -#: documents/models.py:592 -msgid "Journals" -msgstr "" - -#: documents/models.py:593 -msgid "Task list" -msgstr "" - -#: documents/models.py:594 -msgid "Newspaper" -msgstr "" - -#: documents/models.py:595 -msgid "Attachment" -msgstr "" - #: documents/models.py:596 -msgid "People" -msgstr "" +msgid "Gear" +msgstr "齒輪" #: documents/models.py:597 -msgid "Person" -msgstr "" +msgid "Globe" +msgstr "地球" #: documents/models.py:598 -msgid "Printer" -msgstr "" +msgid "Hash" +msgstr "井字號" #: documents/models.py:599 -msgid "Receipt" -msgstr "" +msgid "Heart" +msgstr "愛心" #: documents/models.py:600 -msgid "Safe" -msgstr "" +msgid "House" +msgstr "房子" #: documents/models.py:601 -msgid "Search" -msgstr "" +msgid "Inbox" +msgstr "收件匣" #: documents/models.py:602 -msgid "Send" -msgstr "" +msgid "Journals" +msgstr "日記" #: documents/models.py:603 -msgid "Shop" -msgstr "" +msgid "Task list" +msgstr "任務清單" #: documents/models.py:604 -msgid "Stack" -msgstr "" +msgid "Newspaper" +msgstr "報紙" #: documents/models.py:605 -msgid "Stars" -msgstr "" +msgid "Attachment" +msgstr "附加檔案" #: documents/models.py:606 -msgid "Tag" -msgstr "" +msgid "People" +msgstr "人物" -#: documents/models.py:607 documents/models.py:622 documents/models.py:1713 +#: documents/models.py:607 +msgid "Person" +msgstr "個人" + +#: documents/models.py:608 +msgid "Printer" +msgstr "印表機" + +#: documents/models.py:609 +msgid "Receipt" +msgstr "收據" + +#: documents/models.py:610 +msgid "Safe" +msgstr "保險箱" + +#: documents/models.py:611 +msgid "Search" +msgstr "搜尋" + +#: documents/models.py:612 +msgid "Send" +msgstr "傳送" + +#: documents/models.py:613 +msgid "Shop" +msgstr "商店" + +#: documents/models.py:614 +msgid "Stack" +msgstr "堆疊" + +#: documents/models.py:615 +msgid "Stars" +msgstr "星星" + +#: documents/models.py:616 +msgid "Tag" +msgstr "標籤" + +#: documents/models.py:617 documents/models.py:632 documents/models.py:1804 msgid "Tags" msgstr "標籤" -#: documents/models.py:608 +#: documents/models.py:618 msgid "Telephone" -msgstr "" +msgstr "電話" -#: documents/models.py:609 +#: documents/models.py:619 msgid "Truck" -msgstr "" +msgstr "卡車" -#: documents/models.py:610 +#: documents/models.py:620 msgid "Barcode" -msgstr "" +msgstr "條碼" -#: documents/models.py:611 +#: documents/models.py:621 msgid "Wallet" -msgstr "" +msgstr "錢包" -#: documents/models.py:614 +#: documents/models.py:624 msgid "Table" msgstr "表格" -#: documents/models.py:615 +#: documents/models.py:625 msgid "Small Cards" msgstr "小卡片" -#: documents/models.py:616 +#: documents/models.py:626 msgid "Large Cards" msgstr "大卡片" -#: documents/models.py:619 documents/models.py:1712 +#: documents/models.py:629 documents/models.py:1803 msgid "Title" msgstr "標題" -#: documents/models.py:620 documents/models.py:850 documents/models.py:1387 +#: documents/models.py:630 documents/models.py:860 documents/models.py:1478 msgid "Created" msgstr "建立時間" -#: documents/models.py:621 documents/models.py:1386 +#: documents/models.py:631 documents/models.py:1477 msgid "Added" msgstr "新增時間" -#: documents/models.py:623 documents/models.py:1714 +#: documents/models.py:633 documents/models.py:1805 msgid "Correspondent" msgstr "關聯方" -#: documents/models.py:624 +#: documents/models.py:634 msgid "Document Type" msgstr "文件類型" -#: documents/models.py:625 +#: documents/models.py:635 msgid "Storage Path" msgstr "儲存路徑" -#: documents/models.py:626 +#: documents/models.py:636 msgid "Note" msgstr "註解" -#: documents/models.py:627 +#: documents/models.py:637 msgid "Owner" msgstr "擁有者" -#: documents/models.py:628 +#: documents/models.py:638 msgid "Shared" msgstr "已共用" -#: documents/models.py:629 +#: documents/models.py:639 msgid "ASN" msgstr "封存序號 (ASN)" -#: documents/models.py:630 +#: documents/models.py:640 msgid "Pages" msgstr "頁面" -#: documents/models.py:636 +#: documents/models.py:646 msgid "icon" -msgstr "" +msgstr "圖示" -#: documents/models.py:643 +#: documents/models.py:653 msgid "sort field" msgstr "排序欄位" -#: documents/models.py:648 +#: documents/models.py:658 msgid "sort reverse" msgstr "倒序排序" -#: documents/models.py:651 +#: documents/models.py:661 msgid "View page size" msgstr "頁面大小" -#: documents/models.py:659 +#: documents/models.py:669 msgid "View display mode" msgstr "顯示模式" -#: documents/models.py:666 +#: documents/models.py:676 msgid "Document display fields" msgstr "文件顯示欄位" -#: documents/models.py:673 documents/models.py:739 +#: documents/models.py:683 documents/models.py:749 msgid "saved view" msgstr "已儲存的檢視表" -#: documents/models.py:674 +#: documents/models.py:684 msgid "saved views" msgstr "已儲存的檢視表" -#: documents/models.py:682 +#: documents/models.py:692 msgid "title contains" msgstr "標題包含" -#: documents/models.py:683 +#: documents/models.py:693 msgid "content contains" msgstr "內容包含" -#: documents/models.py:684 +#: documents/models.py:694 msgid "ASN is" msgstr "封存序號 (ASN) 為" -#: documents/models.py:685 +#: documents/models.py:695 msgid "correspondent is" msgstr "關聯方為" -#: documents/models.py:686 +#: documents/models.py:696 msgid "document type is" msgstr "文件類型為" -#: documents/models.py:687 +#: documents/models.py:697 msgid "is in inbox" msgstr "在收件匣內" -#: documents/models.py:688 +#: documents/models.py:698 msgid "has tag" msgstr "具有標籤" -#: documents/models.py:689 +#: documents/models.py:699 msgid "has any tag" msgstr "具有任何標籤" -#: documents/models.py:690 +#: documents/models.py:700 msgid "created before" msgstr "建立於該日期之前" -#: documents/models.py:691 +#: documents/models.py:701 msgid "created after" msgstr "建立於該日期之後" -#: documents/models.py:692 +#: documents/models.py:702 msgid "created year is" msgstr "建立年份為" -#: documents/models.py:693 +#: documents/models.py:703 msgid "created month is" msgstr "建立月份為" -#: documents/models.py:694 +#: documents/models.py:704 msgid "created day is" msgstr "建立日期為" -#: documents/models.py:695 +#: documents/models.py:705 msgid "added before" msgstr "加入於該日期之前" -#: documents/models.py:696 +#: documents/models.py:706 msgid "added after" msgstr "加入於該日期之後" -#: documents/models.py:697 +#: documents/models.py:707 msgid "modified before" msgstr "修改於該日期之前" -#: documents/models.py:698 +#: documents/models.py:708 msgid "modified after" msgstr "修改於該日期之後" -#: documents/models.py:699 +#: documents/models.py:709 msgid "does not have tag" msgstr "沒有標籤" -#: documents/models.py:700 +#: documents/models.py:710 msgid "does not have ASN" msgstr "沒有封存序號 (ASN)" -#: documents/models.py:701 +#: documents/models.py:711 msgid "title or content contains" msgstr "標題或內容包含" -#: documents/models.py:702 +#: documents/models.py:712 msgid "fulltext query" msgstr "全文查詢" -#: documents/models.py:703 +#: documents/models.py:713 msgid "more like this" msgstr "其他類似內容" -#: documents/models.py:704 +#: documents/models.py:714 msgid "has tags in" msgstr "標籤包含" -#: documents/models.py:705 +#: documents/models.py:715 msgid "ASN greater than" msgstr "封存序號 (ASN) 大於" -#: documents/models.py:706 +#: documents/models.py:716 msgid "ASN less than" msgstr "封存序號 (ASN) 小於" -#: documents/models.py:707 +#: documents/models.py:717 msgid "storage path is" msgstr "儲存路徑為" -#: documents/models.py:708 +#: documents/models.py:718 msgid "has correspondent in" msgstr "關聯方包含" -#: documents/models.py:709 +#: documents/models.py:719 msgid "does not have correspondent in" msgstr "關聯方不包含" -#: documents/models.py:710 +#: documents/models.py:720 msgid "has document type in" msgstr "文件類型包含" -#: documents/models.py:711 +#: documents/models.py:721 msgid "does not have document type in" msgstr "文件類型不包含" -#: documents/models.py:712 +#: documents/models.py:722 msgid "has storage path in" msgstr "儲存路徑包含" -#: documents/models.py:713 +#: documents/models.py:723 msgid "does not have storage path in" msgstr "儲存路徑不包含" -#: documents/models.py:714 +#: documents/models.py:724 msgid "owner is" msgstr "擁有者為" -#: documents/models.py:715 +#: documents/models.py:725 msgid "has owner in" msgstr "擁有者包含" -#: documents/models.py:716 +#: documents/models.py:726 msgid "does not have owner" msgstr "沒有擁有者" -#: documents/models.py:717 +#: documents/models.py:727 msgid "does not have owner in" msgstr "擁有者不包含" -#: documents/models.py:718 +#: documents/models.py:728 msgid "has custom field value" msgstr "具有自訂欄位值" -#: documents/models.py:719 +#: documents/models.py:729 msgid "is shared by me" msgstr "由我共用" -#: documents/models.py:720 +#: documents/models.py:730 msgid "has custom fields" msgstr "具有自訂欄位" -#: documents/models.py:721 +#: documents/models.py:731 msgid "has custom field in" msgstr "自訂欄位包含" -#: documents/models.py:722 +#: documents/models.py:732 msgid "does not have custom field in" msgstr "自訂欄位不包含" -#: documents/models.py:723 +#: documents/models.py:733 msgid "does not have custom field" msgstr "沒有自訂欄位" -#: documents/models.py:724 +#: documents/models.py:734 msgid "custom fields query" msgstr "自訂欄位查詢" -#: documents/models.py:725 +#: documents/models.py:735 msgid "created to" msgstr "建立日期至" -#: documents/models.py:726 +#: documents/models.py:736 msgid "created from" msgstr "建立日期從" -#: documents/models.py:727 +#: documents/models.py:737 msgid "added to" msgstr "新增日期至" -#: documents/models.py:728 +#: documents/models.py:738 msgid "added from" msgstr "新增日期從" -#: documents/models.py:729 +#: documents/models.py:739 msgid "mime type is" msgstr "MIME 類型為" -#: documents/models.py:730 +#: documents/models.py:740 msgid "simple title search" -msgstr "" +msgstr "標題簡易搜尋" -#: documents/models.py:731 +#: documents/models.py:741 msgid "simple text search" -msgstr "" - -#: documents/models.py:732 -msgid "has duplicates" -msgstr "" +msgstr "文字簡易搜尋" #: documents/models.py:742 +msgid "has duplicates" +msgstr "具有重複項目" + +#: documents/models.py:752 msgid "rule type" msgstr "規則類型" -#: documents/models.py:744 +#: documents/models.py:754 documents/models.py:1000 msgid "value" msgstr "參數值" -#: documents/models.py:747 +#: documents/models.py:757 msgid "filter rule" msgstr "篩選規則" -#: documents/models.py:748 +#: documents/models.py:758 msgid "filter rules" msgstr "篩選規則" -#: documents/models.py:778 documents/models.py:1034 +#: documents/models.py:788 documents/models.py:1125 msgid "Pending" -msgstr "" +msgstr "待處理" -#: documents/models.py:779 documents/models.py:857 +#: documents/models.py:789 documents/models.py:867 msgid "Started" -msgstr "" +msgstr "已開始" -#: documents/models.py:780 +#: documents/models.py:790 msgid "Success" -msgstr "" +msgstr "成功" -#: documents/models.py:781 +#: documents/models.py:791 msgid "Failure" -msgstr "" +msgstr "失敗" -#: documents/models.py:782 +#: documents/models.py:792 msgid "Revoked" -msgstr "" +msgstr "已撤銷" -#: documents/models.py:785 +#: documents/models.py:795 msgid "Consume File" msgstr "處理文件" -#: documents/models.py:786 +#: documents/models.py:796 msgid "Train Classifier" msgstr "分類器訓練" -#: documents/models.py:787 +#: documents/models.py:797 msgid "Sanity Check" -msgstr "" +msgstr "系統健全性檢查" -#: documents/models.py:788 +#: documents/models.py:798 msgid "Index Optimize" msgstr "索引最佳化" -#: documents/models.py:789 documents/models.py:1382 +#: documents/models.py:799 documents/models.py:1473 msgid "Mail Fetch" msgstr "郵件擷取" -#: documents/models.py:790 +#: documents/models.py:800 msgid "LLM Index" -msgstr "" +msgstr "LLM 索引" -#: documents/models.py:791 +#: documents/models.py:801 msgid "Empty Trash" -msgstr "" +msgstr "清空垃圾桶" -#: documents/models.py:792 +#: documents/models.py:802 msgid "Check Workflows" -msgstr "" +msgstr "檢查工作流程" -#: documents/models.py:793 +#: documents/models.py:803 msgid "Bulk Update" -msgstr "" +msgstr "批次更新" -#: documents/models.py:794 +#: documents/models.py:804 msgid "Reprocess Document" -msgstr "" +msgstr "重新處理文件" -#: documents/models.py:795 +#: documents/models.py:805 msgid "Build Share Link" -msgstr "" +msgstr "建立共用連結" -#: documents/models.py:796 +#: documents/models.py:806 msgid "Bulk Delete" -msgstr "" +msgstr "批次刪除" -#: documents/models.py:797 +#: documents/models.py:807 msgid "Apply AI Suggestions" -msgstr "" +msgstr "套用 AI 建議" -#: documents/models.py:806 documents/models.py:1377 +#: documents/models.py:816 documents/models.py:1468 msgid "Scheduled" msgstr "已排程" -#: documents/models.py:807 documents/models.py:1383 +#: documents/models.py:817 documents/models.py:1474 msgid "Web UI" msgstr "網頁介面" -#: documents/models.py:808 -msgid "API Upload" -msgstr "" - -#: documents/models.py:809 -msgid "Folder Consume" -msgstr "" - -#: documents/models.py:810 -msgid "Email Consume" -msgstr "" - -#: documents/models.py:811 -msgid "System" -msgstr "" - -#: documents/models.py:812 -msgid "Manual" -msgstr "" - #: documents/models.py:818 +msgid "API Upload" +msgstr "API 上傳" + +#: documents/models.py:819 +msgid "Folder Consume" +msgstr "檔案夾處理量" + +#: documents/models.py:820 +msgid "Email Consume" +msgstr "電子郵件處理量" + +#: documents/models.py:821 +msgid "System" +msgstr "系統" + +#: documents/models.py:822 +msgid "Manual" +msgstr "手動" + +#: documents/models.py:828 msgid "Task ID" msgstr "任務 ID" -#: documents/models.py:819 +#: documents/models.py:829 msgid "Celery task ID" -msgstr "" +msgstr "Celery 任務 ID" -#: documents/models.py:825 +#: documents/models.py:835 msgid "Task Type" msgstr "任務類型" -#: documents/models.py:826 +#: documents/models.py:836 msgid "The kind of work being performed" -msgstr "" - -#: documents/models.py:833 -msgid "Trigger Source" -msgstr "" - -#: documents/models.py:834 -msgid "What initiated this task" -msgstr "" +msgstr "執行中的任務" #: documents/models.py:843 +msgid "Trigger Source" +msgstr "觸發來源" + +#: documents/models.py:844 +msgid "What initiated this task" +msgstr "此任務的觸發原因" + +#: documents/models.py:853 msgid "Status" -msgstr "" +msgstr "狀態" -#: documents/models.py:863 +#: documents/models.py:873 msgid "Completed" -msgstr "" +msgstr "已完成" -#: documents/models.py:871 +#: documents/models.py:881 msgid "Duration (seconds)" -msgstr "" +msgstr "持續時間(秒)" -#: documents/models.py:872 +#: documents/models.py:882 msgid "Elapsed time from start to completion" -msgstr "" +msgstr "完成總耗時" -#: documents/models.py:878 +#: documents/models.py:888 msgid "Wait Time (seconds)" -msgstr "" +msgstr "等待時間(秒)" -#: documents/models.py:879 +#: documents/models.py:889 msgid "Time from task creation to worker pickup" -msgstr "" +msgstr "等待接手時間" -#: documents/models.py:886 +#: documents/models.py:896 msgid "Input Data" -msgstr "" +msgstr "輸入資料" -#: documents/models.py:887 +#: documents/models.py:897 msgid "Structured input parameters for the task" -msgstr "" +msgstr "此任務的結構化輸入參數" -#: documents/models.py:893 +#: documents/models.py:903 msgid "Result Data" msgstr "結果資料" -#: documents/models.py:894 +#: documents/models.py:904 msgid "Structured result data from task execution" -msgstr "" +msgstr "任務執行產生的結構化結果資料" -#: documents/models.py:900 +#: documents/models.py:910 msgid "Acknowledged" msgstr "已確認" -#: documents/models.py:905 +#: documents/models.py:915 msgid "Task" -msgstr "" +msgstr "任務" -#: documents/models.py:906 +#: documents/models.py:916 msgid "Tasks" -msgstr "" +msgstr "任務" -#: documents/models.py:936 +#: documents/models.py:946 msgid "Note for the document" msgstr "文件註解" -#: documents/models.py:960 +#: documents/models.py:970 msgid "user" msgstr "使用者" -#: documents/models.py:965 +#: documents/models.py:975 msgid "note" msgstr "註解" -#: documents/models.py:966 +#: documents/models.py:976 msgid "notes" msgstr "註解" -#: documents/models.py:975 +#: documents/models.py:996 +msgid "page" +msgstr "" + +#: documents/models.py:997 +msgid "Page of the original file, starting at 1" +msgstr "" + +#: documents/models.py:1052 +msgid "format" +msgstr "" + +#: documents/models.py:1056 +msgid "document barcode" +msgstr "" + +#: documents/models.py:1057 +msgid "document barcodes" +msgstr "" + +#: documents/models.py:1066 msgid "Original" msgstr "原始檔" -#: documents/models.py:986 documents/models.py:1048 paperless_mail/models.py:75 +#: documents/models.py:1077 documents/models.py:1139 +#: paperless_mail/models.py:75 msgid "expiration" msgstr "過期時間" -#: documents/models.py:993 documents/models.py:1055 +#: documents/models.py:1084 documents/models.py:1146 msgid "slug" msgstr "縮寫" -#: documents/models.py:1025 +#: documents/models.py:1116 msgid "share link" msgstr "共用連結" -#: documents/models.py:1026 +#: documents/models.py:1117 msgid "share links" msgstr "共用連結" -#: documents/models.py:1035 +#: documents/models.py:1126 msgid "Processing" msgstr "處理中" -#: documents/models.py:1036 +#: documents/models.py:1127 msgid "Ready" msgstr "就緒" -#: documents/models.py:1037 +#: documents/models.py:1128 msgid "Failed" msgstr "失敗" -#: documents/models.py:1084 +#: documents/models.py:1175 msgid "size (bytes)" msgstr "大小(字節)" -#: documents/models.py:1090 +#: documents/models.py:1181 msgid "last error" -msgstr "" +msgstr "最新錯誤" -#: documents/models.py:1097 +#: documents/models.py:1188 msgid "file path" msgstr "檔案路徑" -#: documents/models.py:1103 +#: documents/models.py:1194 msgid "built at" -msgstr "" +msgstr "建立於" -#: documents/models.py:1116 +#: documents/models.py:1207 msgid "share link bundle" -msgstr "" +msgstr "共用連結組合" -#: documents/models.py:1117 +#: documents/models.py:1208 msgid "share link bundles" -msgstr "" +msgstr "共用連結組合" -#: documents/models.py:1120 +#: documents/models.py:1211 #, python-format msgid "Share link bundle %(slug)s" -msgstr "" +msgstr "共用連結組合 %(slug)s" -#: documents/models.py:1156 +#: documents/models.py:1247 msgid "String" msgstr "字串" -#: documents/models.py:1157 +#: documents/models.py:1248 msgid "URL" msgstr "URL" -#: documents/models.py:1158 +#: documents/models.py:1249 msgid "Date" msgstr "日期" -#: documents/models.py:1159 +#: documents/models.py:1250 msgid "Boolean" msgstr "布林值" -#: documents/models.py:1160 +#: documents/models.py:1251 msgid "Integer" msgstr "整數" -#: documents/models.py:1161 +#: documents/models.py:1252 msgid "Float" msgstr "浮點數" -#: documents/models.py:1162 +#: documents/models.py:1253 msgid "Monetary" msgstr "貨幣" -#: documents/models.py:1163 +#: documents/models.py:1254 msgid "Document Link" msgstr "文件連結" -#: documents/models.py:1164 +#: documents/models.py:1255 msgid "Select" msgstr "選取" -#: documents/models.py:1165 +#: documents/models.py:1256 msgid "Long Text" msgstr "長文字" -#: documents/models.py:1177 +#: documents/models.py:1268 msgid "data type" msgstr "資料類型" -#: documents/models.py:1184 +#: documents/models.py:1275 msgid "extra data" msgstr "額外資料" -#: documents/models.py:1188 +#: documents/models.py:1279 msgid "Extra data for the custom field, such as select options" msgstr "自訂欄位的額外資料,例如選項清單" -#: documents/models.py:1194 +#: documents/models.py:1285 msgid "custom field" msgstr "自訂欄位" -#: documents/models.py:1195 +#: documents/models.py:1286 msgid "custom fields" msgstr "自訂欄位" -#: documents/models.py:1295 +#: documents/models.py:1386 msgid "custom field instance" msgstr "自訂實例" -#: documents/models.py:1296 +#: documents/models.py:1387 msgid "custom field instances" msgstr "自訂實例" -#: documents/models.py:1374 +#: documents/models.py:1465 msgid "Consumption Started" msgstr "開始處理" -#: documents/models.py:1375 +#: documents/models.py:1466 msgid "Document Added" msgstr "文件新增日期" -#: documents/models.py:1376 +#: documents/models.py:1467 msgid "Document Updated" msgstr "已更新文件" -#: documents/models.py:1380 +#: documents/models.py:1471 msgid "Consume Folder" -msgstr "處理資料夾" +msgstr "處理檔案夾" -#: documents/models.py:1381 +#: documents/models.py:1472 msgid "Api Upload" msgstr "API 上傳" -#: documents/models.py:1388 +#: documents/models.py:1479 msgid "Modified" msgstr "已修改" -#: documents/models.py:1389 +#: documents/models.py:1480 msgid "Custom Field" msgstr "自訂欄位" -#: documents/models.py:1392 +#: documents/models.py:1483 msgid "Workflow Trigger Type" msgstr "工作流程觸發器類型" -#: documents/models.py:1404 +#: documents/models.py:1495 msgid "filter path" msgstr "篩選路徑" -#: documents/models.py:1409 +#: documents/models.py:1500 msgid "Only consume documents with a path that matches this if specified. Wildcards specified as * are allowed. Case insensitive." msgstr "若有指定,只會處理路徑符合此條件的文件。可使用 * 作為萬用字元。不區分大小寫。" -#: documents/models.py:1416 +#: documents/models.py:1507 msgid "filter filename" msgstr "篩選檔案名稱" -#: documents/models.py:1421 paperless_mail/models.py:200 +#: documents/models.py:1512 paperless_mail/models.py:200 msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive." msgstr "若有指定,只會處理檔名完全符合此條件的文件。可使用萬用字元,如 *.pdf 或 *invoice*。不區分大小寫。" -#: documents/models.py:1432 +#: documents/models.py:1523 msgid "filter documents from this mail rule" msgstr "依此郵件規則篩選文件" -#: documents/models.py:1448 +#: documents/models.py:1539 msgid "has these tag(s)" msgstr "具有這些標籤" -#: documents/models.py:1455 +#: documents/models.py:1546 msgid "has all of these tag(s)" msgstr "標籤符合" -#: documents/models.py:1462 +#: documents/models.py:1553 msgid "does not have these tag(s)" msgstr "標籤不包含" -#: documents/models.py:1470 +#: documents/models.py:1561 msgid "has this document type" msgstr "具有此文件類型" -#: documents/models.py:1477 +#: documents/models.py:1568 msgid "has one of these document types" -msgstr "" +msgstr "包含其中一種文件類型" -#: documents/models.py:1484 +#: documents/models.py:1575 msgid "does not have these document type(s)" msgstr "文件類型不包含" -#: documents/models.py:1492 +#: documents/models.py:1583 msgid "has this correspondent" msgstr "具有此關聯方" -#: documents/models.py:1499 +#: documents/models.py:1590 msgid "does not have these correspondent(s)" msgstr "關聯方不包含" -#: documents/models.py:1506 +#: documents/models.py:1597 msgid "has one of these correspondents" -msgstr "" +msgstr "包含其中一個關聯方" -#: documents/models.py:1514 +#: documents/models.py:1605 msgid "has this storage path" msgstr "使用此儲存路徑" -#: documents/models.py:1521 +#: documents/models.py:1612 msgid "has one of these storage paths" -msgstr "" +msgstr "包含其中一個儲存路徑" -#: documents/models.py:1528 +#: documents/models.py:1619 msgid "does not have these storage path(s)" msgstr "儲存路徑不包含" -#: documents/models.py:1532 +#: documents/models.py:1623 msgid "filter custom field query" msgstr "篩選自訂欄位查詢" -#: documents/models.py:1535 +#: documents/models.py:1626 msgid "JSON-encoded custom field query expression." msgstr "JSON-encoded 的自訂欄位查詢表達式。" -#: documents/models.py:1539 +#: documents/models.py:1630 msgid "schedule offset days" msgstr "排程調整天數" -#: documents/models.py:1542 +#: documents/models.py:1633 msgid "The number of days to offset the schedule trigger by." msgstr "排程觸發器的調整天數。" -#: documents/models.py:1547 +#: documents/models.py:1638 msgid "schedule is recurring" msgstr "排程是否重複執行" -#: documents/models.py:1550 +#: documents/models.py:1641 msgid "If the schedule should be recurring." msgstr "排程是否重複執行。" -#: documents/models.py:1555 +#: documents/models.py:1646 msgid "schedule recurring delay in days" msgstr "重複排程的延後天數" -#: documents/models.py:1559 +#: documents/models.py:1650 msgid "The number of days between recurring schedule triggers." msgstr "排程觸發器的重複間隔天數。" -#: documents/models.py:1564 +#: documents/models.py:1655 msgid "schedule date field" msgstr "排程日期欄位" -#: documents/models.py:1569 +#: documents/models.py:1660 msgid "The field to check for a schedule trigger." msgstr "用於檢查排程觸發器的欄位。" -#: documents/models.py:1578 +#: documents/models.py:1669 msgid "schedule date custom field" msgstr "排程日期自訂欄位" -#: documents/models.py:1582 +#: documents/models.py:1673 msgid "workflow trigger" msgstr "工作流程觸發器" -#: documents/models.py:1583 +#: documents/models.py:1674 msgid "workflow triggers" msgstr "工作流程觸發器" -#: documents/models.py:1591 +#: documents/models.py:1682 msgid "email subject" msgstr "電子郵件主旨" -#: documents/models.py:1595 +#: documents/models.py:1686 msgid "The subject of the email, can include some placeholders, see documentation." msgstr "電子郵件的主旨,可包含預留位置,詳見說明文件。" -#: documents/models.py:1601 +#: documents/models.py:1692 msgid "email body" msgstr "電子郵件正文" -#: documents/models.py:1604 +#: documents/models.py:1695 msgid "The body (message) of the email, can include some placeholders, see documentation." msgstr "電子郵件的正文(郵件內文),可包含預留位置,詳見說明文件。" -#: documents/models.py:1610 +#: documents/models.py:1701 msgid "emails to" msgstr "收件者" -#: documents/models.py:1613 +#: documents/models.py:1704 msgid "The destination email addresses, comma separated." msgstr "電子郵件的目的地位址(如要新增多個收件者,請在每個電子郵件地址之間加上半形逗號)。" -#: documents/models.py:1619 +#: documents/models.py:1710 msgid "include document in email" msgstr "在電子郵件中附加文件" -#: documents/models.py:1630 +#: documents/models.py:1721 msgid "webhook url" msgstr "Webhook URL" -#: documents/models.py:1633 +#: documents/models.py:1724 msgid "The destination URL for the notification." msgstr "通知的目的地 URL。" -#: documents/models.py:1638 +#: documents/models.py:1729 msgid "use parameters" msgstr "使用設定參數" -#: documents/models.py:1643 +#: documents/models.py:1734 msgid "send as JSON" msgstr "以 JSON 傳送" -#: documents/models.py:1647 +#: documents/models.py:1738 msgid "webhook parameters" msgstr "Webhook 參數" -#: documents/models.py:1650 +#: documents/models.py:1741 msgid "The parameters to send with the webhook URL if body not used." msgstr "當未提供 Body 時,將透過 Webhook URL 傳送參數。" -#: documents/models.py:1654 +#: documents/models.py:1745 msgid "webhook body" msgstr "Webhook Body" -#: documents/models.py:1657 +#: documents/models.py:1748 msgid "The body to send with the webhook URL if parameters not used." msgstr "當未提供參數時,將透過 Webhook URL 傳送 Body。" -#: documents/models.py:1661 +#: documents/models.py:1752 msgid "webhook headers" msgstr "Webhook 標頭" -#: documents/models.py:1664 +#: documents/models.py:1755 msgid "The headers to send with the webhook URL." msgstr "Webhook URL 需附帶的標頭 (Header)。" -#: documents/models.py:1669 +#: documents/models.py:1760 msgid "include document in webhook" msgstr "在 Webhook 中附加文件" -#: documents/models.py:1680 +#: documents/models.py:1771 msgid "Assignment" msgstr "指派" -#: documents/models.py:1684 +#: documents/models.py:1775 msgid "Removal" msgstr "移除" -#: documents/models.py:1688 documents/templates/account/password_reset.html:15 +#: documents/models.py:1779 documents/templates/account/password_reset.html:15 msgid "Email" msgstr "電子郵件" -#: documents/models.py:1692 +#: documents/models.py:1783 msgid "Webhook" msgstr "Webhook" -#: documents/models.py:1696 +#: documents/models.py:1787 msgid "Password removal" -msgstr "" +msgstr "移除密碼" -#: documents/models.py:1700 +#: documents/models.py:1791 msgid "Move to trash" -msgstr "" +msgstr "移至垃圾桶" -#: documents/models.py:1704 +#: documents/models.py:1795 msgid "Remote OCR" -msgstr "" +msgstr "移除 OCR" -#: documents/models.py:1708 +#: documents/models.py:1799 msgid "Apply AI suggestions" -msgstr "" +msgstr "套用 AI 建議" -#: documents/models.py:1715 +#: documents/models.py:1806 msgid "Document type" -msgstr "" +msgstr "文件類型" -#: documents/models.py:1716 +#: documents/models.py:1807 msgid "Storage path" -msgstr "" +msgstr "儲存路徑" -#: documents/models.py:1717 +#: documents/models.py:1808 msgid "Created date" -msgstr "" +msgstr "建立日期" -#: documents/models.py:1720 +#: documents/models.py:1811 msgid "Workflow Action Type" msgstr "工作流程動作類型" -#: documents/models.py:1725 documents/models.py:1994 +#: documents/models.py:1816 documents/models.py:2085 #: paperless_mail/models.py:145 msgid "order" msgstr "排序" -#: documents/models.py:1728 +#: documents/models.py:1819 msgid "assign title" msgstr "指派標題" -#: documents/models.py:1732 +#: documents/models.py:1823 msgid "Assign a document title, must be a Jinja2 template, see documentation." msgstr "指派文件標題,必須是 Jinja2 模板,詳見說明文件。" -#: documents/models.py:1740 paperless_mail/models.py:274 +#: documents/models.py:1831 paperless_mail/models.py:274 msgid "assign this tag" msgstr "指派標籤" -#: documents/models.py:1749 paperless_mail/models.py:282 +#: documents/models.py:1840 paperless_mail/models.py:282 msgid "assign this document type" msgstr "指派文件類型" -#: documents/models.py:1758 paperless_mail/models.py:296 +#: documents/models.py:1849 paperless_mail/models.py:296 msgid "assign this correspondent" msgstr "指派此關聯方" -#: documents/models.py:1767 +#: documents/models.py:1858 msgid "assign this storage path" msgstr "指派儲存路徑" -#: documents/models.py:1776 +#: documents/models.py:1867 msgid "assign this owner" msgstr "指派擁有者" -#: documents/models.py:1783 +#: documents/models.py:1874 msgid "grant view permissions to these users" msgstr "授予這些使用者檢視權限" -#: documents/models.py:1790 +#: documents/models.py:1881 msgid "grant view permissions to these groups" msgstr "授予這些群組檢視權限" -#: documents/models.py:1797 +#: documents/models.py:1888 msgid "grant change permissions to these users" msgstr "授予這些使用者修改權限" -#: documents/models.py:1804 +#: documents/models.py:1895 msgid "grant change permissions to these groups" msgstr "授予這些群組修改權限" -#: documents/models.py:1811 +#: documents/models.py:1902 msgid "assign these custom fields" msgstr "指派這些自訂欄位" -#: documents/models.py:1815 +#: documents/models.py:1906 msgid "custom field values" msgstr "自訂欄位值" -#: documents/models.py:1819 +#: documents/models.py:1910 msgid "Optional values to assign to the custom fields." msgstr "指派於自訂欄位的選用參數值。" -#: documents/models.py:1828 +#: documents/models.py:1919 msgid "remove these tag(s)" msgstr "移除這些標籤" -#: documents/models.py:1833 +#: documents/models.py:1924 msgid "remove all tags" msgstr "移除全部標籤" -#: documents/models.py:1840 +#: documents/models.py:1931 msgid "remove these document type(s)" msgstr "移除這些文件類型" -#: documents/models.py:1845 +#: documents/models.py:1936 msgid "remove all document types" msgstr "移除全部文件類型" -#: documents/models.py:1852 +#: documents/models.py:1943 msgid "remove these correspondent(s)" msgstr "移除關聯方" -#: documents/models.py:1857 +#: documents/models.py:1948 msgid "remove all correspondents" msgstr "移除全部關聯方" -#: documents/models.py:1864 +#: documents/models.py:1955 msgid "remove these storage path(s)" msgstr "移除這些儲存路徑" -#: documents/models.py:1869 +#: documents/models.py:1960 msgid "remove all storage paths" msgstr "移除全部儲存路徑" -#: documents/models.py:1876 +#: documents/models.py:1967 msgid "remove these owner(s)" msgstr "移除這些擁有者" -#: documents/models.py:1881 +#: documents/models.py:1972 msgid "remove all owners" msgstr "移除全部擁有者" -#: documents/models.py:1888 +#: documents/models.py:1979 msgid "remove view permissions for these users" msgstr "移除這些使用者的檢視權限" -#: documents/models.py:1895 +#: documents/models.py:1986 msgid "remove view permissions for these groups" msgstr "移除這些群組的檢視權限" -#: documents/models.py:1902 +#: documents/models.py:1993 msgid "remove change permissions for these users" msgstr "移除這些使用者的修改權限" -#: documents/models.py:1909 +#: documents/models.py:2000 msgid "remove change permissions for these groups" msgstr "移除這些群組的修改權限" -#: documents/models.py:1914 +#: documents/models.py:2005 msgid "remove all permissions" msgstr "移除全部權限" -#: documents/models.py:1921 +#: documents/models.py:2012 msgid "remove these custom fields" msgstr "移除這些自訂欄位" -#: documents/models.py:1926 +#: documents/models.py:2017 msgid "remove all custom fields" msgstr "移除全部自訂欄位" -#: documents/models.py:1935 +#: documents/models.py:2026 msgid "email" msgstr "電子郵件" -#: documents/models.py:1944 +#: documents/models.py:2035 msgid "webhook" msgstr "Webhook" -#: documents/models.py:1948 +#: documents/models.py:2039 msgid "passwords" -msgstr "" +msgstr "密碼" -#: documents/models.py:1952 +#: documents/models.py:2043 msgid "Passwords to try when removing PDF protection. Separate with commas or new lines." -msgstr "" +msgstr "解除 PDF 保護時要嘗試的密碼。請以逗號或換行分隔。" -#: documents/models.py:1957 +#: documents/models.py:2048 msgid "AI suggestion fields" -msgstr "" +msgstr "AI 建議欄位" -#: documents/models.py:1961 +#: documents/models.py:2052 msgid "Which of the AI-suggested fields to apply to the document." -msgstr "" +msgstr "要套用至文件的 AI 建議欄位。" -#: documents/models.py:1966 +#: documents/models.py:2057 msgid "create missing objects" -msgstr "" +msgstr "建立缺少的物件" -#: documents/models.py:1969 +#: documents/models.py:2060 msgid "Create suggested tags, correspondents, document types and storage paths that do not already exist instead of skipping them." -msgstr "" +msgstr "若建議的標籤、通訊對象、文件類型與儲存路徑尚不存在,則自動建立,而非跳過。" -#: documents/models.py:1975 +#: documents/models.py:2066 msgid "overwrite existing values" -msgstr "" +msgstr "取代現有的參數值" -#: documents/models.py:1978 +#: documents/models.py:2069 msgid "Apply suggestions even if the document already has a value for that field. Tags are always added to, never replaced." -msgstr "" +msgstr "即使該欄位已有內容,仍會將建議套用至文件。標籤僅會累加,絕不覆蓋替換。" -#: documents/models.py:1984 +#: documents/models.py:2075 msgid "workflow action" msgstr "工作流程動作" -#: documents/models.py:1985 +#: documents/models.py:2076 msgid "workflow actions" msgstr "工作流程動作" -#: documents/models.py:2000 +#: documents/models.py:2091 msgid "triggers" msgstr "觸發器" -#: documents/models.py:2007 +#: documents/models.py:2098 msgid "actions" msgstr "動作" -#: documents/models.py:2010 paperless_mail/models.py:154 +#: documents/models.py:2101 paperless_mail/models.py:154 msgid "enabled" -msgstr "已啟用" +msgstr "啟用" -#: documents/models.py:2021 +#: documents/models.py:2112 msgid "workflow" msgstr "工作流程" -#: documents/models.py:2025 +#: documents/models.py:2116 msgid "workflow trigger type" msgstr "工作流程觸發器類型" -#: documents/models.py:2039 +#: documents/models.py:2130 msgid "date run" msgstr "執行日期" -#: documents/models.py:2045 +#: documents/models.py:2136 msgid "workflow run" msgstr "執行工作流程" -#: documents/models.py:2046 +#: documents/models.py:2137 msgid "workflow runs" msgstr "執行工作流程" -#: documents/serialisers.py:514 documents/serialisers.py:871 -#: documents/serialisers.py:2883 documents/views.py:343 documents/views.py:2726 +#: documents/serialisers.py:515 documents/serialisers.py:872 +#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732 #: paperless_mail/serialisers.py:156 msgid "Insufficient permissions." -msgstr "" +msgstr "權限不足。" -#: documents/serialisers.py:707 +#: documents/serialisers.py:708 msgid "Invalid color." msgstr "無效的顏色。" -#: documents/serialisers.py:2350 +#: documents/serialisers.py:2369 #, python-format msgid "File type %(type)s not supported" msgstr "不支援檔案類型 %(type)s" -#: documents/serialisers.py:2394 +#: documents/serialisers.py:2413 #, python-format msgid "Custom field id must be an integer: %(id)s" msgstr "自定欄位 ID 必須是整數:%(id)s" -#: documents/serialisers.py:2401 +#: documents/serialisers.py:2420 #, python-format msgid "Custom field with id %(id)s does not exist" msgstr "自定欄位 ID %(id)s 不存在" -#: documents/serialisers.py:2418 documents/serialisers.py:2428 +#: documents/serialisers.py:2437 documents/serialisers.py:2447 msgid "Custom fields must be a list of integers or an object mapping ids to values." -msgstr "自定欄位必須為整數列表,或是將 ID 對應到數值的物件。" +msgstr "自定欄位必須為整數列表,或是將 ID 對應到參數值的物件。" -#: documents/serialisers.py:2423 +#: documents/serialisers.py:2442 msgid "Some custom fields don't exist or were specified twice." msgstr "部分自定欄位不存在或重復指定。" -#: documents/serialisers.py:2570 +#: documents/serialisers.py:2589 msgid "Invalid variable detected." msgstr "偵測到無效的變數。" -#: documents/serialisers.py:2939 +#: documents/serialisers.py:2958 msgid "Duplicate document identifiers are not allowed." -msgstr "" +msgstr "文件識別碼不得重複。" -#: documents/serialisers.py:2969 documents/views.py:4763 +#: documents/serialisers.py:2988 documents/views.py:4787 #, python-format msgid "Documents not found: %(ids)s" -msgstr "" +msgstr "找不到文件:%(ids)s" #: documents/templates/account/account_inactive.html:5 msgid "Paperless-ngx account inactive" @@ -1698,7 +1719,7 @@ msgstr "請登入。" #: documents/templates/account/login.html:12 msgid "Don't have an account yet?" -msgstr "" +msgstr "還沒有帳號?" #: documents/templates/account/login.html:12 #: documents/templates/account/signup.html:43 @@ -1794,7 +1815,7 @@ msgstr "密碼重設完成。" #: documents/templates/account/password_reset_from_key_done.html:14 msgid "Your new password has been set. You can now" -msgstr "" +msgstr "您的新密碼已設定完成。您現在可以" #: documents/templates/account/password_reset_from_key_done.html:14 msgid "log in" @@ -1864,7 +1885,7 @@ msgstr "Paperless-ngx 社群帳號登入" #: documents/templates/socialaccount/authentication_error.html:10 msgid "An error occurred while attempting to login via your social network account. Back to the" -msgstr "" +msgstr "嘗試使用您的社群網路帳號登入時發生錯誤。返回" #: documents/templates/socialaccount/authentication_error.html:10 msgid "login page" @@ -1911,42 +1932,42 @@ msgstr "URI 協定「{parts.scheme}」不被允許。允許的協定有:{', '. msgid "Unable to parse URI {value}" msgstr "無法解析 URI {value}" -#: documents/views.py:336 documents/views.py:2723 +#: documents/views.py:336 documents/views.py:2729 msgid "Invalid more_like_id" -msgstr "" +msgstr "無效的 more_like_id" -#: documents/views.py:1670 +#: documents/views.py:1676 msgid "Invalid AI configuration." -msgstr "" +msgstr "無效的 AI 配置。" -#: documents/views.py:1681 +#: documents/views.py:1687 msgid "AI backend request timed out." -msgstr "" +msgstr "AI 後端請求逾時。" -#: documents/views.py:1693 +#: documents/views.py:1699 msgid "AI backend rejected the request. Check logs for details." -msgstr "" +msgstr "AI 後端拒絕了請求。請檢查日誌以取得詳細資訊。" -#: documents/views.py:2548 documents/views.py:2864 +#: documents/views.py:2554 documents/views.py:2870 msgid "Specify only one of text, title_search, query, or more_like_id." -msgstr "" +msgstr "只能指定 text、title_search、query 或 more_like_id 的其中一項。" -#: documents/views.py:4776 +#: documents/views.py:4800 #, python-format msgid "Insufficient permissions to share document %(id)s." -msgstr "" +msgstr "權限不足,無法共用文件:%(id)s" -#: documents/views.py:4822 +#: documents/views.py:4846 msgid "Bundle is already being processed." -msgstr "" +msgstr "組合已在處理中。" -#: documents/views.py:4886 +#: documents/views.py:4910 msgid "The share link bundle is still being prepared. Please try again later." -msgstr "" +msgstr "共用連結組合仍在準備中,請稍後再試。" -#: documents/views.py:4900 +#: documents/views.py:4924 msgid "The share link bundle is unavailable." -msgstr "" +msgstr "共用連結組合無法使用。" #: paperless/apps.py:11 msgid "Paperless" @@ -1974,7 +1995,7 @@ msgstr "pdfa-3" #: paperless/models.py:39 paperless/models.py:50 msgid "auto" -msgstr "" +msgstr "自動" #: paperless/models.py:40 msgid "force" @@ -1986,7 +2007,7 @@ msgstr "重做" #: paperless/models.py:42 msgid "off" -msgstr "" +msgstr "關閉" #: paperless/models.py:51 msgid "always" @@ -2030,27 +2051,27 @@ msgstr "CMYK" #: paperless/models.py:82 msgid "Azure AI Document Intelligence" -msgstr "" +msgstr "Azure AI 文件智慧服務" #: paperless/models.py:90 msgid "All supported documents" -msgstr "" +msgstr "所有支援的文件" #: paperless/models.py:91 msgid "Only when a workflow enables it" -msgstr "" +msgstr "僅在工作流程啟用時" #: paperless/models.py:95 paperless/models.py:105 msgid "OpenAI-compatible" -msgstr "" +msgstr "OpenAI 相容" #: paperless/models.py:96 msgid "Huggingface" -msgstr "" +msgstr "Hugging Face" #: paperless/models.py:97 paperless/models.py:106 msgid "Ollama" -msgstr "" +msgstr "Ollama" #: paperless/models.py:115 msgid "Sets the output PDF type" @@ -2070,7 +2091,7 @@ msgstr "設定 OCR 模式" #: paperless/models.py:148 msgid "Controls archive file generation" -msgstr "" +msgstr "控制封存檔案的產生" #: paperless/models.py:156 msgid "Sets image DPI fallback value" @@ -2158,225 +2179,233 @@ msgstr "設定標籤條碼對應" #: paperless/models.py:302 msgid "Enables splitting on tag barcodes" +msgstr "啟用依標籤條碼進行拆分" + +#: paperless/models.py:308 +msgid "Stores the values of detected barcodes" msgstr "" -#: paperless/models.py:312 +#: paperless/models.py:318 msgid "Sets the remote OCR engine" -msgstr "" +msgstr "設定遠端 OCR 引擎" -#: paperless/models.py:321 +#: paperless/models.py:327 msgid "Sets the remote OCR API key" -msgstr "" +msgstr "設定遠端 OCR API 金鑰" -#: paperless/models.py:329 +#: paperless/models.py:335 msgid "Sets the remote OCR endpoint" -msgstr "" +msgstr "設定遠端 OCR 端點" -#: paperless/models.py:337 +#: paperless/models.py:343 msgid "Sets which documents are sent to the remote OCR engine" -msgstr "" +msgstr "設定哪些文件會傳送至遠端 OCR 引擎" -#: paperless/models.py:349 +#: paperless/models.py:355 msgid "Enables AI features" msgstr "啟用 AI 功能" -#: paperless/models.py:354 +#: paperless/models.py:360 msgid "Sets the LLM embedding backend" -msgstr "" +msgstr "設定 LLM 嵌入後端" -#: paperless/models.py:362 +#: paperless/models.py:368 msgid "Sets the LLM embedding model" -msgstr "" +msgstr "設定 LLM 嵌入模型" -#: paperless/models.py:369 -msgid "Sets the LLM embedding endpoint, optional" -msgstr "" - -#: paperless/models.py:376 -msgid "Sets the LLM embedding chunk size" -msgstr "" +#: paperless/models.py:375 +msgid "Sets the LLM embedding API key" +msgstr "設定 LLM 嵌入 API 金鑰" #: paperless/models.py:382 +msgid "Sets the LLM embedding endpoint, optional" +msgstr "設定 LLM 嵌入端點(選填)" + +#: paperless/models.py:389 +msgid "Sets the LLM embedding chunk size" +msgstr "設定 LLM 嵌入區塊大小" + +#: paperless/models.py:395 msgid "Sets the LLM context size" -msgstr "" +msgstr "設定 LLM 上下文大小" -#: paperless/models.py:388 +#: paperless/models.py:401 msgid "Sets the LLM backend" -msgstr "" +msgstr "設定 LLM 後端" -#: paperless/models.py:396 +#: paperless/models.py:409 msgid "Sets the LLM model" -msgstr "" +msgstr "設定 LLM 模型" -#: paperless/models.py:403 +#: paperless/models.py:416 msgid "Sets the LLM API key" -msgstr "" +msgstr "設定 LLM API 金鑰" -#: paperless/models.py:410 +#: paperless/models.py:423 msgid "Sets the LLM endpoint, optional" -msgstr "" - -#: paperless/models.py:417 -msgid "Sets the LLM output language" -msgstr "" - -#: paperless/models.py:424 -msgid "Sets the LLM timeout in seconds" -msgstr "" +msgstr "設定 LLM 端點(選填)" #: paperless/models.py:430 +msgid "Sets the LLM output language" +msgstr "設定 LLM 輸出語言" + +#: paperless/models.py:437 +msgid "Sets the LLM timeout in seconds" +msgstr "設定 LLM 逾時秒數" + +#: paperless/models.py:443 msgid "paperless application settings" msgstr "Paperless 應用程式設定" -#: paperless/settings/__init__.py:558 +#: paperless/settings/__init__.py:561 msgid "English (US)" msgstr "英文(美國)" -#: paperless/settings/__init__.py:559 +#: paperless/settings/__init__.py:562 msgid "Arabic" msgstr "阿拉伯文" -#: paperless/settings/__init__.py:560 +#: paperless/settings/__init__.py:563 msgid "Afrikaans" msgstr "南非荷蘭文" -#: paperless/settings/__init__.py:561 +#: paperless/settings/__init__.py:564 msgid "Belarusian" msgstr "白俄羅斯文" -#: paperless/settings/__init__.py:562 +#: paperless/settings/__init__.py:565 msgid "Bulgarian" msgstr "保加利亞文" -#: paperless/settings/__init__.py:563 +#: paperless/settings/__init__.py:566 msgid "Catalan" msgstr "加泰羅尼亞文" -#: paperless/settings/__init__.py:564 +#: paperless/settings/__init__.py:567 msgid "Czech" msgstr "捷克文" -#: paperless/settings/__init__.py:565 +#: paperless/settings/__init__.py:568 msgid "Danish" msgstr "丹麥文" -#: paperless/settings/__init__.py:566 +#: paperless/settings/__init__.py:569 msgid "German" msgstr "德文" -#: paperless/settings/__init__.py:567 +#: paperless/settings/__init__.py:570 msgid "Greek" msgstr "希臘文" -#: paperless/settings/__init__.py:568 +#: paperless/settings/__init__.py:571 msgid "English (GB)" msgstr "英文(英國)" -#: paperless/settings/__init__.py:569 +#: paperless/settings/__init__.py:572 msgid "Spanish" msgstr "西班牙文" -#: paperless/settings/__init__.py:570 +#: paperless/settings/__init__.py:573 msgid "Persian" msgstr "波斯文" -#: paperless/settings/__init__.py:571 +#: paperless/settings/__init__.py:574 msgid "Finnish" msgstr "芬蘭文" -#: paperless/settings/__init__.py:572 +#: paperless/settings/__init__.py:575 msgid "French" msgstr "法文" -#: paperless/settings/__init__.py:573 +#: paperless/settings/__init__.py:576 msgid "Hungarian" msgstr "匈牙利文" -#: paperless/settings/__init__.py:574 +#: paperless/settings/__init__.py:577 msgid "Indonesian" -msgstr "" +msgstr "印尼文" -#: paperless/settings/__init__.py:575 +#: paperless/settings/__init__.py:578 msgid "Italian" msgstr "義大利文" -#: paperless/settings/__init__.py:576 +#: paperless/settings/__init__.py:579 msgid "Japanese" msgstr "日文" -#: paperless/settings/__init__.py:577 +#: paperless/settings/__init__.py:580 msgid "Korean" msgstr "韓文" -#: paperless/settings/__init__.py:578 +#: paperless/settings/__init__.py:581 msgid "Luxembourgish" msgstr "盧森堡文" -#: paperless/settings/__init__.py:579 +#: paperless/settings/__init__.py:582 msgid "Norwegian" msgstr "挪威文" -#: paperless/settings/__init__.py:580 +#: paperless/settings/__init__.py:583 msgid "Dutch" msgstr "荷蘭文" -#: paperless/settings/__init__.py:581 +#: paperless/settings/__init__.py:584 msgid "Polish" msgstr "波蘭文" -#: paperless/settings/__init__.py:582 +#: paperless/settings/__init__.py:585 msgid "Portuguese (Brazil)" msgstr "葡萄牙文(巴西)" -#: paperless/settings/__init__.py:583 +#: paperless/settings/__init__.py:586 msgid "Portuguese" msgstr "葡萄牙文" -#: paperless/settings/__init__.py:584 +#: paperless/settings/__init__.py:587 msgid "Romanian" msgstr "羅馬尼亞文" -#: paperless/settings/__init__.py:585 +#: paperless/settings/__init__.py:588 msgid "Russian" msgstr "俄文" -#: paperless/settings/__init__.py:586 +#: paperless/settings/__init__.py:589 msgid "Slovak" msgstr "斯洛伐克文" -#: paperless/settings/__init__.py:587 +#: paperless/settings/__init__.py:590 msgid "Slovenian" msgstr "斯洛維尼亞文" -#: paperless/settings/__init__.py:588 +#: paperless/settings/__init__.py:591 msgid "Serbian" msgstr "塞爾維亞文" -#: paperless/settings/__init__.py:589 +#: paperless/settings/__init__.py:592 msgid "Swedish" msgstr "瑞典文" -#: paperless/settings/__init__.py:590 +#: paperless/settings/__init__.py:593 msgid "Turkish" msgstr "土耳其文" -#: paperless/settings/__init__.py:591 +#: paperless/settings/__init__.py:594 msgid "Ukrainian" msgstr "烏克蘭文" -#: paperless/settings/__init__.py:592 +#: paperless/settings/__init__.py:595 msgid "Vietnamese" msgstr "越南文" -#: paperless/settings/__init__.py:593 +#: paperless/settings/__init__.py:596 msgid "Chinese Simplified" msgstr "簡體中文" -#: paperless/settings/__init__.py:594 +#: paperless/settings/__init__.py:597 msgid "Chinese Traditional" msgstr "繁體中文" -#: paperless/urls.py:435 +#: paperless/urls.py:438 msgid "Paperless-ngx administration" msgstr "Paperless-ngx 系統管理" @@ -2547,7 +2576,7 @@ msgstr "刪除" #: paperless_mail/models.py:127 msgid "Move to specified folder" -msgstr "移至指定資料夾" +msgstr "移至指定檔案夾" #: paperless_mail/models.py:128 msgid "Mark as read, don't process read mails" @@ -2595,11 +2624,11 @@ msgstr "帳號" #: paperless_mail/models.py:157 paperless_mail/models.py:326 msgid "folder" -msgstr "資料夾" +msgstr "檔案夾" #: paperless_mail/models.py:161 msgid "Subfolders must be separated by a delimiter, often a dot ('.') or slash ('/'), but it varies by mail server." -msgstr "子資料夾必須使用分隔符號分開,通常是句點 ('.') 或斜線 ('/'),但會因郵件伺服器而異。" +msgstr "子檔案夾必須使用分隔符號分開,通常是句點 ('.') 或斜線 ('/'),但會因郵件伺服器而異。" #: paperless_mail/models.py:167 msgid "filter from" @@ -2663,7 +2692,7 @@ msgstr "動作參數" #: paperless_mail/models.py:258 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 "所選取動作的額外參數,例如「移至資料夾」動作的目標資料夾。子資料夾必須用句點 \".\" 來分隔。" +msgstr "所選取動作的額外參數,例如「移至檔案夾」動作的目標資料夾。子檔案夾必須用句點 \".\" 來分隔。" #: paperless_mail/models.py:266 msgid "assign title from" @@ -2679,11 +2708,11 @@ msgstr "將規則擁有者指派給文件" #: paperless_mail/models.py:305 msgid "Stop processing further rules" -msgstr "" +msgstr "停止處理後續規則" #: paperless_mail/models.py:308 msgid "If True, no further rules will be processed after this one if any document is queued." -msgstr "" +msgstr "如果設為「是」,當有任何文件排入佇列時,在此規則之後將不再處理後續規則。" #: paperless_mail/models.py:334 msgid "uid" @@ -2691,7 +2720,7 @@ msgstr "UID" #: paperless_mail/models.py:342 msgid "uid validity" -msgstr "" +msgstr "UID 有效性" #: paperless_mail/models.py:350 msgid "subject" diff --git a/src/paperless/config.py b/src/paperless/config.py index aabdfabd0..4627a2c93 100644 --- a/src/paperless/config.py +++ b/src/paperless/config.py @@ -1,5 +1,6 @@ import dataclasses import json +from typing import Any from django.conf import settings @@ -128,6 +129,7 @@ class BarcodeConfig(BaseConfig): barcode_enable_tag: bool = dataclasses.field(init=False) barcode_tag_mapping: dict[str, str] = dataclasses.field(init=False) barcode_tag_split: bool = dataclasses.field(init=False) + barcode_store_values: bool = dataclasses.field(init=False) def __post_init__(self) -> None: app_config = self._get_config_instance() @@ -178,6 +180,11 @@ class BarcodeConfig(BaseConfig): if app_config.barcode_tag_split is not None else settings.CONSUMER_TAG_BARCODE_SPLIT ) + self.barcode_store_values = ( + app_config.barcode_store_values + if app_config.barcode_store_values is not None + else settings.CONSUMER_STORE_BARCODE_VALUES + ) @dataclasses.dataclass @@ -244,6 +251,7 @@ class AIConfig(BaseConfig): ai_enabled: bool = dataclasses.field(init=False) llm_embedding_backend: str = dataclasses.field(init=False) llm_embedding_model: str = dataclasses.field(init=False) + llm_embedding_api_key: str = dataclasses.field(init=False) llm_embedding_endpoint: str = dataclasses.field(init=False) llm_embedding_chunk_size: int = dataclasses.field(init=False) llm_context_size: int = dataclasses.field(init=False) @@ -254,6 +262,7 @@ class AIConfig(BaseConfig): llm_endpoint: str = dataclasses.field(init=False) llm_output_language: str = dataclasses.field(init=False) llm_allow_internal_endpoints: bool = dataclasses.field(init=False) + llm_extra_params: dict[str, Any] = dataclasses.field(init=False) def __post_init__(self) -> None: app_config = self._get_config_instance() @@ -269,6 +278,9 @@ class AIConfig(BaseConfig): self.llm_embedding_model = ( app_config.llm_embedding_model or settings.LLM_EMBEDDING_MODEL ) + self.llm_embedding_api_key = ( + app_config.llm_embedding_api_key or settings.LLM_EMBEDDING_API_KEY + ) self.llm_embedding_endpoint = ( app_config.llm_embedding_endpoint or settings.LLM_EMBEDDING_ENDPOINT ) @@ -287,6 +299,7 @@ class AIConfig(BaseConfig): app_config.llm_output_language or settings.LLM_OUTPUT_LANGUAGE ) self.llm_allow_internal_endpoints = settings.LLM_ALLOW_INTERNAL_ENDPOINTS + self.llm_extra_params = settings.LLM_EXTRA_PARAMS @property def llm_index_enabled(self) -> bool: diff --git a/src/paperless/migrations/0017_applicationconfiguration_llm_embedding_api_key.py b/src/paperless/migrations/0017_applicationconfiguration_llm_embedding_api_key.py new file mode 100644 index 000000000..28259e447 --- /dev/null +++ b/src/paperless/migrations/0017_applicationconfiguration_llm_embedding_api_key.py @@ -0,0 +1,23 @@ +# Generated by Django 5.2.16 on 2026-09-11 09:32 + +from django.db import migrations +from django.db import models + + +class Migration(migrations.Migration): + dependencies = [ + ("paperless", "0016_alter_applicationconfiguration_ai_enabled"), + ] + + operations = [ + migrations.AddField( + model_name="applicationconfiguration", + name="llm_embedding_api_key", + field=models.CharField( + blank=True, + max_length=1024, + null=True, + verbose_name="Sets the LLM embedding API key", + ), + ), + ] diff --git a/src/paperless/migrations/0018_applicationconfiguration_barcode_store_values.py b/src/paperless/migrations/0018_applicationconfiguration_barcode_store_values.py new file mode 100644 index 000000000..01c96be85 --- /dev/null +++ b/src/paperless/migrations/0018_applicationconfiguration_barcode_store_values.py @@ -0,0 +1,21 @@ +# Generated by Django 5.2.16 on 2026-09-26 14:37 + +from django.db import migrations +from django.db import models + + +class Migration(migrations.Migration): + dependencies = [ + ("paperless", "0017_applicationconfiguration_llm_embedding_api_key"), + ] + + operations = [ + migrations.AddField( + model_name="applicationconfiguration", + name="barcode_store_values", + field=models.BooleanField( + null=True, + verbose_name="Stores the values of detected barcodes", + ), + ), + ] diff --git a/src/paperless/models.py b/src/paperless/models.py index 64fc45fc0..5dd502dfb 100644 --- a/src/paperless/models.py +++ b/src/paperless/models.py @@ -303,6 +303,12 @@ class ApplicationConfiguration(AbstractSingletonModel): null=True, ) + # PAPERLESS_CONSUMER_STORE_BARCODE_VALUES + barcode_store_values = models.BooleanField( + verbose_name=_("Stores the values of detected barcodes"), + null=True, + ) + """ Settings for the remote OCR parser """ @@ -365,6 +371,13 @@ class ApplicationConfiguration(AbstractSingletonModel): max_length=128, ) + llm_embedding_api_key = models.CharField( + verbose_name=_("Sets the LLM embedding API key"), + blank=True, + null=True, + max_length=1024, + ) + llm_embedding_endpoint = models.CharField( verbose_name=_("Sets the LLM embedding endpoint, optional"), blank=True, diff --git a/src/paperless/parsers/mail.py b/src/paperless/parsers/mail.py index 244e3cd76..198a2b544 100644 --- a/src/paperless/parsers/mail.py +++ b/src/paperless/parsers/mail.py @@ -22,8 +22,6 @@ from pathlib import Path from typing import TYPE_CHECKING from typing import Self -from bleach import clean -from bleach import linkify from django.conf import settings from django.utils import timezone from django.utils.timezone import is_naive @@ -38,6 +36,9 @@ from humanize import naturalsize from imap_tools import MailAttachment from imap_tools import MailMessage from tika_client import TikaClient +from turbohtml.clean import Linkify +from turbohtml.clean import linkify +from turbohtml.migration.bleach import clean from documents.parsers import ParseError from documents.parsers import make_thumbnail_from_pdf @@ -58,12 +59,6 @@ _SUPPORTED_MIME_TYPES: dict[str, str] = { "message/rfc822": ".eml", } -# Bleach's email-address linkifier uses a superlinear regular expression. Keep -# email linkification for ordinary headers and short messages, but never run it -# over an unbounded attacker-controlled field. URL linkification remains enabled -# for longer text. -_MAX_EMAIL_LINKIFY_LENGTH = 2048 - class MailDocumentParser: """Parse .eml email files for Paperless-ngx. @@ -633,10 +628,7 @@ class MailDocumentParser: text = str(text) text = escape(text) text = clean(text) - text = linkify( - text, - parse_email="@" in text and len(text) <= _MAX_EMAIL_LINKIFY_LENGTH, - ) + text = linkify(text, Linkify(parse_email=True)) text = text.replace("\n", "
") return text diff --git a/src/paperless/parsers/tesseract.py b/src/paperless/parsers/tesseract.py index f3ebf9925..1091dffda 100644 --- a/src/paperless/parsers/tesseract.py +++ b/src/paperless/parsers/tesseract.py @@ -394,7 +394,11 @@ class RasterisedDocumentParser: plain_pdf_path = Path(self.tempdir) / "image_plain.pdf" try: - convert_kwargs: dict = {} + convert_kwargs: dict = { + # Ignore invalid EXIF orientation values (e.g. 0) instead of + # aborting the conversion; valid values are still applied + "rotation": img2pdf.Rotation.ifvalid, + } if self.settings.image_dpi is not None: convert_kwargs["layout_fun"] = img2pdf.get_fixed_dpi_layout_fun( (self.settings.image_dpi, self.settings.image_dpi), diff --git a/src/paperless/serialisers.py b/src/paperless/serialisers.py index 7b32230f8..6430df889 100644 --- a/src/paperless/serialisers.py +++ b/src/paperless/serialisers.py @@ -216,6 +216,11 @@ class ApplicationConfigurationSerializer( externally_configured_variables = serializers.SerializerMethodField() user_args = serializers.JSONField(binary=True, allow_null=True) barcode_tag_mapping = serializers.JSONField(binary=True, allow_null=True) + llm_embedding_api_key = ObfuscatedPasswordField( + required=False, + allow_null=True, + max_length=1024, + ) llm_api_key = ObfuscatedPasswordField( required=False, allow_null=True, @@ -227,7 +232,11 @@ class ApplicationConfigurationSerializer( max_length=1024, ) - OBFUSCATED_FIELDS = ("llm_api_key", "remote_ocr_api_key") + OBFUSCATED_FIELDS = ( + "llm_embedding_api_key", + "llm_api_key", + "remote_ocr_api_key", + ) def get_externally_configured_variables( self, diff --git a/src/paperless/settings/__init__.py b/src/paperless/settings/__init__.py index 01cf2380b..7ca3bb66e 100644 --- a/src/paperless/settings/__init__.py +++ b/src/paperless/settings/__init__.py @@ -7,6 +7,7 @@ import multiprocessing import os import tempfile from pathlib import Path +from typing import Any from typing import Final from urllib.parse import urlparse @@ -228,6 +229,7 @@ SPECTACULAR_SETTINGS = { }, "ENUM_NAME_OVERRIDES": { "MatchingAlgorithm": "documents.models.MatchingModel.MATCHING_ALGORITHMS", + "BarcodeFormatEnum": "documents.models.DocumentBarcode.Format", }, "SCHEMA_PATH_PREFIX_INSERT": FORCE_SCRIPT_NAME or "", } @@ -290,7 +292,7 @@ if _CHANNELS_BACKEND.startswith("channels_redis."): ############################################################################### EMAIL_HOST: Final[str] = os.getenv("PAPERLESS_EMAIL_HOST", "localhost") -EMAIL_PORT: Final[int] = int(os.getenv("PAPERLESS_EMAIL_PORT", 25)) +EMAIL_PORT: Final[int] = get_int_from_env("PAPERLESS_EMAIL_PORT", 25) EMAIL_HOST_USER: Final[str] = os.getenv("PAPERLESS_EMAIL_HOST_USER", "") EMAIL_HOST_PASSWORD: Final[str] = os.getenv("PAPERLESS_EMAIL_HOST_PASSWORD", "") DEFAULT_FROM_EMAIL: Final[str] = os.getenv("PAPERLESS_EMAIL_FROM", EMAIL_HOST_USER) @@ -377,8 +379,9 @@ ACCOUNT_SESSION_REMEMBER = get_bool_from_env( "True", ) SESSION_EXPIRE_AT_BROWSER_CLOSE = not ACCOUNT_SESSION_REMEMBER -SESSION_COOKIE_AGE = int( - os.getenv("PAPERLESS_SESSION_COOKIE_AGE", 60 * 60 * 24 * 7 * 3), +SESSION_COOKIE_AGE = get_int_from_env( + "PAPERLESS_SESSION_COOKIE_AGE", + 60 * 60 * 24 * 7 * 3, ) # https://docs.djangoproject.com/en/5.1/ref/settings/#std-setting-SESSION_ENGINE SESSION_ENGINE = "django.contrib.sessions.backends.cached_db" @@ -610,8 +613,8 @@ USE_TZ = True LOGGING_DIR.mkdir(parents=True, exist_ok=True) -LOGROTATE_MAX_SIZE = os.getenv("PAPERLESS_LOGROTATE_MAX_SIZE", 1024 * 1024) -LOGROTATE_MAX_BACKUPS = os.getenv("PAPERLESS_LOGROTATE_MAX_BACKUPS", 20) +LOGROTATE_MAX_SIZE = get_int_from_env("PAPERLESS_LOGROTATE_MAX_SIZE", 1024 * 1024) +LOGROTATE_MAX_BACKUPS = get_int_from_env("PAPERLESS_LOGROTATE_MAX_BACKUPS", 20) LOGGING = { "version": 1, @@ -795,7 +798,7 @@ def default_threads_per_worker(task_workers) -> int: return 1 -THREADS_PER_WORKER = os.getenv( +THREADS_PER_WORKER = get_int_from_env( "PAPERLESS_THREADS_PER_WORKER", default_threads_per_worker(CELERY_WORKER_CONCURRENCY), ) @@ -816,9 +819,9 @@ IGNORABLE_FILES: Final[list[str]] = [ "Thumbs.db", ] -CONSUMER_POLLING_INTERVAL = float(os.getenv("PAPERLESS_CONSUMER_POLLING_INTERVAL", 0)) +CONSUMER_POLLING_INTERVAL = get_float_from_env("PAPERLESS_CONSUMER_POLLING_INTERVAL", 0) -CONSUMER_STABILITY_DELAY = float(os.getenv("PAPERLESS_CONSUMER_STABILITY_DELAY", 5)) +CONSUMER_STABILITY_DELAY = get_float_from_env("PAPERLESS_CONSUMER_STABILITY_DELAY", 5) CONSUMER_DELETE_DUPLICATES = get_bool_from_env("PAPERLESS_CONSUMER_DELETE_DUPLICATES") @@ -904,6 +907,10 @@ CONSUMER_TAG_BARCODE_SPLIT: Final[bool] = get_bool_from_env( "PAPERLESS_CONSUMER_TAG_BARCODE_SPLIT", ) +CONSUMER_STORE_BARCODE_VALUES: Final[bool] = get_bool_from_env( + "PAPERLESS_CONSUMER_STORE_BARCODE_VALUES", +) + CONSUMER_ENABLE_COLLATE_DOUBLE_SIDED: Final[bool] = get_bool_from_env( "PAPERLESS_CONSUMER_ENABLE_COLLATE_DOUBLE_SIDED", ) @@ -1081,6 +1088,25 @@ CLASSIFIER_LANGUAGES: Final[dict[str, str]] = { } +def _get_llm_extra_params() -> dict[str, Any]: + """ + Parse PAPERLESS_AI_LLM_EXTRA_PARAMS, a JSON object passed straight through + to the LLM backend's request body. + """ + raw = os.getenv("PAPERLESS_AI_LLM_EXTRA_PARAMS", "{}") + try: + parsed = json.loads(raw) + except json.JSONDecodeError as e: + raise ImproperlyConfigured( + "PAPERLESS_AI_LLM_EXTRA_PARAMS must be valid JSON", + ) from e + if not isinstance(parsed, dict): + raise ImproperlyConfigured( + "PAPERLESS_AI_LLM_EXTRA_PARAMS must be a JSON object", + ) + return parsed + + def _get_classifier_language_setting(ocr_lang: str) -> str | None: """ Maps the primary Tesseract language to the classifier's stemming @@ -1216,6 +1242,7 @@ LLM_EMBEDDING_BACKEND = get_choice_from_env( {"huggingface", "openai-like", "ollama"}, ) LLM_EMBEDDING_MODEL = os.getenv("PAPERLESS_AI_LLM_EMBEDDING_MODEL") +LLM_EMBEDDING_API_KEY = os.getenv("PAPERLESS_AI_LLM_EMBEDDING_API_KEY") LLM_EMBEDDING_ENDPOINT = os.getenv("PAPERLESS_AI_LLM_EMBEDDING_ENDPOINT") LLM_EMBEDDING_CHUNK_SIZE = get_int_from_env( "PAPERLESS_AI_LLM_EMBEDDING_CHUNK_SIZE", @@ -1241,3 +1268,4 @@ LLM_ALLOW_INTERNAL_ENDPOINTS = get_bool_from_env( "PAPERLESS_AI_LLM_ALLOW_INTERNAL_ENDPOINTS", "true", ) +LLM_EXTRA_PARAMS = _get_llm_extra_params() diff --git a/src/paperless/tests/conftest.py b/src/paperless/tests/conftest.py index c43659506..27ed600c2 100644 --- a/src/paperless/tests/conftest.py +++ b/src/paperless/tests/conftest.py @@ -22,11 +22,11 @@ if TYPE_CHECKING: @pytest.fixture(scope="session") -def samples_dir() -> Path: +def parser_samples_dir() -> Path: """Absolute path to the shared parser sample files directory. Sub-package conftest files derive format-specific paths from this root, - e.g. ``samples_dir / "text" / "test.txt"``. + e.g. ``parser_samples_dir / "text" / "test.txt"``. Returns ------- @@ -37,7 +37,7 @@ def samples_dir() -> Path: @pytest.fixture(scope="session") -def tagged_no_text_pdf_file(samples_dir: Path) -> Path: +def tagged_no_text_pdf_file(parser_samples_dir: Path) -> Path: """Path to a tagged PDF whose only "text" is pdftotext layout padding. Reproduces GH #13387: ``/MarkInfo /Marked true`` is set, but the only @@ -50,7 +50,7 @@ def tagged_no_text_pdf_file(samples_dir: Path) -> Path: Path Absolute path to ``tesseract/tagged-but-no-text.pdf``. """ - return samples_dir / "tesseract" / "tagged-but-no-text.pdf" + return parser_samples_dir / "tesseract" / "tagged-but-no-text.pdf" @pytest.fixture(autouse=True) diff --git a/src/paperless/tests/parsers/conftest.py b/src/paperless/tests/parsers/conftest.py index 687944f71..343e9ea8a 100644 --- a/src/paperless/tests/parsers/conftest.py +++ b/src/paperless/tests/parsers/conftest.py @@ -37,15 +37,15 @@ if TYPE_CHECKING: @pytest.fixture(scope="session") -def text_samples_dir(samples_dir: Path) -> Path: +def text_samples_dir(parser_samples_dir: Path) -> Path: """Absolute path to the text parser sample files directory. Returns ------- Path - ``/text/`` + ``/text/`` """ - return samples_dir / "text" + return parser_samples_dir / "text" @pytest.fixture(scope="session") @@ -175,15 +175,15 @@ def no_engine_settings( @pytest.fixture(scope="session") -def tika_samples_dir(samples_dir: Path) -> Path: +def tika_samples_dir(parser_samples_dir: Path) -> Path: """Absolute path to the Tika parser sample files directory. Returns ------- Path - ``/tika/`` + ``/tika/`` """ - return samples_dir / "tika" + return parser_samples_dir / "tika" @pytest.fixture(scope="session") @@ -258,15 +258,15 @@ def tika_parser() -> Generator[TikaDocumentParser, None, None]: @pytest.fixture(scope="session") -def mail_samples_dir(samples_dir: Path) -> Path: +def mail_samples_dir(parser_samples_dir: Path) -> Path: """Absolute path to the mail parser sample files directory. Returns ------- Path - ``/mail/`` + ``/mail/`` """ - return samples_dir / "mail" + return parser_samples_dir / "mail" @pytest.fixture(scope="session") @@ -421,75 +421,15 @@ def nginx_base_url() -> Generator[str, None, None]: @pytest.fixture(scope="session") -def tesseract_samples_dir(samples_dir: Path) -> Path: +def tesseract_samples_dir(parser_samples_dir: Path) -> Path: """Absolute path to the tesseract parser sample files directory. Returns ------- Path - ``/tesseract/`` + ``/tesseract/`` """ - return samples_dir / "tesseract" - - -@pytest.fixture(scope="session") -def document_webp_file(tesseract_samples_dir: Path) -> Path: - """Path to a WebP document sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/document.webp``. - """ - return tesseract_samples_dir / "document.webp" - - -@pytest.fixture(scope="session") -def encrypted_pdf_file(tesseract_samples_dir: Path) -> Path: - """Path to an encrypted PDF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/encrypted.pdf``. - """ - return tesseract_samples_dir / "encrypted.pdf" - - -@pytest.fixture(scope="session") -def multi_page_digital_pdf_file(tesseract_samples_dir: Path) -> Path: - """Path to a multi-page digital PDF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/multi-page-digital.pdf``. - """ - return tesseract_samples_dir / "multi-page-digital.pdf" - - -@pytest.fixture(scope="session") -def multi_page_images_alpha_rgb_tiff_file(tesseract_samples_dir: Path) -> Path: - """Path to a multi-page TIFF with alpha channel in RGB. - - Returns - ------- - Path - Absolute path to ``tesseract/multi-page-images-alpha-rgb.tiff``. - """ - return tesseract_samples_dir / "multi-page-images-alpha-rgb.tiff" - - -@pytest.fixture(scope="session") -def multi_page_images_alpha_tiff_file(tesseract_samples_dir: Path) -> Path: - """Path to a multi-page TIFF with alpha channel. - - Returns - ------- - Path - Absolute path to ``tesseract/multi-page-images-alpha.tiff``. - """ - return tesseract_samples_dir / "multi-page-images-alpha.tiff" + return parser_samples_dir / "tesseract" @pytest.fixture(scope="session") @@ -504,90 +444,6 @@ def multi_page_images_pdf_file(tesseract_samples_dir: Path) -> Path: return tesseract_samples_dir / "multi-page-images.pdf" -@pytest.fixture(scope="session") -def multi_page_images_tiff_file(tesseract_samples_dir: Path) -> Path: - """Path to a multi-page TIFF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/multi-page-images.tiff``. - """ - return tesseract_samples_dir / "multi-page-images.tiff" - - -@pytest.fixture(scope="session") -def multi_page_mixed_pdf_file(tesseract_samples_dir: Path) -> Path: - """Path to a multi-page mixed PDF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/multi-page-mixed.pdf``. - """ - return tesseract_samples_dir / "multi-page-mixed.pdf" - - -@pytest.fixture(scope="session") -def no_text_alpha_png_file(tesseract_samples_dir: Path) -> Path: - """Path to a PNG with alpha channel and no text. - - Returns - ------- - Path - Absolute path to ``tesseract/no-text-alpha.png``. - """ - return tesseract_samples_dir / "no-text-alpha.png" - - -@pytest.fixture(scope="session") -def rotated_pdf_file(tesseract_samples_dir: Path) -> Path: - """Path to a rotated PDF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/rotated.pdf``. - """ - return tesseract_samples_dir / "rotated.pdf" - - -@pytest.fixture(scope="session") -def rtl_test_pdf_file(tesseract_samples_dir: Path) -> Path: - """Path to an RTL test PDF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/rtl-test.pdf``. - """ - return tesseract_samples_dir / "rtl-test.pdf" - - -@pytest.fixture(scope="session") -def signed_pdf_file(tesseract_samples_dir: Path) -> Path: - """Path to a signed PDF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/signed.pdf``. - """ - return tesseract_samples_dir / "signed.pdf" - - -@pytest.fixture(scope="session") -def simple_alpha_png_file(tesseract_samples_dir: Path) -> Path: - """Path to a simple PNG with alpha channel. - - Returns - ------- - Path - Absolute path to ``tesseract/simple-alpha.png``. - """ - return tesseract_samples_dir / "simple-alpha.png" - - @pytest.fixture(scope="session") def simple_digital_pdf_file(tesseract_samples_dir: Path) -> Path: """Path to a simple digital PDF sample file. @@ -612,54 +468,6 @@ def simple_no_dpi_png_file(tesseract_samples_dir: Path) -> Path: return tesseract_samples_dir / "simple-no-dpi.png" -@pytest.fixture(scope="session") -def simple_bmp_file(tesseract_samples_dir: Path) -> Path: - """Path to a simple BMP sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/simple.bmp``. - """ - return tesseract_samples_dir / "simple.bmp" - - -@pytest.fixture(scope="session") -def simple_gif_file(tesseract_samples_dir: Path) -> Path: - """Path to a simple GIF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/simple.gif``. - """ - return tesseract_samples_dir / "simple.gif" - - -@pytest.fixture(scope="session") -def simple_heic_file(tesseract_samples_dir: Path) -> Path: - """Path to a simple HEIC sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/simple.heic``. - """ - return tesseract_samples_dir / "simple.heic" - - -@pytest.fixture(scope="session") -def simple_jpg_file(tesseract_samples_dir: Path) -> Path: - """Path to a simple JPG sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/simple.jpg``. - """ - return tesseract_samples_dir / "simple.jpg" - - @pytest.fixture(scope="session") def simple_png_file(tesseract_samples_dir: Path) -> Path: """Path to a simple PNG sample file. @@ -672,42 +480,6 @@ def simple_png_file(tesseract_samples_dir: Path) -> Path: return tesseract_samples_dir / "simple.png" -@pytest.fixture(scope="session") -def simple_tif_file(tesseract_samples_dir: Path) -> Path: - """Path to a simple TIF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/simple.tif``. - """ - return tesseract_samples_dir / "simple.tif" - - -@pytest.fixture(scope="session") -def single_page_mixed_pdf_file(tesseract_samples_dir: Path) -> Path: - """Path to a single-page mixed PDF sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/single-page-mixed.pdf``. - """ - return tesseract_samples_dir / "single-page-mixed.pdf" - - -@pytest.fixture(scope="session") -def with_form_pdf_file(tesseract_samples_dir: Path) -> Path: - """Path to a PDF with form sample file. - - Returns - ------- - Path - Absolute path to ``tesseract/with-form.pdf``. - """ - return tesseract_samples_dir / "with-form.pdf" - - # ------------------------------------------------------------------ # Tesseract parser instance and settings helpers # ------------------------------------------------------------------ diff --git a/src/paperless/tests/parsers/test_convert_image_to_pdfa.py b/src/paperless/tests/parsers/test_convert_image_to_pdfa.py index 615900a25..46261ffcf 100644 --- a/src/paperless/tests/parsers/test_convert_image_to_pdfa.py +++ b/src/paperless/tests/parsers/test_convert_image_to_pdfa.py @@ -18,6 +18,7 @@ import img2pdf import magic import pikepdf import pytest +from PIL import Image from documents.parsers import ParseError @@ -139,3 +140,24 @@ class TestConvertImageToPdfa: tesseract_parser._convert_image_to_pdfa(simple_png_file) spy.assert_not_called() + + def test_invalid_exif_orientation_is_ignored( + self, + tesseract_parser: RasterisedDocumentParser, + tmp_path: Path, + ) -> None: + """ + GIVEN: a JPEG with an invalid EXIF orientation value (0) + WHEN: _convert_image_to_pdfa is called + THEN: the invalid value is ignored and a valid PDF is produced + """ + image_path = tmp_path / "invalid_orientation.jpg" + with Image.new("RGB", (120, 80), "white") as image: + exif = image.getexif() + exif[274] = 0 # EXIF tag 274: Orientation + image.save(image_path, exif=exif) + + result = tesseract_parser._convert_image_to_pdfa(image_path) + + assert result.exists() + assert magic.from_file(str(result), mime=True) == "application/pdf" diff --git a/src/paperless/tests/parsers/test_mail_parser.py b/src/paperless/tests/parsers/test_mail_parser.py index 5ef3d2eb1..758606728 100644 --- a/src/paperless/tests/parsers/test_mail_parser.py +++ b/src/paperless/tests/parsers/test_mail_parser.py @@ -735,33 +735,24 @@ class TestParser: assert expected_html == actual_html - def test_mail_to_html_bounds_email_linkification( + def test_mail_to_html_linkifies_email_in_long_text( self, mail_parser: MailDocumentParser, ) -> None: mail = mock.Mock( - subject="sender@example.com", + subject="", from_values=None, to_values=[], cc_values=[], bcc_values=[], attachments=[], date=timezone.now(), - text=("a." * 1500) + "@example.com", + text=("a." * 1500) + " sender@example.com", ) - with mock.patch( - "paperless.parsers.mail.linkify", - side_effect=lambda text, **kwargs: text, - ) as mock_linkify: - mail_parser.mail_to_html(mail) + html_file = mail_parser.mail_to_html(mail) - parse_email_by_text = { - call.args[0]: call.kwargs["parse_email"] - for call in mock_linkify.call_args_list - } - assert parse_email_by_text["sender@example.com"] is True - assert parse_email_by_text[mail.text] is False + assert 'href="mailto:sender@example.com"' in html_file.read_text() def test_generate_pdf_from_mail( self, diff --git a/src/paperless/tests/parsers/test_mail_parser_live.py b/src/paperless/tests/parsers/test_mail_parser_live.py index dd17af314..037c157e0 100644 --- a/src/paperless/tests/parsers/test_mail_parser_live.py +++ b/src/paperless/tests/parsers/test_mail_parser_live.py @@ -10,8 +10,8 @@ from imagehash import average_hash from PIL import Image from pytest_mock import MockerFixture -from documents.tests.utils import util_call_with_backoff from paperless.parsers.mail import MailDocumentParser +from paperless_testing.retry import util_call_with_backoff def extract_text(pdf_path: Path) -> str: diff --git a/src/paperless/tests/parsers/test_tesseract_custom_settings.py b/src/paperless/tests/parsers/test_tesseract_custom_settings.py index d39c9dabf..e5dd3a03b 100644 --- a/src/paperless/tests/parsers/test_tesseract_custom_settings.py +++ b/src/paperless/tests/parsers/test_tesseract_custom_settings.py @@ -3,14 +3,14 @@ import json from django.test import TestCase from django.test import override_settings -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import FileSystemAssertsMixin from paperless.models import ApplicationConfiguration from paperless.models import CleanChoices from paperless.models import ColorConvertChoices from paperless.models import ModeChoices from paperless.models import OutputTypeChoices from paperless.parsers.tesseract import RasterisedDocumentParser +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin class TestParserSettingsFromDb(DirectoriesMixin, FileSystemAssertsMixin, TestCase): diff --git a/src/paperless/tests/parsers/test_tika_liva.py b/src/paperless/tests/parsers/test_tika_liva.py index 87cdd88a5..d7144b3da 100644 --- a/src/paperless/tests/parsers/test_tika_liva.py +++ b/src/paperless/tests/parsers/test_tika_liva.py @@ -3,8 +3,8 @@ from pathlib import Path import pytest -from documents.tests.utils import util_call_with_backoff from paperless.parsers.tika import TikaDocumentParser +from paperless_testing.retry import util_call_with_backoff @pytest.mark.skipif( diff --git a/src/paperless/tests/settings/test_remote_user.py b/src/paperless/tests/settings/test_remote_user.py index f98097d03..f4bd59958 100644 --- a/src/paperless/tests/settings/test_remote_user.py +++ b/src/paperless/tests/settings/test_remote_user.py @@ -2,23 +2,39 @@ import os from unittest import mock from django.conf import settings -from django.contrib.auth.models import User from django.test import override_settings from rest_framework import status from rest_framework.test import APITestCase -from documents.tests.utils import DirectoriesMixin from paperless.settings import _parse_remote_user_settings +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import UserFactory class TestRemoteUser(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_superuser( - username="temp_admin", + self.user = UserFactory(username="temp_admin", superuser=True) + + # _parse_remote_user_settings() mutates these shared lists in place, + # so undo that after the test instead of leaking remote-user auth + # into every test that runs afterward. + original_middleware = list(settings.MIDDLEWARE) + original_auth_backends = list(settings.AUTHENTICATION_BACKENDS) + original_auth_classes = list( + settings.REST_FRAMEWORK["DEFAULT_AUTHENTICATION_CLASSES"], ) + def _restore_remote_user_settings() -> None: + settings.MIDDLEWARE[:] = original_middleware + settings.AUTHENTICATION_BACKENDS[:] = original_auth_backends + settings.REST_FRAMEWORK["DEFAULT_AUTHENTICATION_CLASSES"][:] = ( + original_auth_classes + ) + + self.addCleanup(_restore_remote_user_settings) + def test_remote_user(self) -> None: """ GIVEN: diff --git a/src/paperless/tests/settings/test_settings.py b/src/paperless/tests/settings/test_settings.py index 701f203f1..95155aaef 100644 --- a/src/paperless/tests/settings/test_settings.py +++ b/src/paperless/tests/settings/test_settings.py @@ -7,6 +7,7 @@ from django.core.exceptions import ImproperlyConfigured from paperless.settings import _get_allauth_trusted_proxy_count from paperless.settings import _get_classifier_language_setting +from paperless.settings import _get_llm_extra_params from paperless.settings import _get_search_language_setting from paperless.settings import _parse_paperless_url from paperless.settings import default_threads_per_worker @@ -166,3 +167,45 @@ class TestPaperlessURLSettings(TestCase): self.assertIn(url, settings.CSRF_TRUSTED_ORIGINS) self.assertIn(url, settings.CORS_ALLOWED_ORIGINS) + + +class TestLlmExtraParams: + @pytest.mark.parametrize( + ("env_value", "expected"), + [ + pytest.param(None, {}, id="unset"), + pytest.param( + '{"reasoning_effort": "none"}', + {"reasoning_effort": "none"}, + id="json-object", + ), + ], + ) + def test_parses( + self, + monkeypatch, + env_value, + expected, + ): + if env_value is None: + monkeypatch.delenv("PAPERLESS_AI_LLM_EXTRA_PARAMS", raising=False) + else: + monkeypatch.setenv("PAPERLESS_AI_LLM_EXTRA_PARAMS", env_value) + assert _get_llm_extra_params() == expected + + @pytest.mark.parametrize( + ("env_value", "match"), + [ + pytest.param("reasoning_effort=none", "valid JSON", id="invalid-json"), + pytest.param('["none"]', "JSON object", id="not-an-object"), + ], + ) + def test_invalid_raises( + self, + monkeypatch, + env_value, + match, + ): + monkeypatch.setenv("PAPERLESS_AI_LLM_EXTRA_PARAMS", env_value) + with pytest.raises(ImproperlyConfigured, match=match): + _get_llm_extra_params() diff --git a/src/paperless/tests/test_adapter.py b/src/paperless/tests/test_adapter.py index e8b2bc1a6..b7c330332 100644 --- a/src/paperless/tests/test_adapter.py +++ b/src/paperless/tests/test_adapter.py @@ -15,6 +15,7 @@ from pytest_mock import MockerFixture from rest_framework.authtoken.models import Token from paperless.adapter import DrfTokenStrategy +from paperless_testing.factories import UserFactory @pytest.mark.django_db @@ -25,7 +26,7 @@ class TestCustomAccountAdapter: # With no accounts, signups should be allowed assert adapter.is_open_for_signup(None) - User.objects.create_user("testuser") + UserFactory(username="testuser") settings.ACCOUNT_ALLOW_SIGNUPS = True assert adapter.is_open_for_signup(None) @@ -92,7 +93,7 @@ class TestCustomAccountAdapter: ) -> None: settings.ACCOUNT_DEFAULT_GROUPS = ["group1", "group2"] Group.objects.create(name="group1") - user = User.objects.create_user("testuser") + user = UserFactory(username="testuser") adapter = get_adapter() form = mocker.MagicMock( cleaned_data={ @@ -152,7 +153,7 @@ class TestCustomSocialAccountAdapter: settings.SOCIAL_ACCOUNT_DEFAULT_GROUPS = ["group1", "group2"] Group.objects.create(name="group1") adapter = get_social_adapter() - user = User.objects.create_user("testuser") + user = UserFactory(username="testuser") sociallogin = mocker.MagicMock(user=user) user = adapter.save_user(HttpRequest(), sociallogin, None) @@ -187,7 +188,7 @@ class TestDrfTokenStrategy: THEN: - A new token is created and its key is returned """ - user = User.objects.create_user("testuser") + user = UserFactory(username="testuser") request = HttpRequest() request.user = user @@ -207,7 +208,7 @@ class TestDrfTokenStrategy: THEN: - The same token key is returned (no new token created) """ - user = User.objects.create_user("testuser") + user = UserFactory(username="testuser") existing_token = Token.objects.create(user=user) request = HttpRequest() diff --git a/src/paperless/tests/test_admin_auth.py b/src/paperless/tests/test_admin_auth.py new file mode 100644 index 000000000..434b82990 --- /dev/null +++ b/src/paperless/tests/test_admin_auth.py @@ -0,0 +1,68 @@ +import time + +from allauth.mfa import app_settings as mfa_settings +from allauth.mfa.totp.internal import auth as totp_auth +from django.test import TestCase +from django.urls import reverse + +from paperless_testing.factories import UserFactory + + +class TestAdminAuth(TestCase): + def test_admin_login_redirects_to_allauth(self): + user = UserFactory(staff=True, password="testpassword") + admin_url = reverse("admin:index") + login_url = reverse("admin:login") + expected_url = f"{reverse('account_login')}?next={admin_url}" + + response = self.client.get(login_url, {"next": admin_url}) + self.assertRedirects(response, expected_url) + + response = self.client.post( + login_url, + {"username": user.username, "password": "testpassword", "next": admin_url}, + ) + self.assertRedirects(response, expected_url) + self.assertNotIn("_auth_user_id", self.client.session) + + def test_admin_access_requires_totp_for_enrolled_staff(self): + user = UserFactory(staff=True, password="testpassword") + secret = totp_auth.generate_totp_secret() + totp_auth.TOTP.activate(user, secret) + admin_url = reverse("admin:index") + mfa_url = reverse("mfa_authenticate") + + response = self.client.post( + reverse("account_login"), + {"login": user.username, "password": "testpassword", "next": admin_url}, + ) + self.assertRedirects(response, mfa_url) + self.assertNotIn("_auth_user_id", self.client.session) + self.assertRedirects( + self.client.get(admin_url), + f"{reverse('admin:login')}?next={admin_url}", + fetch_redirect_response=False, + ) + + response = self.client.post(mfa_url, {"code": "invalid"}) + self.assertEqual(response.status_code, 200) + self.assertNotIn("_auth_user_id", self.client.session) + + code = totp_auth.format_hotp_value( + totp_auth.hotp_value(secret, int(time.time()) // mfa_settings.TOTP_PERIOD), + ) + response = self.client.post(mfa_url, {"code": code}) + self.assertRedirects(response, admin_url) + self.assertEqual(self.client.session["_auth_user_id"], str(user.pk)) + + def test_staff_without_totp_can_still_log_in(self): + user = UserFactory(staff=True, password="testpassword") + admin_url = reverse("admin:index") + + response = self.client.post( + reverse("account_login"), + {"login": user.username, "password": "testpassword", "next": admin_url}, + ) + + self.assertRedirects(response, admin_url) + self.assertEqual(self.client.session["_auth_user_id"], str(user.pk)) diff --git a/src/paperless/tests/test_api_auth.py b/src/paperless/tests/test_api_auth.py index d55b4bdb2..f0a98dc7e 100644 --- a/src/paperless/tests/test_api_auth.py +++ b/src/paperless/tests/test_api_auth.py @@ -1,12 +1,13 @@ import uuid -from django.contrib.auth.models import User from django.test import TestCase from django.test import override_settings from django.urls import resolve from django.urls import reverse from rest_framework import status +from paperless_testing.factories import UserFactory + class TestApiAuthViews(TestCase): def test_api_auth_login_uses_allauth_login_view(self): @@ -24,10 +25,7 @@ class TestApiAuthViews(TestCase): @override_settings(DISABLE_REGULAR_LOGIN=True) def test_api_auth_login_respects_disable_regular_login(self): username = f"testuser-{uuid.uuid4().hex}" - User.objects.create_user( - username=username, - password="testpassword", - ) + UserFactory(username=username, password="testpassword") response = self.client.post( reverse("rest_framework:login"), diff --git a/src/paperless/tests/test_auth_middleware.py b/src/paperless/tests/test_auth_middleware.py index fec355d7d..a6b6a783a 100644 --- a/src/paperless/tests/test_auth_middleware.py +++ b/src/paperless/tests/test_auth_middleware.py @@ -1,10 +1,10 @@ from django.contrib.auth.models import AnonymousUser -from django.contrib.auth.models import User from django.test import RequestFactory from django.test import TestCase from django.test import override_settings from paperless.auth import AutoLoginMiddleware +from paperless_testing.factories import UserFactory @override_settings(AUTO_LOGIN_USERNAME="autologin") @@ -29,7 +29,7 @@ class TestAutoLoginMiddleware(TestCase): THEN: - That user is attached to the request """ - user = User.objects.create_user(username="autologin") + user = UserFactory(username="autologin") request = self._process(self.factory.get("/")) @@ -44,7 +44,7 @@ class TestAutoLoginMiddleware(TestCase): THEN: - The request is left anonymous rather than authenticated as them """ - User.objects.create_user(username="autologin", is_active=False) + UserFactory(username="autologin", is_active=False) request = self.factory.get("/") request.user = AnonymousUser() diff --git a/src/paperless/tests/test_checks.py b/src/paperless/tests/test_checks.py index 94325ae95..20e13b66d 100644 --- a/src/paperless/tests/test_checks.py +++ b/src/paperless/tests/test_checks.py @@ -1,6 +1,5 @@ import os from collections.abc import Callable -from dataclasses import dataclass from pathlib import Path from unittest import mock @@ -19,35 +18,7 @@ from paperless.checks import check_v3_minimum_upgrade_version from paperless.checks import debug_mode_check from paperless.checks import paths_check from paperless.checks import settings_values_check - - -@dataclass(frozen=True, slots=True) -class PaperlessTestDirs: - data_dir: Path - media_dir: Path - consumption_dir: Path - - -# TODO: consolidate with documents/tests/conftest.py PaperlessDirs/paperless_dirs -# once the paperless and documents test suites are ready to share fixtures. -@pytest.fixture() -def directories(tmp_path: Path, settings: Settings) -> PaperlessTestDirs: - data_dir = tmp_path / "data" - media_dir = tmp_path / "media" - consumption_dir = tmp_path / "consumption" - - for d in (data_dir, media_dir, consumption_dir): - d.mkdir() - - settings.DATA_DIR = data_dir - settings.MEDIA_ROOT = media_dir - settings.CONSUMPTION_DIR = consumption_dir - - return PaperlessTestDirs( - data_dir=data_dir, - media_dir=media_dir, - consumption_dir=consumption_dir, - ) +from paperless_testing.dirs import PaperlessDirs class TestChecks: @@ -58,7 +29,7 @@ class TestChecks: settings.CONVERT_BINARY = "uuuhh" assert len(binaries_check(None)) == 1 - @pytest.mark.usefixtures("directories") + @pytest.mark.usefixtures("paperless_dirs") def test_paths_check(self) -> None: assert paths_check(None) == [] @@ -73,17 +44,17 @@ class TestChecks: for msg in msgs: assert msg.msg.endswith("is set but doesn't exist.") - def test_paths_check_no_access(self, directories: PaperlessTestDirs) -> None: - directories.data_dir.chmod(0o000) - directories.media_dir.chmod(0o000) - directories.consumption_dir.chmod(0o000) + def test_paths_check_no_access(self, paperless_dirs: PaperlessDirs) -> None: + paperless_dirs.data_dir.chmod(0o000) + paperless_dirs.media_dir.chmod(0o000) + paperless_dirs.consumption_dir.chmod(0o000) try: msgs = paths_check(None) finally: - directories.data_dir.chmod(0o777) - directories.media_dir.chmod(0o777) - directories.consumption_dir.chmod(0o777) + paperless_dirs.data_dir.chmod(0o777) + paperless_dirs.media_dir.chmod(0o777) + paperless_dirs.consumption_dir.chmod(0o777) assert len(msgs) == 3 for msg in msgs: diff --git a/src/paperless/tests/test_config_precedence.py b/src/paperless/tests/test_config_precedence.py index 2cc9aecf3..0b439dd1f 100644 --- a/src/paperless/tests/test_config_precedence.py +++ b/src/paperless/tests/test_config_precedence.py @@ -30,3 +30,27 @@ class TestBooleanConfigPrecedence(TestCase): config.save() self.assertTrue(AIConfig().ai_enabled) + + +class TestAIConfigPrecedence(TestCase): + @override_settings(LLM_EMBEDDING_API_KEY="environment-embedding-key") + def test_database_embedding_api_key_overrides_environment_setting(self) -> None: + config, _ = ApplicationConfiguration.objects.get_or_create() + config.llm_embedding_api_key = "database-embedding-key" + config.save() + + self.assertEqual( + AIConfig().llm_embedding_api_key, + "database-embedding-key", + ) + + @override_settings(LLM_EMBEDDING_API_KEY="environment-embedding-key") + def test_null_embedding_api_key_uses_environment_setting(self) -> None: + config, _ = ApplicationConfiguration.objects.get_or_create() + config.llm_embedding_api_key = None + config.save() + + self.assertEqual( + AIConfig().llm_embedding_api_key, + "environment-embedding-key", + ) diff --git a/src/paperless/tests/test_migration_replace_skip_archive_file.py b/src/paperless/tests/test_migration_replace_skip_archive_file.py index e13bfd10c..0bcd5d2d5 100644 --- a/src/paperless/tests/test_migration_replace_skip_archive_file.py +++ b/src/paperless/tests/test_migration_replace_skip_archive_file.py @@ -1,4 +1,4 @@ -from documents.tests.utils import TestMigrations +from paperless_testing.migrations import TestMigrations class TestMigrateSkipArchiveFile(TestMigrations): diff --git a/src/paperless/tests/test_signals.py b/src/paperless/tests/test_signals.py index cf6ec19c5..383746d94 100644 --- a/src/paperless/tests/test_signals.py +++ b/src/paperless/tests/test_signals.py @@ -1,7 +1,6 @@ from unittest.mock import Mock from django.contrib.auth.models import Group -from django.contrib.auth.models import User from django.http import HttpRequest from django.test import TestCase from django.test import override_settings @@ -9,6 +8,7 @@ from django.test import override_settings from documents.models import UiSettings from paperless.signals import handle_failed_login from paperless.signals import handle_social_account_updated +from paperless_testing.factories import UserFactory class TestFailedLoginLogging(TestCase): @@ -120,7 +120,7 @@ class TestSyncSocialLoginGroups(TestCase): - The user's groups are updated to match the social login's groups """ group = Group.objects.create(name="group1") - user = User.objects.create_user(username="testuser") + user = UserFactory(username="testuser") sociallogin = Mock( user=user, account=Mock( @@ -147,7 +147,7 @@ class TestSyncSocialLoginGroups(TestCase): - The user's groups are not updated """ Group.objects.create(name="group1") - user = User.objects.create_user(username="testuser") + user = UserFactory(username="testuser") sociallogin = Mock( user=user, account=Mock( @@ -180,7 +180,7 @@ class TestSyncSocialLoginGroups(TestCase): would be rejected for a deactivated user anyway """ Group.objects.create(name="admin-group") - user = User.objects.create_user( + user = UserFactory( username="inactive_user", is_active=False, is_superuser=False, @@ -215,7 +215,7 @@ class TestSyncSocialLoginGroups(TestCase): - The user's groups are cleared to match the social login's groups """ group = Group.objects.create(name="group1") - user = User.objects.create_user(username="testuser") + user = UserFactory(username="testuser") user.groups.add(group) user.save() sociallogin = Mock( @@ -244,7 +244,7 @@ class TestSyncSocialLoginGroups(TestCase): - The user's groups are updated using `userinfo.groups` """ group = Group.objects.create(name="group1") - user = User.objects.create_user(username="testuser") + user = UserFactory(username="testuser") sociallogin = Mock( user=user, account=Mock( @@ -275,7 +275,7 @@ class TestSyncSocialLoginGroups(TestCase): - The user's groups are updated using `id_token.groups` """ group = Group.objects.create(name="group1") - user = User.objects.create_user(username="testuser") + user = UserFactory(username="testuser") sociallogin = Mock( user=user, account=Mock( @@ -310,11 +310,7 @@ class TestSyncSocialLoginGroups(TestCase): THEN: - User is not promoted, since only an exact group match counts """ - user = User.objects.create_user( - username="testuser", - is_superuser=False, - is_staff=False, - ) + user = UserFactory(username="testuser", is_superuser=False, is_staff=False) sociallogin = Mock( user=user, account=Mock( @@ -345,11 +341,7 @@ class TestSyncSocialLoginGroups(TestCase): THEN: - User becomes superuser and staff """ - user = User.objects.create_user( - username="testuser_s_e", - is_superuser=False, - is_staff=False, - ) + user = UserFactory(username="testuser_s_e", is_superuser=False, is_staff=False) sociallogin = Mock( user=user, account=Mock( @@ -380,11 +372,7 @@ class TestSyncSocialLoginGroups(TestCase): THEN: - User loses superuser status but preserves staff status if they had it """ - user = User.objects.create_user( - username="testuser_s_d", - is_superuser=True, - is_staff=True, - ) + user = UserFactory(username="testuser_s_d", is_superuser=True, is_staff=True) sociallogin = Mock( user=user, account=Mock( @@ -415,11 +403,7 @@ class TestSyncSocialLoginGroups(TestCase): THEN: - User becomes staff """ - user = User.objects.create_user( - username="testuser_st_e", - is_superuser=False, - is_staff=False, - ) + user = UserFactory(username="testuser_st_e", is_superuser=False, is_staff=False) sociallogin = Mock( user=user, account=Mock( @@ -450,11 +434,7 @@ class TestSyncSocialLoginGroups(TestCase): THEN: - User loses staff status """ - user = User.objects.create_user( - username="testuser_st_d", - is_superuser=False, - is_staff=True, - ) + user = UserFactory(username="testuser_st_d", is_superuser=False, is_staff=True) sociallogin = Mock( user=user, account=Mock( @@ -485,11 +465,7 @@ class TestSyncSocialLoginGroups(TestCase): - Roles are correctly assigned/revoked according to groups """ # Case 1: has both - user = User.objects.create_user( - username="testuser_b_1", - is_superuser=False, - is_staff=False, - ) + user = UserFactory(username="testuser_b_1", is_superuser=False, is_staff=False) sociallogin = Mock( user=user, account=Mock(extra_data={"groups": ["admin-group", "staff-group"]}), @@ -504,11 +480,7 @@ class TestSyncSocialLoginGroups(TestCase): self.assertTrue(user.is_staff) # Case 2: has only staff - user2 = User.objects.create_user( - username="testuser_b_2", - is_superuser=True, - is_staff=True, - ) + user2 = UserFactory(username="testuser_b_2", is_superuser=True, is_staff=True) sociallogin2 = Mock( user=user2, account=Mock(extra_data={"groups": ["staff-group"]}), @@ -523,11 +495,7 @@ class TestSyncSocialLoginGroups(TestCase): self.assertTrue(user2.is_staff) # Case 3: has neither - user3 = User.objects.create_user( - username="testuser_b_3", - is_superuser=True, - is_staff=True, - ) + user3 = UserFactory(username="testuser_b_3", is_superuser=True, is_staff=True) sociallogin3 = Mock( user=user3, account=Mock(extra_data={"groups": ["other-group"]}), @@ -554,11 +522,7 @@ class TestSyncSocialLoginGroups(TestCase): THEN: - Existing roles are not modified """ - user = User.objects.create_user( - username="testuser_n_s", - is_superuser=True, - is_staff=True, - ) + user = UserFactory(username="testuser_n_s", is_superuser=True, is_staff=True) sociallogin = Mock( user=user, account=Mock(extra_data={"groups": ["admin-group", "staff-group"]}), @@ -586,7 +550,7 @@ class TestSyncSocialLoginGroups(TestCase): THEN: - User's superuser status is demoted, matching the group claim exactly """ - user = User.objects.create_user( + user = UserFactory( username="local_admin", password="password123", is_superuser=True, @@ -618,11 +582,7 @@ class TestSyncSocialLoginGroups(TestCase): THEN: - User's superuser status is demoted, even though they are the last admin """ - user = User.objects.create_user( - username="last_admin", - is_superuser=True, - is_staff=True, - ) + user = UserFactory(username="last_admin", is_superuser=True, is_staff=True) user.set_unusable_password() user.save() @@ -652,7 +612,7 @@ class TestSyncSocialLoginGroups(TestCase): THEN: - User's staff status is demoted, matching the group claim exactly """ - user = User.objects.create_user( + user = UserFactory( username="local_staff", password="password123", is_superuser=False, @@ -688,8 +648,8 @@ class TestUserGroupDeletionCleanup(TestCase): THEN: - References in ui_settings are cleaned up """ - user = User.objects.create_user(username="testuser") - user2 = User.objects.create_user(username="testuser2") + user = UserFactory(username="testuser") + user2 = UserFactory(username="testuser2") group = Group.objects.create(name="testgroup") ui_settings = UiSettings.objects.create( @@ -727,8 +687,8 @@ class TestUserGroupDeletionCleanup(TestCase): THEN: - Error is logged and the system remains stable """ - user = User.objects.create_user(username="testuser") - user2 = User.objects.create_user(username="testuser2") + user = UserFactory(username="testuser") + user2 = UserFactory(username="testuser2") user2_id = user2.id Group.objects.create(name="testgroup") diff --git a/src/paperless/urls.py b/src/paperless/urls.py index 0c02d172b..6c2fdeef5 100644 --- a/src/paperless/urls.py +++ b/src/paperless/urls.py @@ -1,4 +1,5 @@ from allauth.account import views as allauth_account_views +from allauth.account.decorators import secure_admin_login from allauth.mfa.base import views as allauth_mfa_views from allauth.socialaccount import views as allauth_social_account_views from allauth.urls import build_provider_urlpatterns @@ -68,6 +69,8 @@ from paperless_mail.views import MailRuleViewSet from paperless_mail.views import OauthCallbackView from paperless_mail.views import ProcessedMailViewSet +admin.site.login = secure_admin_login(admin.site.login) + api_router = DefaultRouter() api_router.register(r"correspondents", CorrespondentViewSet) api_router.register(r"document_types", DocumentTypeViewSet) @@ -297,7 +300,7 @@ urlpatterns = [ ), re_path(r"^share/(?P\w+)/?$", SharedLinkView.as_view()), re_path(r"^favicon.ico$", FaviconView.as_view(), name="favicon"), - re_path(r"admin/", admin.site.urls), + re_path(r"^admin/", admin.site.urls), re_path( r"^fetch/", include( diff --git a/src/paperless_ai/client.py b/src/paperless_ai/client.py index 682a0e86c..cb4afe10e 100644 --- a/src/paperless_ai/client.py +++ b/src/paperless_ai/client.py @@ -75,6 +75,7 @@ class AIClient: context_window=self.settings.llm_context_size, request_timeout=self.settings.llm_request_timeout, system_prompt=LLM_SYSTEM_PROMPT, + additional_kwargs=self.settings.llm_extra_params, client=Client( host=endpoint, timeout=self.settings.llm_request_timeout, @@ -111,6 +112,7 @@ class AIClient: is_chat_model=True, is_function_calling_model=True, system_prompt=LLM_SYSTEM_PROMPT, + additional_kwargs=self.settings.llm_extra_params, http_client=http_client, async_http_client=async_http_client, ) diff --git a/src/paperless_ai/embedding.py b/src/paperless_ai/embedding.py index dbbb2b3be..0fd71423f 100644 --- a/src/paperless_ai/embedding.py +++ b/src/paperless_ai/embedding.py @@ -41,7 +41,9 @@ def get_embedding_model(config: AIConfig) -> "BaseEmbedding": ) return OpenAILikeEmbedding( model_name=config.llm_embedding_model or "text-embedding-3-small", - api_key=config.llm_api_key or PLACEHOLDER_API_KEY, + api_key=config.llm_embedding_api_key + or config.llm_api_key + or PLACEHOLDER_API_KEY, api_base=endpoint, timeout=config.llm_request_timeout, http_client=http_client, diff --git a/src/paperless_ai/tests/test_ai_classifier.py b/src/paperless_ai/tests/test_ai_classifier.py index 10342a305..eeb8eabf7 100644 --- a/src/paperless_ai/tests/test_ai_classifier.py +++ b/src/paperless_ai/tests/test_ai_classifier.py @@ -1,20 +1,17 @@ import datetime from collections.abc import Generator from types import SimpleNamespace +from typing import TYPE_CHECKING from unittest.mock import MagicMock from unittest.mock import patch import pytest import pytest_mock from django.test import override_settings -from guardian.shortcuts import assign_perm from guardian.shortcuts import remove_perm from documents.models import Document from documents.search import TantivyBackend -from documents.tests.factories import DocumentFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory from paperless.config import AIConfig from paperless_ai.ai_classifier import TAXONOMY_CANDIDATE_TOP_K from paperless_ai.ai_classifier import _fulltext_similar_documents @@ -27,6 +24,13 @@ from paperless_ai.ai_classifier import get_taxonomy_context from paperless_ai.taxonomy import SimilarDocument from paperless_ai.taxonomy import TaxonomyCandidate from paperless_ai.taxonomy import TaxonomyCandidates +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_object + +if TYPE_CHECKING: + from paperless_testing.dirs import PaperlessDirs @pytest.fixture @@ -630,10 +634,11 @@ class TestFulltextSimilarDocuments: def fulltext_backend( self, mocker: pytest_mock.MockerFixture, + paperless_dirs: "PaperlessDirs", ) -> Generator[TantivyBackend, None, None]: - """An in-memory Tantivy backend, wired up as the module-level + """An on-disk Tantivy backend, wired up as the module-level singleton _fulltext_similar_documents resolves via get_backend().""" - backend = TantivyBackend(path=None) + backend = TantivyBackend(path=paperless_dirs.index_dir) backend.open() mocker.patch("documents.search.get_backend", return_value=backend) try: @@ -815,8 +820,8 @@ class TestFulltextSimilarDocuments: content="shared content phrase", owner=owner, ) - assign_perm("view_document", viewer, permitted) - assign_perm("view_document", viewer, now_private) + grant_object(viewer, permitted, "view_document") + grant_object(viewer, now_private, "view_document") fulltext_backend.add_or_update(source) fulltext_backend.add_or_update(permitted) fulltext_backend.add_or_update(now_private) diff --git a/src/paperless_ai/tests/test_ai_indexing.py b/src/paperless_ai/tests/test_ai_indexing.py index 3866e6345..99a11f35f 100644 --- a/src/paperless_ai/tests/test_ai_indexing.py +++ b/src/paperless_ai/tests/test_ai_indexing.py @@ -21,12 +21,12 @@ from documents.models import Note from documents.models import PaperlessTask from documents.signals import document_consumption_finished from documents.signals import document_updated -from documents.tests.factories import DocumentFactory -from documents.tests.factories import PaperlessTaskFactory from paperless.models import ApplicationConfiguration from paperless_ai import indexing from paperless_ai.tests.conftest import FakeEmbedding from paperless_ai.vector_store import PaperlessSqliteVecVectorStore +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import PaperlessTaskFactory @pytest.fixture diff --git a/src/paperless_ai/tests/test_chat.py b/src/paperless_ai/tests/test_chat.py index be28d0a14..696aa250f 100644 --- a/src/paperless_ai/tests/test_chat.py +++ b/src/paperless_ai/tests/test_chat.py @@ -14,7 +14,6 @@ from llama_index.core.embeddings.mock_embed_model import MockEmbedding from llama_index.core.schema import TextNode from documents.models import Document -from documents.tests.factories import DocumentFactory from paperless_ai import chat from paperless_ai import indexing from paperless_ai.chat import CHAT_ERROR_MESSAGE @@ -22,6 +21,7 @@ from paperless_ai.chat import CHAT_METADATA_DELIMITER from paperless_ai.chat import _build_chat_prompt from paperless_ai.chat import _build_refine_prompt from paperless_ai.chat import stream_chat_with_documents +from paperless_testing.factories import DocumentFactory if TYPE_CHECKING: from pathlib import Path diff --git a/src/paperless_ai/tests/test_client.py b/src/paperless_ai/tests/test_client.py index 79bb6ad44..4a908b867 100644 --- a/src/paperless_ai/tests/test_client.py +++ b/src/paperless_ai/tests/test_client.py @@ -23,6 +23,7 @@ def mock_ai_config(): mock_config.llm_allow_internal_endpoints = True mock_config.llm_context_size = 8192 mock_config.llm_request_timeout = 120 + mock_config.llm_extra_params = {} MockAIConfig.return_value = mock_config yield mock_config @@ -52,6 +53,7 @@ def test_get_llm_ollama(mock_ai_config, mock_ollama_llm): context_window=8192, request_timeout=120, system_prompt=LLM_SYSTEM_PROMPT, + additional_kwargs={}, client=ANY, async_client=ANY, ) @@ -74,6 +76,7 @@ def test_get_llm_openai(mock_ai_config, mock_openai_llm): is_chat_model=True, is_function_calling_model=True, system_prompt=LLM_SYSTEM_PROMPT, + additional_kwargs={}, http_client=ANY, async_http_client=ANY, ) @@ -196,6 +199,36 @@ def test_run_llm_query_openai_uses_tools(mock_ai_config, mock_openai_llm): ) +@pytest.mark.parametrize( + ("backend", "llm_fixture"), + [ + pytest.param("openai-like", "mock_openai_llm", id="openai-like"), + pytest.param("ollama", "mock_ollama_llm", id="ollama"), + ], +) +def test_get_llm_passes_extra_params(request, mock_ai_config, backend, llm_fixture): + """ + GIVEN: + - Extra LLM params configured, e.g. for a provider that needs a + parameter we do not set ourselves + WHEN: + - The client builds the LLM + THEN: + - They are handed to the backend as additional_kwargs + """ + llm_mock = request.getfixturevalue(llm_fixture) + mock_ai_config.llm_backend = backend + mock_ai_config.llm_model = "gpt-5.6-luna" + mock_ai_config.llm_endpoint = "http://test-url" + mock_ai_config.llm_extra_params = {"reasoning_effort": "none"} + + AIClient() + + assert llm_mock.call_args.kwargs["additional_kwargs"] == { + "reasoning_effort": "none", + } + + def test_run_llm_query_openai_timeout_raises_local_error( mock_ai_config, mock_openai_llm, diff --git a/src/paperless_ai/tests/test_embedding.py b/src/paperless_ai/tests/test_embedding.py index 1373a37bd..126a1a9f3 100644 --- a/src/paperless_ai/tests/test_embedding.py +++ b/src/paperless_ai/tests/test_embedding.py @@ -17,6 +17,7 @@ from paperless_ai.embedding import get_embedding_model @pytest.fixture def mock_ai_config(): with patch("paperless_ai.embedding.AIConfig") as MockAIConfig: + MockAIConfig.return_value.llm_embedding_api_key = None MockAIConfig.return_value.llm_embedding_endpoint = None MockAIConfig.return_value.llm_allow_internal_endpoints = True MockAIConfig.return_value.llm_context_size = 8192 @@ -63,6 +64,7 @@ def mock_document(): def test_get_embedding_model_openai(mock_ai_config): mock_ai_config.return_value.llm_embedding_backend = LLMEmbeddingBackend.OPENAI_LIKE mock_ai_config.return_value.llm_embedding_model = "text-embedding-3-small" + mock_ai_config.return_value.llm_embedding_api_key = "test_embedding_api_key" mock_ai_config.return_value.llm_api_key = "test_api_key" mock_ai_config.return_value.llm_endpoint = "http://test-url" @@ -72,7 +74,7 @@ def test_get_embedding_model_openai(mock_ai_config): model = get_embedding_model(mock_ai_config.return_value) MockOpenAIEmbedding.assert_called_once_with( model_name="text-embedding-3-small", - api_key="test_api_key", + api_key="test_embedding_api_key", api_base="http://test-url", timeout=120, http_client=ANY, @@ -81,6 +83,20 @@ def test_get_embedding_model_openai(mock_ai_config): assert model == MockOpenAIEmbedding.return_value +def test_get_embedding_model_openai_falls_back_to_llm_api_key(mock_ai_config): + mock_ai_config.return_value.llm_embedding_backend = LLMEmbeddingBackend.OPENAI_LIKE + mock_ai_config.return_value.llm_embedding_model = "text-embedding-3-small" + mock_ai_config.return_value.llm_api_key = "test_api_key" + mock_ai_config.return_value.llm_endpoint = "http://test-url" + + with patch( + "llama_index.embeddings.openai_like.OpenAILikeEmbedding", + ) as MockOpenAIEmbedding: + get_embedding_model(mock_ai_config.return_value) + + assert MockOpenAIEmbedding.call_args.kwargs["api_key"] == "test_api_key" + + @pytest.mark.parametrize("configured_key", [None, ""]) def test_get_embedding_model_openai_without_api_key_sends_placeholder( mock_ai_config, @@ -89,6 +105,7 @@ def test_get_embedding_model_openai_without_api_key_sends_placeholder( """Same required key handling as the LLM client, see #13831.""" mock_ai_config.return_value.llm_embedding_backend = LLMEmbeddingBackend.OPENAI_LIKE mock_ai_config.return_value.llm_embedding_model = "text-embedding-3-small" + mock_ai_config.return_value.llm_embedding_api_key = configured_key mock_ai_config.return_value.llm_api_key = configured_key mock_ai_config.return_value.llm_endpoint = "http://test-url" diff --git a/src/paperless_ai/tests/test_matching.py b/src/paperless_ai/tests/test_matching.py index bbf972ad9..d98745922 100644 --- a/src/paperless_ai/tests/test_matching.py +++ b/src/paperless_ai/tests/test_matching.py @@ -10,11 +10,6 @@ from documents.models import Correspondent from documents.models import DocumentType from documents.models import StoragePath from documents.models import Tag -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory from paperless_ai.matching import extract_unmatched_names from paperless_ai.matching import match_correspondents_by_name from paperless_ai.matching import match_document_types_by_name @@ -24,6 +19,11 @@ from paperless_ai.matching import resolve_correspondent_ids from paperless_ai.matching import resolve_document_type_ids from paperless_ai.matching import resolve_storage_path_ids from paperless_ai.matching import resolve_tag_ids +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory class TestAIMatching(TestCase): diff --git a/src/paperless_ai/tests/test_taxonomy.py b/src/paperless_ai/tests/test_taxonomy.py index 18d81135f..eb225a1fe 100644 --- a/src/paperless_ai/tests/test_taxonomy.py +++ b/src/paperless_ai/tests/test_taxonomy.py @@ -3,16 +3,16 @@ import json import pytest import pytest_mock -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import StoragePathFactory -from documents.tests.factories import TagFactory -from documents.tests.factories import UserFactory from paperless_ai.taxonomy import SimilarDocument from paperless_ai.taxonomy import TaxonomyCandidates from paperless_ai.taxonomy import build_taxonomy_candidates from paperless_ai.taxonomy import format_taxonomy_for_prompt +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import StoragePathFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory def make_similar(document_id: int, weight: float) -> SimilarDocument: diff --git a/src/paperless_mail/mail.py b/src/paperless_mail/mail.py index 8e9170a6b..fb8568e8f 100644 --- a/src/paperless_mail/mail.py +++ b/src/paperless_mail/mail.py @@ -347,6 +347,7 @@ def error_callback( uid=message_uid, uid_validity=uid_validity, defaults={ + "owner": rule.owner, "subject": message_subject[:256], "received": received, "status": "FAILED", @@ -947,6 +948,7 @@ class MailAccountHandler(LoggingMixin): folder=rule.folder, uid_validity=self._current_uid_validity, defaults={ + "owner": rule.owner, "subject": message.subject[:256], "received": make_aware(message.date) if is_naive(message.date) diff --git a/src/paperless_mail/tests/factories.py b/src/paperless_mail/tests/factories.py index 747ad1054..31bdbe86b 100644 --- a/src/paperless_mail/tests/factories.py +++ b/src/paperless_mail/tests/factories.py @@ -2,14 +2,14 @@ from __future__ import annotations import factory from django.utils import timezone -from factory.django import DjangoModelFactory from paperless_mail.models import MailAccount from paperless_mail.models import MailRule from paperless_mail.models import ProcessedMail +from paperless_testing.typed_factory import TypedModelFactory -class MailAccountFactory(DjangoModelFactory[MailAccount]): +class MailAccountFactory(TypedModelFactory[MailAccount]): class Meta: model = MailAccount @@ -24,7 +24,7 @@ class MailAccountFactory(DjangoModelFactory[MailAccount]): is_token = False -class MailRuleFactory(DjangoModelFactory[MailRule]): +class MailRuleFactory(TypedModelFactory[MailRule]): class Meta: model = MailRule @@ -44,7 +44,7 @@ class MailRuleFactory(DjangoModelFactory[MailRule]): stop_processing = False -class ProcessedMailFactory(DjangoModelFactory[ProcessedMail]): +class ProcessedMailFactory(TypedModelFactory[ProcessedMail]): class Meta: model = ProcessedMail diff --git a/src/paperless_mail/tests/helpers.py b/src/paperless_mail/tests/helpers.py new file mode 100644 index 000000000..76d308a6b --- /dev/null +++ b/src/paperless_mail/tests/helpers.py @@ -0,0 +1,262 @@ +import dataclasses +import email.message +import uuid +from contextlib import AbstractContextManager + +from imap_tools import MailboxFolderSelectError +from imap_tools import MailboxLoginError +from imap_tools import MailMessage +from imap_tools import MailMessageFlags + + +@dataclasses.dataclass +class _AttachmentDef: + filename: str = "a_file.pdf" + maintype: str = "application/pdf" + subtype: str = "pdf" + disposition: str = "attachment" + content: bytes = b"a PDF document" + + +class BogusFolderManager: + current_folder = "INBOX" + uidvalidity = "1" + + def set(self, new_folder) -> None: + if new_folder not in ["INBOX", "spam"]: + raise MailboxFolderSelectError(None, "uhm") + self.current_folder = new_folder + + def status(self, folder, options): + return {"UIDVALIDITY": self.uidvalidity} + + +class BogusClient: + def __init__(self, messages) -> None: + self.messages: list[MailMessage] = messages + self.capabilities: list[str] = [] + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb) -> None: + pass + + def authenticate(self, mechanism, authobject) -> None: + # authobject must be a callable object + auth_bytes = authobject(None) + if auth_bytes != b"\x00admin\x00w57\xc3\xa4\xc3\xb6\xc3\xbcw4b6huwb6nhu": + raise MailboxLoginError("BAD", "OK") + + def uid(self, command, *args) -> None: + if command == "STORE": + for message in self.messages: + if message.uid == args[0]: + flag = args[2] + if flag == "processed": + message._raw_flag_data.append(b"+FLAGS (processed)") + if hasattr(message, "flags"): + del message.flags + + +class BogusMailBox(AbstractContextManager): + # Common values so tests don't need to remember an accepted login + USERNAME: str = "admin" + 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) -> None: + self.messages: list[MailMessage] = [] + self.messages_spam: list[MailMessage] = [] + self.folder = BogusFolderManager() + self.client = BogusClient(self.messages) + self._host = "" + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb) -> None: + pass + + def updateClient(self) -> None: + self.client = BogusClient(self.messages) + + def login(self, username, password) -> None: + # This will raise a UnicodeEncodeError if the password is not ASCII only + password.encode("ascii") + # Otherwise, check for correct values + if username != self.USERNAME or password != self.ASCII_PASSWORD: + raise MailboxLoginError("BAD", "OK") + + def login_utf8(self, username, password) -> None: + # Expected to only be called with the UTF-8 password + if username != self.USERNAME or password != self.UTF_PASSWORD: + raise MailboxLoginError("BAD", "OK") + + def xoauth2(self, username: str, access_token: str) -> None: + if username != self.USERNAME or access_token != self.ACCESS_TOKEN: + raise MailboxLoginError("BAD", "OK") + + def fetch( + self, + criteria="ALL", + charset="", + *, + mark_seen=True, + bulk=True, + uid_list=None, + ): + if uid_list is not None: + return [m for m in self.messages if m.uid in uid_list] + return self._filter_messages(criteria) + + def uids(self, criteria, charset="") -> list[str]: + return [m.uid for m in self._filter_messages(criteria)] + + def _filter_messages(self, criteria): + msg = self.messages + + criteria = str(criteria).strip("()").split(" ") + + if "UNSEEN" in criteria: + msg = filter(lambda m: not m.seen, msg) + + if "SUBJECT" in criteria: + subject = criteria[criteria.index("SUBJECT") + 1].strip('"') + msg = filter(lambda m: subject in m.subject, msg) + + if "BODY" in criteria: + body = criteria[criteria.index("BODY") + 1].strip('"') + msg = filter(lambda m: body in m.text, msg) + + if "FROM" in criteria: + 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 = filter(lambda m: any(to_ in to_addr for to_addr in m.to), msg) + + 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: 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) + + if "UID" in criteria: + uid_list = criteria[criteria.index("UID") + 1].split(",") + msg = filter(lambda m: m.uid in uid_list, msg) + + return list(msg) + + def delete(self, uid_list) -> None: + self.messages = list(filter(lambda m: m.uid not in uid_list, self.messages)) + + def flag(self, uid_list, flag_set, value) -> None: + for message in self.messages: + if message.uid in uid_list: + for flag in flag_set: + if flag == MailMessageFlags.FLAGGED: + message.flagged = value + if flag == MailMessageFlags.SEEN: + message.seen = value + if flag == "processed": + message._raw_flag_data.append(b"+FLAGS (processed)") + if hasattr(message, "flags"): + del message.flags + + def move(self, uid_list, folder) -> None: + if folder == "spam": + self.messages_spam += list( + filter(lambda m: m.uid in uid_list, self.messages), + ) + self.messages = list(filter(lambda m: m.uid not in uid_list, self.messages)) + else: + raise Exception + + +def fake_magic_from_buffer(buffer, *, mime=False): + if mime: + if "PDF" in str(buffer): + return "application/pdf" + else: + return "unknown/type" + else: + return "Some verbose file description" + + +class MessageBuilder: + def __init__(self) -> None: + self._next_uid = 1 + + def create_message( + self, + *, + attachments: int | list[_AttachmentDef] = 1, + body: str = "", + subject: str = "the subject", + from_: str = "no_one@mail.com", + to: list[str] | None = 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 = self._next_uid + self._next_uid += 1 + + 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)") + if hasattr(imap_msg, "flags"): + del imap_msg.flags + + return imap_msg diff --git a/src/paperless_mail/tests/test_api.py b/src/paperless_mail/tests/test_api.py index 74715ace0..fa23a16cc 100644 --- a/src/paperless_mail/tests/test_api.py +++ b/src/paperless_mail/tests/test_api.py @@ -1,23 +1,25 @@ import json from unittest import mock -from django.contrib.auth.models import Permission from django.contrib.auth.models import User -from guardian.shortcuts import assign_perm from rest_framework import status from rest_framework.test import APITestCase -from documents.tests.factories import CorrespondentFactory -from documents.tests.factories import DocumentTypeFactory -from documents.tests.factories import TagFactory -from documents.tests.utils import DirectoriesMixin from paperless_mail.models import MailAccount from paperless_mail.models import MailRule from paperless_mail.models import ProcessedMail from paperless_mail.tests.factories import MailAccountFactory from paperless_mail.tests.factories import MailRuleFactory from paperless_mail.tests.factories import ProcessedMailFactory -from paperless_mail.tests.test_mail import BogusMailBox +from paperless_mail.tests.helpers import BogusMailBox +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import DocumentTypeFactory +from paperless_testing.factories import TagFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_all_global +from paperless_testing.permissions import grant_global +from paperless_testing.permissions import grant_object class TestAPIMailAccounts(DirectoriesMixin, APITestCase): @@ -33,8 +35,8 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): super().setUp() - self.user = User.objects.create_user(username="temp_admin") - self.user.user_permissions.add(*Permission.objects.all()) + self.user = UserFactory(username="temp_admin") + grant_all_global(self.user) self.user.save() self.client.force_authenticate(user=self.user) @@ -291,7 +293,7 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): imap_port=443, owner=None, ) - user = User.objects.create_user(username="no_perms") + user = UserFactory(username="no_perms") self.client.force_authenticate(user=user) response = self.client.post( @@ -321,7 +323,7 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): THEN: - API returns forbidden """ - owner = User.objects.create_user(username="account_owner") + owner = UserFactory(username="account_owner") account = MailAccountFactory( username="admin", password="secret", @@ -329,8 +331,8 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): imap_port=443, owner=owner, ) - user = User.objects.create_user(username="object_perms_only") - assign_perm("change_mailaccount", user, account) + user = UserFactory(username="object_perms_only") + grant_object(user, account, "change_mailaccount") self.client.force_authenticate(user=user) response = self.client.post( @@ -377,13 +379,13 @@ class TestAPIMailAccounts(DirectoriesMixin, APITestCase): - Only unowned, owned by user or granted accounts are provided """ - user2 = User.objects.create_user(username="temp_admin2") + user2 = UserFactory(username="temp_admin2") account1 = MailAccountFactory(name="Email1") account2 = MailAccountFactory(name="Email2", owner=self.user) _account3 = MailAccountFactory(name="Email3", owner=user2) account4 = MailAccountFactory(name="Email4", owner=user2) - assign_perm("view_mailaccount", self.user, account4) + grant_object(self.user, account4, "view_mailaccount") response = self.client.get(self.ENDPOINT) @@ -400,8 +402,8 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_user(username="temp_admin") - self.user.user_permissions.add(*Permission.objects.all()) + self.user = UserFactory(username="temp_admin") + grant_all_global(self.user) self.user.save() self.client.force_authenticate(user=self.user) @@ -590,7 +592,7 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): self.assertEqual(returned_rule1.action, MailRule.MailAction.DELETE) def test_create_mail_rule_scopes_accounts(self) -> None: - other_user = User.objects.create_user(username="mail-owner") + other_user = UserFactory(username="mail-owner") foreign_account = MailAccountFactory(name="ForeignEmail", owner=other_user) response = self.client.post( @@ -633,9 +635,9 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): def test_create_mail_rule_allowed_for_granted_account_change_permission( self, ) -> None: - other_user = User.objects.create_user(username="mail-owner") + other_user = UserFactory(username="mail-owner") foreign_account = MailAccountFactory(name="ForeignEmail", owner=other_user) - assign_perm("change_mailaccount", self.user, foreign_account) + grant_object(self.user, foreign_account, "change_mailaccount") response = self.client.post( self.ENDPOINT, @@ -658,7 +660,7 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): def test_update_mail_rule_forbidden_for_unpermitted_account(self) -> None: own_account = MailAccountFactory() - other_user = User.objects.create_user(username="mail-owner") + other_user = UserFactory(username="mail-owner") foreign_account = MailAccountFactory(owner=other_user) rule1 = MailRuleFactory(account=own_account) @@ -681,13 +683,13 @@ class TestAPIMailRules(DirectoriesMixin, APITestCase): - Only unowned, owned by user or granted mail rules are provided """ - user2 = User.objects.create_user(username="temp_admin2") + user2 = UserFactory(username="temp_admin2") account1 = MailAccountFactory() rule1 = MailRuleFactory(account=account1, order=0) rule2 = MailRuleFactory(account=account1, order=1, owner=self.user) MailRuleFactory(account=account1, order=2, owner=user2) rule4 = MailRuleFactory(account=account1, order=3, owner=user2) - assign_perm("view_mailrule", self.user, rule4) + grant_object(self.user, rule4, "view_mailrule") response = self.client.get(self.ENDPOINT) @@ -737,8 +739,8 @@ class TestAPIProcessedMails(DirectoriesMixin, APITestCase): def setUp(self) -> None: super().setUp() - self.user = User.objects.create_user(username="temp_admin") - self.user.user_permissions.add(*Permission.objects.all()) + self.user = UserFactory(username="temp_admin") + grant_all_global(self.user) self.user.save() self.client.force_authenticate(user=self.user) @@ -751,7 +753,7 @@ class TestAPIProcessedMails(DirectoriesMixin, APITestCase): THEN: - Only unowned, owned by user or granted processed mails are provided """ - user2 = User.objects.create_user(username="temp_admin2") + user2 = UserFactory(username="temp_admin2") rule = MailRuleFactory() pm1 = ProcessedMailFactory(rule=rule) pm2 = ProcessedMailFactory( @@ -762,7 +764,7 @@ class TestAPIProcessedMails(DirectoriesMixin, APITestCase): ) ProcessedMailFactory(rule=rule, owner=user2) pm4 = ProcessedMailFactory(rule=rule, owner=user2) - assign_perm("view_processedmail", self.user, pm4) + grant_object(self.user, pm4, "view_processedmail") response = self.client.get(self.ENDPOINT) @@ -802,7 +804,7 @@ class TestAPIProcessedMails(DirectoriesMixin, APITestCase): THEN: - Only the specified processed mails are deleted, respecting ownership and permissions """ - user2 = User.objects.create_user(username="temp_admin2") + user2 = UserFactory(username="temp_admin2") rule = MailRuleFactory() # unowned, owned by self, and one with explicit object perm pm_unowned = ProcessedMailFactory(rule=rule) @@ -813,7 +815,7 @@ class TestAPIProcessedMails(DirectoriesMixin, APITestCase): owner=self.user, ) pm_granted = ProcessedMailFactory(rule=rule, owner=user2) - assign_perm("delete_processedmail", self.user, pm_granted) + grant_object(self.user, pm_granted, "delete_processedmail") pm_forbidden = ProcessedMailFactory(rule=rule, owner=user2) # Success for allowed items @@ -855,13 +857,11 @@ class TestAPIProcessedMails(DirectoriesMixin, APITestCase): self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) def test_bulk_delete_requires_global_delete_permission(self) -> None: - owner = User.objects.create_user(username="mail_owner") - requester = User.objects.create_user(username="mail_deleter") - requester.user_permissions.add( - Permission.objects.get(codename="add_processedmail"), - ) + owner = UserFactory(username="mail_owner") + requester = UserFactory(username="mail_deleter") + grant_global(requester, "add_processedmail") mail = ProcessedMailFactory(owner=owner) - assign_perm("delete_processedmail", requester, mail) + grant_object(requester, mail, "delete_processedmail") self.client.force_authenticate(requester) response = self.client.post( @@ -871,9 +871,7 @@ class TestAPIProcessedMails(DirectoriesMixin, APITestCase): ) self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) - requester.user_permissions.add( - Permission.objects.get(codename="delete_processedmail"), - ) + grant_global(requester, "delete_processedmail") requester = User.objects.get(pk=requester.pk) self.client.force_authenticate(requester) response = self.client.post( @@ -893,7 +891,7 @@ class TestAPIProcessedMails(DirectoriesMixin, APITestCase): THEN: - The request is rejected and neither mail is deleted """ - user2 = User.objects.create_user(username="temp_admin2") + user2 = UserFactory(username="temp_admin2") rule = MailRuleFactory() # Created first so it sorts ahead of the forbidden mail, i.e. the # permission check has to cover the whole batch before deleting rather diff --git a/src/paperless_mail/tests/test_mail.py b/src/paperless_mail/tests/test_mail.py index 3a128fd4e..56c2da467 100644 --- a/src/paperless_mail/tests/test_mail.py +++ b/src/paperless_mail/tests/test_mail.py @@ -1,15 +1,12 @@ import dataclasses -import email.contentmanager import time import uuid from collections import namedtuple -from contextlib import AbstractContextManager from datetime import timedelta from unittest import mock import pytest from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from django.core.management import call_command from django.db import DatabaseError from django.test import TestCase @@ -19,18 +16,12 @@ from imap_tools import NOT from imap_tools import EmailAddress from imap_tools import FolderInfo from imap_tools import MailboxFolderSelectError -from imap_tools import MailboxLoginError -from imap_tools import MailMessage -from imap_tools import MailMessageFlags from imap_tools import errors from rest_framework import status from rest_framework.test import APITestCase from documents.models import Correspondent from documents.models import MatchingModel -from documents.tests.factories import CorrespondentFactory -from documents.tests.utils import DirectoriesMixin -from documents.tests.utils import FileSystemAssertsMixin from paperless_mail import tasks from paperless_mail.mail import MailAccountHandler from paperless_mail.mail import MailError @@ -43,259 +34,15 @@ from paperless_mail.models import MailRule from paperless_mail.models import ProcessedMail from paperless_mail.tests.factories import MailAccountFactory from paperless_mail.tests.factories import MailRuleFactory - - -@dataclasses.dataclass -class _AttachmentDef: - filename: str = "a_file.pdf" - maintype: str = "application/pdf" - subtype: str = "pdf" - disposition: str = "attachment" - content: bytes = b"a PDF document" - - -class BogusFolderManager: - current_folder = "INBOX" - uidvalidity = "1" - - def set(self, new_folder) -> None: - if new_folder not in ["INBOX", "spam"]: - raise MailboxFolderSelectError(None, "uhm") - self.current_folder = new_folder - - def status(self, folder, options): - return {"UIDVALIDITY": self.uidvalidity} - - -class BogusClient: - def __init__(self, messages) -> None: - self.messages: list[MailMessage] = messages - self.capabilities: list[str] = [] - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb) -> None: - pass - - def authenticate(self, mechanism, authobject) -> None: - # authobject must be a callable object - auth_bytes = authobject(None) - if auth_bytes != b"\x00admin\x00w57\xc3\xa4\xc3\xb6\xc3\xbcw4b6huwb6nhu": - raise MailboxLoginError("BAD", "OK") - - def uid(self, command, *args) -> None: - if command == "STORE": - for message in self.messages: - if message.uid == args[0]: - flag = args[2] - if flag == "processed": - message._raw_flag_data.append(b"+FLAGS (processed)") - if hasattr(message, "flags"): - del message.flags - - -class BogusMailBox(AbstractContextManager): - # Common values so tests don't need to remember an accepted login - USERNAME: str = "admin" - 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) -> None: - self.messages: list[MailMessage] = [] - self.messages_spam: list[MailMessage] = [] - self.folder = BogusFolderManager() - self.client = BogusClient(self.messages) - self._host = "" - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb) -> None: - pass - - def updateClient(self) -> None: - self.client = BogusClient(self.messages) - - def login(self, username, password) -> None: - # This will raise a UnicodeEncodeError if the password is not ASCII only - password.encode("ascii") - # Otherwise, check for correct values - if username != self.USERNAME or password != self.ASCII_PASSWORD: - raise MailboxLoginError("BAD", "OK") - - def login_utf8(self, username, password) -> None: - # Expected to only be called with the UTF-8 password - if username != self.USERNAME or password != self.UTF_PASSWORD: - raise MailboxLoginError("BAD", "OK") - - def xoauth2(self, username: str, access_token: str) -> None: - if username != self.USERNAME or access_token != self.ACCESS_TOKEN: - raise MailboxLoginError("BAD", "OK") - - def fetch( - self, - criteria="ALL", - charset="", - *, - mark_seen=True, - bulk=True, - uid_list=None, - ): - if uid_list is not None: - return [m for m in self.messages if m.uid in uid_list] - return self._filter_messages(criteria) - - def uids(self, criteria, charset="") -> list[str]: - return [m.uid for m in self._filter_messages(criteria)] - - def _filter_messages(self, criteria): - msg = self.messages - - criteria = str(criteria).strip("()").split(" ") - - if "UNSEEN" in criteria: - msg = filter(lambda m: not m.seen, msg) - - if "SUBJECT" in criteria: - subject = criteria[criteria.index("SUBJECT") + 1].strip('"') - msg = filter(lambda m: subject in m.subject, msg) - - if "BODY" in criteria: - body = criteria[criteria.index("BODY") + 1].strip('"') - msg = filter(lambda m: body in m.text, msg) - - if "FROM" in criteria: - 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 = filter(lambda m: any(to_ in to_addr for to_addr in m.to), msg) - - 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: 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) - - if "UID" in criteria: - uid_list = criteria[criteria.index("UID") + 1].split(",") - msg = filter(lambda m: m.uid in uid_list, msg) - - return list(msg) - - def delete(self, uid_list) -> None: - self.messages = list(filter(lambda m: m.uid not in uid_list, self.messages)) - - def flag(self, uid_list, flag_set, value) -> None: - for message in self.messages: - if message.uid in uid_list: - for flag in flag_set: - if flag == MailMessageFlags.FLAGGED: - message.flagged = value - if flag == MailMessageFlags.SEEN: - message.seen = value - if flag == "processed": - message._raw_flag_data.append(b"+FLAGS (processed)") - if hasattr(message, "flags"): - del message.flags - - def move(self, uid_list, folder) -> None: - if folder == "spam": - self.messages_spam += list( - filter(lambda m: m.uid in uid_list, self.messages), - ) - self.messages = list(filter(lambda m: m.uid not in uid_list, self.messages)) - else: - raise Exception - - -def fake_magic_from_buffer(buffer, *, mime=False): - if mime: - if "PDF" in str(buffer): - return "application/pdf" - else: - return "unknown/type" - else: - return "Some verbose file description" - - -class MessageBuilder: - def __init__(self) -> None: - self._next_uid = 1 - - def create_message( - self, - *, - attachments: int | list[_AttachmentDef] = 1, - body: str = "", - subject: str = "the subject", - from_: str = "no_one@mail.com", - to: list[str] | None = 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 = self._next_uid - self._next_uid += 1 - - 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)") - if hasattr(imap_msg, "flags"): - del imap_msg.flags - - return imap_msg +from paperless_mail.tests.helpers import BogusMailBox +from paperless_mail.tests.helpers import MessageBuilder +from paperless_mail.tests.helpers import _AttachmentDef +from paperless_mail.tests.helpers import fake_magic_from_buffer +from paperless_testing.assertions import FileSystemAssertsMixin +from paperless_testing.dirs import DirectoriesMixin +from paperless_testing.factories import CorrespondentFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global def reset_bogus_mailbox( @@ -637,8 +384,10 @@ class TestMail( ) account = MailAccount.objects.create() + owner = UserFactory() rule = MailRule.objects.create( account=account, + owner=owner, consumption_scope=MailRule.ConsumptionScope.ATTACHMENTS_ONLY, ) @@ -653,6 +402,7 @@ class TestMail( folder=rule.folder, ) self.assertEqual(processed.status, "PROCESSED_WO_CONSUMPTION") + self.assertEqual(processed.owner, owner) # Calling it again must not create a second row self.mail_account_handler._handle_message(message, rule) @@ -1818,7 +1568,12 @@ class TestMail( ("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): + with self.subTest( + f_body=f_body, + f_from=f_from, + f_to=f_to, + f_subject=f_subject, + ): MailRule.objects.all().delete() _ = MailRule.objects.create( name="testrule3", @@ -2059,7 +1814,7 @@ class TestPostConsumeAction(TestCase): with ( self.assertRaises(errors.ImapToolsError), - self.assertLogs("paperless.mail", level="ERROR") as cm, + self.assertLogs("paperless_mail", level="ERROR") as cm, ): apply_mail_action( result=[], @@ -2068,9 +1823,10 @@ class TestPostConsumeAction(TestCase): message_subject=self.message_subject, message_date=self.message_date, ) - error_str = cm.output[0] - expected_str = "Error while processing mail action during post_consume" - self.assertIn(expected_str, error_str) + + error_str = cm.output[0] + expected_str = "Error while processing mail action during post_consume" + self.assertIn(expected_str, error_str) processed_mail = ProcessedMail.objects.get(uid=self.message_uid) self.assertEqual(processed_mail.status, "FAILED") @@ -2090,7 +1846,8 @@ class TestErrorCallback: THEN: - Only one ProcessedMail row is created for that mail """ - rule = MailRuleFactory() + owner = UserFactory() + rule = MailRuleFactory(owner=owner) message_uid = "12345" for _ in range(2): @@ -2113,6 +1870,7 @@ class TestErrorCallback: ) assert processed_mails.count() == 1 assert processed_mails.get().status == "FAILED" + assert processed_mails.get().owner == owner class TestManagementCommand(TestCase): @@ -2263,15 +2021,8 @@ class TestMailAccountTestView(APITestCase): self.mailMocker = MailMocker() self.mailMocker.setUp() self.addCleanup(self.mailMocker.doCleanups) - self.user = User.objects.create_user( - username="testuser", - password="testpassword", - ) - self.user.user_permissions.add( - *Permission.objects.filter( - codename__in=["add_mailaccount", "change_mailaccount"], - ), - ) + self.user = UserFactory(username="testuser", password="testpassword") + grant_global(self.user, "add_mailaccount", "change_mailaccount") self.user.save() self.client.force_authenticate(user=self.user) self.url = "/api/mail_accounts/test/" @@ -2409,10 +2160,7 @@ class TestMailAccountTestView(APITestCase): self.assertIn(expected_str, error_str) def test_mail_account_test_view_existing_forbidden_for_other_owner(self) -> None: - other_user = User.objects.create_user( - username="otheruser", - password="testpassword", - ) + other_user = UserFactory(username="otheruser", password="testpassword") existing_account = MailAccount.objects.create( name="Owned account", imap_server="imap.example.com", @@ -2535,9 +2283,10 @@ class TestMailAccountProcess(APITestCase): self.mailMocker = MailMocker() self.mailMocker.setUp() self.addCleanup(self.mailMocker.doCleanups) - self.user = User.objects.create_superuser( + self.user = UserFactory( username="testuser", password="testpassword", + superuser=True, ) self.client.force_authenticate(user=self.user) self.account = MailAccount.objects.create( @@ -2560,9 +2309,10 @@ class TestMailAccountProcess(APITestCase): class TestMailRuleAPI(APITestCase): def setUp(self) -> None: - self.user = User.objects.create_superuser( + self.user = UserFactory( username="testuser", password="testpassword", + superuser=True, ) self.client.force_authenticate(user=self.user) self.account = MailAccountFactory(owner=self.user) diff --git a/src/paperless_mail/tests/test_mail_nfc.py b/src/paperless_mail/tests/test_mail_nfc.py index bfef06da9..68f5cfa55 100644 --- a/src/paperless_mail/tests/test_mail_nfc.py +++ b/src/paperless_mail/tests/test_mail_nfc.py @@ -13,20 +13,11 @@ from unittest import mock import pytest -from documents.tests.utils import remove_dirs -from documents.tests.utils import setup_directories from paperless_mail.models import MailRule from paperless_mail.tests.factories import MailAccountFactory -from paperless_mail.tests.test_mail import MessageBuilder -from paperless_mail.tests.test_mail import _AttachmentDef -from paperless_mail.tests.test_mail import fake_magic_from_buffer - - -@pytest.fixture() -def directories(settings): - dirs = setup_directories() - yield dirs - remove_dirs(dirs) +from paperless_mail.tests.helpers import MessageBuilder +from paperless_mail.tests.helpers import _AttachmentDef +from paperless_mail.tests.helpers import fake_magic_from_buffer @pytest.fixture() @@ -78,7 +69,7 @@ class TestMailNFCNormalization: def test_attachment_nfd_filename_normalized_to_nfc( self, - directories, + paperless_dirs, queue_consumption_tasks_mock, attachment_rule, mail_account_handler, @@ -123,7 +114,7 @@ class TestMailNFCNormalization: def test_eml_subject_filename_nfc( self, - directories, + paperless_dirs, queue_consumption_tasks_mock, eml_rule, mail_account_handler, @@ -156,7 +147,7 @@ class TestMailNFCNormalization: def test_already_nfc_attachment_filename_unchanged( self, - directories, + paperless_dirs, queue_consumption_tasks_mock, attachment_rule, mail_account_handler, diff --git a/src/paperless_mail/tests/test_mail_oauth.py b/src/paperless_mail/tests/test_mail_oauth.py index 52b96ca83..c3ba99ce9 100644 --- a/src/paperless_mail/tests/test_mail_oauth.py +++ b/src/paperless_mail/tests/test_mail_oauth.py @@ -2,7 +2,6 @@ from datetime import timedelta from unittest import mock from django.contrib.auth.models import Permission -from django.contrib.auth.models import User from django.test import TestCase from django.test import override_settings from django.utils import timezone @@ -14,6 +13,8 @@ from paperless_mail.mail import MailAccountHandler from paperless_mail.models import MailAccount from paperless_mail.oauth import PaperlessMailOAuth2Manager from paperless_mail.tests.factories import MailAccountFactory +from paperless_testing.factories import UserFactory +from paperless_testing.permissions import grant_global @override_settings( @@ -27,14 +28,8 @@ class TestMailOAuth( TestCase, ): def setUp(self) -> None: - self.user = User.objects.create_user("testuser") - self.user.user_permissions.add( - *Permission.objects.filter( - codename__in=[ - "add_mailaccount", - ], - ), - ) + self.user = UserFactory(username="testuser") + grant_global(self.user, "add_mailaccount") self.user.save() self.client.force_login(self.user) self.mail_account_handler = MailAccountHandler() diff --git a/src/paperless_mail/tests/test_preprocessor.py b/src/paperless_mail/tests/test_preprocessor.py index 33c9b3839..e439b5209 100644 --- a/src/paperless_mail/tests/test_preprocessor.py +++ b/src/paperless_mail/tests/test_preprocessor.py @@ -16,8 +16,8 @@ from paperless_mail.mail import MailAccountHandler from paperless_mail.models import MailRule from paperless_mail.preprocessor import MailMessageDecryptor from paperless_mail.tests.factories import MailAccountFactory +from paperless_mail.tests.helpers import _AttachmentDef from paperless_mail.tests.test_mail import TestMail -from paperless_mail.tests.test_mail import _AttachmentDef class MessageEncryptor: diff --git a/src/paperless_testing/__init__.py b/src/paperless_testing/__init__.py new file mode 100644 index 000000000..ac0c18181 --- /dev/null +++ b/src/paperless_testing/__init__.py @@ -0,0 +1,5 @@ +"""Shared test support for every Paperless-ngx app. + +Fixtures live in ``src/conftest.py``; anything a test imports by name lives +here. App-specific helpers stay in that app's ``tests`` package. +""" diff --git a/src/paperless_testing/assertions.py b/src/paperless_testing/assertions.py new file mode 100644 index 000000000..42dbceb6f --- /dev/null +++ b/src/paperless_testing/assertions.py @@ -0,0 +1,37 @@ +"""Filesystem assertions for unittest-style tests.""" + +from __future__ import annotations + +from pathlib import Path +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from os import PathLike + + +class FileSystemAssertsMixin: + def assertIsFile(self, path: PathLike[str] | str) -> None: + if not Path(path).resolve().is_file(): + raise AssertionError(f"File does not exist: {path}") + + def assertIsNotFile(self, path: PathLike[str] | str) -> None: + if Path(path).resolve().is_file(): + raise AssertionError(f"File does exist: {path}") + + def assertIsDir(self, path: PathLike[str] | str) -> None: + if not Path(path).resolve().is_dir(): + raise AssertionError(f"Dir does not exist: {path}") + + def assertIsNotDir(self, path: PathLike[str] | str) -> None: + if Path(path).resolve().is_dir(): + raise AssertionError(f"Dir does exist: {path}") + + def assertFileCountInDir(self, path: PathLike[str] | str, count: int) -> None: + path = Path(path).resolve() + if not path.is_dir(): + raise AssertionError(f"Path {path} is not a directory") + found = len([x for x in path.iterdir() if x.is_file()]) + if found != count: + raise AssertionError( + f"Path {path} contains {found} files instead of {count} files", + ) diff --git a/src/paperless_testing/dirs.py b/src/paperless_testing/dirs.py new file mode 100644 index 000000000..81582ef5c --- /dev/null +++ b/src/paperless_testing/dirs.py @@ -0,0 +1,150 @@ +"""The Paperless-ngx temp directory layout, stated once. + +``build_paperless_dirs`` owns where things go and creates them. +``dirs_settings`` owns the mapping onto Django setting names and is pure. +Everything else in the test suite is a caller of these two. +""" + +from __future__ import annotations + +from contextlib import contextmanager +from dataclasses import dataclass +from pathlib import Path +from tempfile import TemporaryDirectory +from typing import TYPE_CHECKING +from typing import TypedDict + +import pytest +from django.test import override_settings + +if TYPE_CHECKING: + from collections.abc import Iterator + + +@dataclass(frozen=True, slots=True) +class PaperlessDirs: + """Standard Paperless-ngx directory layout for tests.""" + + data_dir: Path + scratch_dir: Path + media_dir: Path + consumption_dir: Path + static_dir: Path + index_dir: Path + originals_dir: Path + thumbnail_dir: Path + archive_dir: Path + logging_dir: Path + model_file: Path + media_lock: Path + share_link_bundle_dir: Path + + +class DirSettings(TypedDict): + """The Django settings the layout above maps onto.""" + + DATA_DIR: Path + SCRATCH_DIR: Path + MEDIA_ROOT: Path + ORIGINALS_DIR: Path + THUMBNAIL_DIR: Path + ARCHIVE_DIR: Path + CONSUMPTION_DIR: Path + LOGGING_DIR: Path + INDEX_DIR: Path + STATIC_ROOT: Path + MODEL_FILE: Path + MEDIA_LOCK: Path + SHARE_LINK_BUNDLE_DIR: Path + + +def build_paperless_dirs(root: Path) -> PaperlessDirs: + """Compute the layout under root and create the directories.""" + data_dir = root / "data" + media_dir = root / "media" + documents_dir = media_dir / "documents" + + dirs = PaperlessDirs( + data_dir=data_dir, + scratch_dir=root / "scratch", + media_dir=media_dir, + consumption_dir=root / "consume", + static_dir=root / "static", + index_dir=data_dir / "index", + originals_dir=documents_dir / "originals", + thumbnail_dir=documents_dir / "thumbnails", + archive_dir=documents_dir / "archive", + logging_dir=data_dir / "log", + model_file=data_dir / "classification_model.pickle", + media_lock=media_dir / "media.lock", + share_link_bundle_dir=documents_dir / "share_link_bundles", + ) + + for directory in ( + dirs.data_dir, + dirs.scratch_dir, + dirs.media_dir, + dirs.consumption_dir, + dirs.static_dir, + dirs.index_dir, + dirs.originals_dir, + dirs.thumbnail_dir, + dirs.archive_dir, + dirs.logging_dir, + ): + directory.mkdir(parents=True, exist_ok=True) + + return dirs + + +def dirs_settings(dirs: PaperlessDirs) -> DirSettings: + """Map the layout onto Django setting names.""" + return DirSettings( + DATA_DIR=dirs.data_dir, + SCRATCH_DIR=dirs.scratch_dir, + MEDIA_ROOT=dirs.media_dir, + ORIGINALS_DIR=dirs.originals_dir, + THUMBNAIL_DIR=dirs.thumbnail_dir, + ARCHIVE_DIR=dirs.archive_dir, + CONSUMPTION_DIR=dirs.consumption_dir, + LOGGING_DIR=dirs.logging_dir, + INDEX_DIR=dirs.index_dir, + STATIC_ROOT=dirs.static_dir, + MODEL_FILE=dirs.model_file, + MEDIA_LOCK=dirs.media_lock, + SHARE_LINK_BUNDLE_DIR=dirs.share_link_bundle_dir, + ) + + +@contextmanager +def paperless_environment() -> Iterator[PaperlessDirs]: + """A second, isolated environment for the duration of the block. + + Only for tests needing a fresh environment part way through a test body, + which a fixture cannot provide. Everything else uses the paperless_dirs + fixture. + """ + from documents.search import reset_backend + + with TemporaryDirectory(ignore_cleanup_errors=True) as tmp: + dirs = build_paperless_dirs(Path(tmp)) + with override_settings(**dirs_settings(dirs)): + reset_backend() + try: + yield dirs + finally: + reset_backend() + + +class DirectoriesMixin: + """Bridges the directory fixture to unittest TestCase subclasses and to + plain pytest test classes that want `self.dirs`. + + Delete once no class depends on it. + """ + + dirs: PaperlessDirs + + @pytest.fixture(autouse=True) + def _paperless_dirs(self, paperless_dirs: PaperlessDirs) -> None: + self.dirs = paperless_dirs diff --git a/src/documents/tests/factories.py b/src/paperless_testing/factories.py similarity index 66% rename from src/documents/tests/factories.py rename to src/paperless_testing/factories.py index a92791c77..eaff2c79e 100644 --- a/src/documents/tests/factories.py +++ b/src/paperless_testing/factories.py @@ -5,21 +5,20 @@ Factory-boy factories for documents app models. from __future__ import annotations import factory -from django.contrib.auth import get_user_model -from factory.django import DjangoModelFactory +from django.contrib.auth.models import User from documents.models import Correspondent from documents.models import Document +from documents.models import DocumentBarcode from documents.models import DocumentType from documents.models import MatchingModel from documents.models import PaperlessTask from documents.models import StoragePath from documents.models import Tag - -UserModelT = get_user_model() +from paperless_testing.typed_factory import TypedModelFactory -class CorrespondentFactory(DjangoModelFactory[Correspondent]): +class CorrespondentFactory(TypedModelFactory[Correspondent]): class Meta: model = Correspondent @@ -28,7 +27,7 @@ class CorrespondentFactory(DjangoModelFactory[Correspondent]): matching_algorithm = MatchingModel.MATCH_NONE -class DocumentTypeFactory(DjangoModelFactory[DocumentType]): +class DocumentTypeFactory(TypedModelFactory[DocumentType]): class Meta: model = DocumentType @@ -37,7 +36,7 @@ class DocumentTypeFactory(DjangoModelFactory[DocumentType]): matching_algorithm = MatchingModel.MATCH_NONE -class TagFactory(DjangoModelFactory[Tag]): +class TagFactory(TypedModelFactory[Tag]): class Meta: model = Tag @@ -47,7 +46,7 @@ class TagFactory(DjangoModelFactory[Tag]): is_inbox_tag = False -class StoragePathFactory(DjangoModelFactory[StoragePath]): +class StoragePathFactory(TypedModelFactory[StoragePath]): class Meta: model = StoragePath @@ -59,7 +58,7 @@ class StoragePathFactory(DjangoModelFactory[StoragePath]): matching_algorithm = MatchingModel.MATCH_NONE -class DocumentFactory(DjangoModelFactory[Document]): +class DocumentFactory(TypedModelFactory[Document]): class Meta: model = Document @@ -71,21 +70,34 @@ class DocumentFactory(DjangoModelFactory[Document]): storage_path = None -class UserFactory(DjangoModelFactory[UserModelT]): +class DocumentBarcodeFactory(TypedModelFactory[DocumentBarcode]): class Meta: - model = UserModelT + model = DocumentBarcode + + document = factory.SubFactory(DocumentFactory) + page = 1 + value = factory.Faker("uri") + format = DocumentBarcode.Format.QR_CODE + + +class UserFactory(TypedModelFactory[User]): + class Meta: + model = User username = factory.Sequence(lambda n: f"user{n}") is_staff = False is_superuser = False - password = factory.django.Password("test") + # Hashing a real password costs about half a second per user, and no test + # authenticates with its password. None gives the unusable password + # create_user() gives. + password = factory.django.Password(None) class Params: superuser = factory.Trait(is_staff=True, is_superuser=True) staff = factory.Trait(is_staff=True) -class PaperlessTaskFactory(DjangoModelFactory[PaperlessTask]): +class PaperlessTaskFactory(TypedModelFactory[PaperlessTask]): class Meta: model = PaperlessTask diff --git a/src/paperless_testing/fakes/__init__.py b/src/paperless_testing/fakes/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/src/paperless_testing/fakes/progress.py b/src/paperless_testing/fakes/progress.py new file mode 100644 index 000000000..3832df9c9 --- /dev/null +++ b/src/paperless_testing/fakes/progress.py @@ -0,0 +1,31 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +from documents.plugins.helpers import ProgressManager + +if TYPE_CHECKING: + from documents.plugins.helpers import WebsocketPayload + + +class FakeProgressManager(ProgressManager): + """ + The real ProgressManager with the channel layer cut out: send_progress still + builds the payload, so it cannot drift, and the payloads are recorded instead + of being sent to Redis. + + Use it through the `fake_progress_manager` fixture, or construct it directly. + """ + + def __init__(self, filename: str | None = None, task_id: str | None = None) -> None: + super().__init__(filename, task_id) + self.payloads: list[WebsocketPayload] = [] + + def open(self) -> None: + pass + + def close(self) -> None: + pass + + def send(self, payload: WebsocketPayload) -> None: + self.payloads.append(payload) diff --git a/src/paperless_testing/http.py b/src/paperless_testing/http.py new file mode 100644 index 000000000..78144ad19 --- /dev/null +++ b/src/paperless_testing/http.py @@ -0,0 +1,13 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING + +if TYPE_CHECKING: + from django.http import StreamingHttpResponse + + +def read_streaming_response(response: StreamingHttpResponse) -> bytes: + """Consume a StreamingHttpResponse/FileResponse and close it.""" + content = b"".join(response.streaming_content) + response.close() + return content diff --git a/src/paperless_testing/migrations.py b/src/paperless_testing/migrations.py new file mode 100644 index 000000000..41c4c5d75 --- /dev/null +++ b/src/paperless_testing/migrations.py @@ -0,0 +1,65 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING +from typing import Any + +from django.apps import apps +from django.db import connection +from django.db.migrations.executor import MigrationExecutor +from django.test import TransactionTestCase + +if TYPE_CHECKING: + from django.apps.registry import Apps + + +class TestMigrations(TransactionTestCase): + @property + def app(self) -> str: + return apps.get_containing_app_config(type(self).__module__).name + + migrate_from: Any = None + dependencies: list[tuple[str, str]] | None = None + migrate_to: Any = None + + def setUp(self) -> None: + super().setUp() + + assert self.migrate_from and self.migrate_to, ( + f"TestCase '{type(self).__name__}' must define migrate_from and migrate_to properties" + ) + self.migrate_from = [(self.app, self.migrate_from)] + if self.dependencies is not None: + self.migrate_from.extend(self.dependencies) + self.migrate_to = [(self.app, self.migrate_to)] + executor = MigrationExecutor(connection) + old_apps = executor.loader.project_state(self.migrate_from).apps + + # Reverse to the original migration + executor.migrate(self.migrate_from) + + self.setUpBeforeMigration(old_apps) + + self.apps = old_apps + + # Run the migration to test + executor = MigrationExecutor(connection) + executor.loader.build_graph() # reload. + executor.migrate(self.migrate_to) + + self.apps = executor.loader.project_state(self.migrate_to).apps + + def setUpBeforeMigration(self, apps: Apps) -> None: + pass + + def tearDown(self) -> None: + """ + Ensure the database schema is restored to the latest migration after + each migration test, so subsequent tests run against HEAD. + """ + try: + executor = MigrationExecutor(connection) + executor.loader.build_graph() + targets = executor.loader.graph.leaf_nodes() + executor.migrate(targets) + finally: + super().tearDown() diff --git a/src/paperless_testing/permissions.py b/src/paperless_testing/permissions.py new file mode 100644 index 000000000..2cda83b23 --- /dev/null +++ b/src/paperless_testing/permissions.py @@ -0,0 +1,43 @@ +"""Helpers that grant permissions to users and groups in tests. + +Two mechanisms, two names. A global permission is a Django model permission held +by a user. An object permission is a guardian permission held on one object by a +user or a group. They are not interchangeable. +""" + +from __future__ import annotations + +from typing import TYPE_CHECKING + +from django.contrib.auth.models import Permission +from guardian.shortcuts import assign_perm + +if TYPE_CHECKING: + from django.contrib.auth.models import Group + from django.contrib.auth.models import User + from django.db.models import Model + + +def grant_global(user: User, *perms: str) -> None: + """Grant model-level permissions. + + Each of perms is a codename or "app_label.codename". An unknown name raises + Permission.DoesNotExist. + """ + for perm in perms: + app_label, _, codename = perm.rpartition(".") + lookup = {"codename": codename} + if app_label: + lookup["content_type__app_label"] = app_label + user.user_permissions.add(Permission.objects.get(**lookup)) + + +def grant_all_global(user: User) -> None: + """Grant every existing model-level permission without making a superuser.""" + user.user_permissions.add(*Permission.objects.all()) + + +def grant_object(target: User | Group, obj: Model, *perms: str) -> None: + """Grant object-level permissions on obj to a user or a group.""" + for perm in perms: + assign_perm(perm, target, obj) diff --git a/src/paperless_testing/retry.py b/src/paperless_testing/retry.py new file mode 100644 index 000000000..7b5f16765 --- /dev/null +++ b/src/paperless_testing/retry.py @@ -0,0 +1,76 @@ +from __future__ import annotations + +import time +import warnings +from typing import TYPE_CHECKING +from typing import Any + +import httpx +import pytest + +from documents.parsers import ParseError + +if TYPE_CHECKING: + from collections.abc import Callable + + +def util_call_with_backoff( + method_or_callable: Callable, + args: list | tuple, + *, + skip_on_50x_err: bool = True, +) -> tuple[bool, Any]: + """ + For whatever reason, the images started during the test pipeline like to + segfault sometimes, crash and otherwise fail randomly, when run with the + exact files that usually pass. + + So, this function will retry the given method/function up to 3 times, with larger backoff + periods between each attempt, in hopes the issue resolves itself during + one attempt to parse. + + This will wait the following: + - Attempt 1 - 20s following failure + - Attempt 2 - 40s following failure + - Attempt 3 - 80s following failure + + """ + result = None + succeeded = False + retry_time = 20.0 + retry_count = 0 + status_codes = [] + max_retry_count = 3 + + while retry_count < max_retry_count and not succeeded: + try: + result = method_or_callable(*args) + + succeeded = True + except ParseError as e: # pragma: no cover + cause_exec = e.__cause__ + if cause_exec is not None and isinstance(cause_exec, httpx.HTTPStatusError): + status_codes.append(cause_exec.response.status_code) + warnings.warn( + f"HTTP Exception for {cause_exec.request.url} - {cause_exec}", + ) + else: + warnings.warn(f"Unexpected error: {e}") + except Exception as e: # pragma: no cover + warnings.warn(f"Unexpected error: {e}") + + retry_count = retry_count + 1 + + if not succeeded and retry_count < max_retry_count: + time.sleep(retry_time) + retry_time = retry_time * 2.0 + + if ( + not succeeded + and status_codes + and skip_on_50x_err + and all(httpx.codes.is_server_error(code) for code in status_codes) + ): + pytest.skip("Repeated HTTP 50x for service") # pragma: no cover + + return succeeded, result diff --git a/src/paperless_testing/typed_factory.py b/src/paperless_testing/typed_factory.py new file mode 100644 index 000000000..c1e44745b --- /dev/null +++ b/src/paperless_testing/typed_factory.py @@ -0,0 +1,20 @@ +""" +A DjangoModelFactory base whose calls are typed as the model they build. +""" + +from __future__ import annotations + +from typing import TYPE_CHECKING +from typing import Any +from typing import TypeVar + +from factory.django import DjangoModelFactory + +T = TypeVar("T") + + +class TypedModelFactory(DjangoModelFactory[T]): + if TYPE_CHECKING: + # factory-boy leaves Factory() unannotated, so mypy takes it to build a + # factory instance. At runtime it builds the model. + def __new__(cls, *args: Any, **kwargs: Any) -> T: ... # type: ignore[misc] diff --git a/uv.lock b/uv.lock index 5ad211d97..e2b844bf5 100644 --- a/uv.lock +++ b/uv.lock @@ -18,6 +18,9 @@ supported-markers = [ "sys_platform == 'linux'", ] +[options] +prerelease-mode = "disallow" + [[package]] name = "aiohappyeyeballs" version = "2.6.1" @@ -200,6 +203,61 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/91/be/317c2c55b8bbec407257d45f5c8d1b6867abc76d12043f2d3d58c538a4ea/asgiref-3.11.0-py3-none-any.whl", hash = "sha256:1db9021efadb0d9512ce8ffaf72fcef601c7b73a8807a1bb2ef143dc6b14846d", size = 24096, upload-time = "2025-11-19T15:32:19.004Z" }, ] +[[package]] +name = "ast-serialize" +version = "0.11.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/54/1e/4f6082cdd6e5a29093513e9a3eabc5ed1c5331a9a84386b2fece80a00a48/ast_serialize-0.11.2.tar.gz", hash = "sha256:976a5bd75845d22f4b52905ddf53ab669ef1b14dba7735f5512841a2ef2b5450", size = 954387, upload-time = "2026-09-13T18:48:55.673Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/2e/beec3364eef4b01793a676d8cd16e9014c42044a5505000ceae3955e33fa/ast_serialize-0.11.2-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:f6a8dfc5ab204a706f6e5d39c6f77c18c27ef084fa2081803a64a9160ce89277", size = 897089, upload-time = "2026-09-13T18:47:22.69Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d7/ef56443df2891c6ba2c4019c2cb3dcaf97c9948da6d963068e04e8dac6ea/ast_serialize-0.11.2-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:cb073bfa15742699d408ac50f60878383b5665ae1791d1b6799ea6f08633cd77", size = 1235218, upload-time = "2026-09-13T18:47:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/42/8d/cff58d17ba1d0272ff0b7ab5d3bdfcf8f47317eb0f47c001d394bffebf95/ast_serialize-0.11.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1d6ad94edbe93bf1dabc06c9f37d55b898fdabc456aa6d7ced5e23c14f795f32", size = 1216399, upload-time = "2026-09-13T18:47:26.202Z" }, + { url = "https://files.pythonhosted.org/packages/de/d2/a1da7675af5f42335c36e4da6d86ef4fd7168cead18de81df0a2d6faeb1a/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40b2801cf2221bd922d9f69d2f0ebc373c3db47207315d525b2d87fa161a2af4", size = 1282064, upload-time = "2026-09-13T18:47:27.787Z" }, + { url = "https://files.pythonhosted.org/packages/97/89/5a400a13b2c9c0152ebb5ad45408a3fe5e4e60e325d3ac4e5cf6e915a0cc/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd666cebd6ab3b3c0fd348a6202c26e18a401ee34293c3804d3472266bc146f6", size = 1285864, upload-time = "2026-09-13T18:47:29.667Z" }, + { url = "https://files.pythonhosted.org/packages/02/b8/80a381c70fd49f0316fb0383c4f9e4c13e81b010b64889bd45898ce8f5f4/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0d01f61352c96370febf6c0dbd488dee9183a731fb2702170da9163ae317cded", size = 1554755, upload-time = "2026-09-13T18:47:31.257Z" }, + { url = "https://files.pythonhosted.org/packages/90/97/dcaa34a32d2db789221c125b3eb10feb5089715fe53d9874d627afc26231/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0fd40c668b0fa19b8fdb61d9e63d547e2e19cfbfe053a51ef0b6c37070298a8", size = 1301807, upload-time = "2026-09-13T18:47:32.714Z" }, + { url = "https://files.pythonhosted.org/packages/5c/9a/84a22420cb312642d7d31547c644d09a3d101418c6d6b9ef2ec30735cf11/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efa819d7c14c8e4153dcd84671826331538be7cbe460383fc6386f5eea5bd234", size = 1301941, upload-time = "2026-09-13T18:47:34.418Z" }, + { url = "https://files.pythonhosted.org/packages/20/8a/aa5f3dcf1aed9678c25982f40d366004e3c0cac47bc0c240f6b837dcbb1f/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:a9ffa8a197a721f07a352d0be6185f5b3e6f9aaebfdb66169ed652108531ae3b", size = 1307910, upload-time = "2026-09-13T18:47:36.253Z" }, + { url = "https://files.pythonhosted.org/packages/78/79/91a5102797fe3dc992171382d8579bcb33cbd1424b864ad3117ac43fb3fe/ast_serialize-0.11.2-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:00119a8fb8c1dc0f1fab023f4d8071fa49e3b0208ee54d589fd463c16ab0124e", size = 1356258, upload-time = "2026-09-13T18:47:37.984Z" }, + { url = "https://files.pythonhosted.org/packages/51/52/54eeef9918e187ced417c4363eecea66975314cd5b9c91759eef7f7b714b/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0de02520c11391a026e62987a9aa2c3c2ff01545155059ddf0c4bdf2c5ecbe9f", size = 1459057, upload-time = "2026-09-13T18:47:39.891Z" }, + { url = "https://files.pythonhosted.org/packages/e4/cb/fd84b52b15d42f2423319cffd1fb7f1e9df5d5198e69ab0b449c450254cf/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:b4e4558956b6a0fb35e18fba58f7d1810b1f2c0e6b52352572cd5dfb6b4ef33a", size = 1562447, upload-time = "2026-09-13T18:47:41.727Z" }, + { url = "https://files.pythonhosted.org/packages/be/92/9fb34f2e64b84a63cca92fb86bd0847b995a63b67477f44c20502fb60352/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:6061a54f39e82a9f2cbcb9c268fc441890e4818a6636473caa4f4063254e0750", size = 1556423, upload-time = "2026-09-13T18:47:43.357Z" }, + { url = "https://files.pythonhosted.org/packages/75/0f/c43c44449e7ebc4e83ebd48750088fb06234622faa2d62d2a6dc8970d2a3/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:85fbb01e83967a126d71f679f2b9528ef0912cb0854aa1a4657314c34e255b57", size = 1687156, upload-time = "2026-09-13T18:47:44.995Z" }, + { url = "https://files.pythonhosted.org/packages/2b/a7/9e520f4a79b639da9ee20c1e747c3d739329e902fc55ac38065f25419f56/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:7aaaffc32905159774a107d3cf33dad59bd41b7a0d1bc9885532186753ee7439", size = 1481008, upload-time = "2026-09-13T18:47:46.602Z" }, + { url = "https://files.pythonhosted.org/packages/48/a8/bdd3989f19de09cffcd8179c131f6741a5a8619705fc75b09541ff61530b/ast_serialize-0.11.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:08eda88a0f290a36c38cab33df8bf7e35eb95bc802ca5beb2c8fcda471a7d10c", size = 1501597, upload-time = "2026-09-13T18:47:48.265Z" }, + { url = "https://files.pythonhosted.org/packages/0b/55/a1962188abf0e62d84d55892bb044347e434711763b9a1d4ad867a70c1be/ast_serialize-0.11.2-cp315-abi3.abi3t-macosx_10_12_x86_64.whl", hash = "sha256:ab924ba260efd7509492f272d4e236d24564033f20c005d7c63a107c6a76fc85", size = 1235457, upload-time = "2026-09-13T18:47:54.554Z" }, + { url = "https://files.pythonhosted.org/packages/2a/ad/439c2959150718446af76fbe2f4000f35eba9869ef8564f3d9a3d0b1c370/ast_serialize-0.11.2-cp315-abi3.abi3t-macosx_11_0_arm64.whl", hash = "sha256:a586be418eb70a9f1396cea29ddac8f4b9bf277fb73ea2340db31e218bc00f32", size = 1215705, upload-time = "2026-09-13T18:47:56.178Z" }, + { url = "https://files.pythonhosted.org/packages/6d/d8/2c6542fc3e7c56a0a25d8d12d034d5a2d2e1900e292567b1c1dca8e83124/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8532f20916fa3189d4d785ef2a62d93c4d651ec9c5bffda66d2fc36898351f34", size = 1282530, upload-time = "2026-09-13T18:47:57.619Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ad/6f6755cd0842db46c3b10b1e4735f14aad78d71dea4753eb46933101711b/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ee732ae167e686d1d3c00f98d7d82b23138304694f0441b14d7ddf9c0f8a921c", size = 1287792, upload-time = "2026-09-13T18:47:59.227Z" }, + { url = "https://files.pythonhosted.org/packages/03/40/5da672f5dd23fb7dc0c884c97711e56a3540f2fe3c4355a81f8beb385911/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75a1c7f46b9c19fc0ae01ca6fd076301628faa2ed7a8edbd55c6353c483946a3", size = 1557971, upload-time = "2026-09-13T18:48:00.96Z" }, + { url = "https://files.pythonhosted.org/packages/df/c7/2bb25684f697801eb72866fdb94ed5edbff3867ce878b0e542a4a5b9dab9/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2fdf31a0bb85ea2575cc91669f005e6647d2efed491231c4dc1497bc9a5b3aa6", size = 1303230, upload-time = "2026-09-13T18:48:02.337Z" }, + { url = "https://files.pythonhosted.org/packages/d8/85/754681846f26e0ff1da729b1ffe3171e93c22f0aa6ec3cea5b14e3703846/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b78e6fdef3b06c86ed263e1962fee5a7b9d2d158e738b212d13b2c605ee12f5", size = 1302271, upload-time = "2026-09-13T18:48:03.915Z" }, + { url = "https://files.pythonhosted.org/packages/fb/dc/f5521d8cb44b69095c3982ae3658a12c403e0efa19e51aeb9c8a79dff60c/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_31_riscv64.whl", hash = "sha256:8d62a47714c8bc432b9fabcc29989c815c5da17327d35151f2fd0d85c2a7a5ff", size = 1309529, upload-time = "2026-09-13T18:48:05.562Z" }, + { url = "https://files.pythonhosted.org/packages/73/0d/649182c7fd7c4f782279bed514de2dd67e48a5afecb605a098d64fdc01fd/ast_serialize-0.11.2-cp315-abi3.abi3t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8a5ffa70e76191dcf240d3c43e20c93b3bfd26f54d89148c762d57837f5bcd2c", size = 1356869, upload-time = "2026-09-13T18:48:07.534Z" }, + { url = "https://files.pythonhosted.org/packages/bf/cc/aff4d84c16afa742d13a75384127c7d24594dc8c304f0558a15924fd51af/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_aarch64.whl", hash = "sha256:bfbe47a3a7c368f28836e78b2440a3643ac0ec4c67d9fe53588e1448f0a3d35d", size = 1460006, upload-time = "2026-09-13T18:48:09.162Z" }, + { url = "https://files.pythonhosted.org/packages/94/a7/891cbec2e5e0d7159196159d3ff0646622f3120ff4576c839ac2dd56c719/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_armv7l.whl", hash = "sha256:7f1823275b246f9c7d373be6879e4eec09686948895d4ad083f4b27fd7e4da70", size = 1562935, upload-time = "2026-09-13T18:48:10.978Z" }, + { url = "https://files.pythonhosted.org/packages/45/c4/2c8c4498340ea9aff87a9fd408309aa25d56dd51d7bbddfdb46a3c31424a/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_i686.whl", hash = "sha256:57c0f5cb0021a5beb1e5e4d6e840ae2f23a28909703ef4d256a144cc1ad3d437", size = 1557109, upload-time = "2026-09-13T18:48:12.616Z" }, + { url = "https://files.pythonhosted.org/packages/0d/8b/c5d4e5226fa18885fe17f949aee3ab1aeb8389c384d946ec1b7c9489cc94/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_ppc64le.whl", hash = "sha256:cd320a5c4f1f2742af97eea22954f776379175c5ef2504801e9a155f2ff9a4d7", size = 1691603, upload-time = "2026-09-13T18:48:14.293Z" }, + { url = "https://files.pythonhosted.org/packages/73/d6/1d2ca472586f9e3416a289a22f36eeb6dd6f47d77b1a4aba358405babbc7/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_riscv64.whl", hash = "sha256:13b13afe32e845c86a573497729e1b7ddeb26c572c78bf50ece51da23b8fad5e", size = 1483053, upload-time = "2026-09-13T18:48:15.789Z" }, + { url = "https://files.pythonhosted.org/packages/0e/16/d3703a7c1e3c76b144ac9349a54d3926d0749918a8dc13a66cede208b8ec/ast_serialize-0.11.2-cp315-abi3.abi3t-musllinux_1_2_x86_64.whl", hash = "sha256:9d80a81ec84660422579bdb8e789f656a794b48c7a1ae1261f6bd8bc1897d17d", size = 1502499, upload-time = "2026-09-13T18:48:17.405Z" }, + { url = "https://files.pythonhosted.org/packages/45/7d/c4f36898f19c728d091cdfdf960c9488e8d82bbe2e49ba13c05f43907a5d/ast_serialize-0.11.2-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:89499a439955931281986e97ca4dd3c064bf0d2e0027c0017344eb86667733a1", size = 897204, upload-time = "2026-09-13T18:48:23.695Z" }, + { url = "https://files.pythonhosted.org/packages/b1/54/f67120006fc73a55b6d057d4662d061fbb4eceafce3047c76ca8b382eb11/ast_serialize-0.11.2-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:daadf1c3e0224621607ffe16f1379e4bd372271ed2e1db8a67878f0bab3ef7e4", size = 1240734, upload-time = "2026-09-13T18:48:25.287Z" }, + { url = "https://files.pythonhosted.org/packages/9a/7e/8f2ab68bddbe58a66fbbaad87beeae3e7d7edddb17263d1fc423936cf34d/ast_serialize-0.11.2-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:1844ed9a487fb3de7325c52ddb33f2918b66b65cd54d3f8d83d23785ffe99fa4", size = 1228053, upload-time = "2026-09-13T18:48:26.788Z" }, + { url = "https://files.pythonhosted.org/packages/d2/1b/8a69ab68f4c1603819f0481d756abdd8caf27cec7f1d77caa71007ebe997/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b17869f4ba261a5fa468a753328a548f4dbaf74b4eadae9e28aff66df7f1425b", size = 1292542, upload-time = "2026-09-13T18:48:28.295Z" }, + { url = "https://files.pythonhosted.org/packages/d1/ce/872f2e00f0467c289e483f0a34543463347243a2d0632748d89fcee5e0dc/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:feb16d9c2a720e0120c58dd5d6e7b3c7c86b43249b60a3bc212bcb8fa031e2dd", size = 1294791, upload-time = "2026-09-13T18:48:29.969Z" }, + { url = "https://files.pythonhosted.org/packages/3a/82/36277c12af861c64b375c316135d8feffe3f400568463a8d2b2de4c2c4fb/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3109fe4805384effc8d0f8e41fbf875aa8f389af91b4348c1cfb60ea6e4cb82", size = 1567583, upload-time = "2026-09-13T18:48:31.85Z" }, + { url = "https://files.pythonhosted.org/packages/b0/d7/ec643df91cea8bcbcb4e8011d6a8b08e5119b84f9554879f3e3c786d29d1/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:abdb3e49ba053c3486ac1263bee9f16cc9a4a8abd9f8c90bfc21e3669f3ad9d1", size = 1312878, upload-time = "2026-09-13T18:48:33.495Z" }, + { url = "https://files.pythonhosted.org/packages/04/6f/4c992cd7841ba589fefb14ddc9aff2f6db7f2a615d4074f9ad04115b5ce0/ast_serialize-0.11.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7004ba572f09be34342ccb98dcd4bad5707d3d81adc8cb4c3f685d2a2c51bbc", size = 1312642, upload-time = "2026-09-13T18:48:35.294Z" }, + { url = "https://files.pythonhosted.org/packages/d5/e3/22aaa209c231a83cfea004fd67dee7a7a54da3f169c6c460b14b96887385/ast_serialize-0.11.2-cp39-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:59c25f47524efa052971b860e128b1add0c94ede7dd16b2962952c85c3582365", size = 1319776, upload-time = "2026-09-13T18:48:36.866Z" }, + { url = "https://files.pythonhosted.org/packages/c1/f7/d4685fb54d10108ce44d3bc893ef670854d61645d47ed96d73524db90c23/ast_serialize-0.11.2-cp39-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f3a367e0e05ed2d1b747ceb07aa728a8c204cc008b589127e9bd4f40053d7575", size = 1365324, upload-time = "2026-09-13T18:48:38.412Z" }, + { url = "https://files.pythonhosted.org/packages/42/3a/250643ffad02bda520c50a9a5f02a5d43259a06f34ce393c91761d134d7e/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:00bbf1f6669f813b48925b759f7ae4591067d456d443924055cab386e7e0a719", size = 1467653, upload-time = "2026-09-13T18:48:40.348Z" }, + { url = "https://files.pythonhosted.org/packages/c7/da/af66a646b9b7f8fdec95ce83fc7b1fe538b06864bc79bd554ac4fae2e6ea/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:ec1c20f89c3e0d83576e3c06f79375ce936266591fe0d5fd969914af3185cbaa", size = 1571914, upload-time = "2026-09-13T18:48:41.968Z" }, + { url = "https://files.pythonhosted.org/packages/34/82/77a9714564b9e8800087a8afec41527c65c39e49282baae2ac847b9c1c6a/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_i686.whl", hash = "sha256:c58bb119b73657fdc5569692f316e1e25ca114bd62f7782eb527c6be438ba3a9", size = 1569862, upload-time = "2026-09-13T18:48:43.701Z" }, + { url = "https://files.pythonhosted.org/packages/65/06/fa77b52f46b9bd6dcd8ff2b880e3781f8c1a316bb1342bc3de92907c6f96/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_ppc64le.whl", hash = "sha256:f739e0b601be7300c5697a2573d9200bd1db74b34ab111ef9537b9d5dcd7f106", size = 1699020, upload-time = "2026-09-13T18:48:45.261Z" }, + { url = "https://files.pythonhosted.org/packages/e1/09/239c83153c7e0798e5867d6909cb06f53dccfef02f6999c8e2e21ecb98c3/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_riscv64.whl", hash = "sha256:cae5addfbb54cc1d47fe947ef9138e9d83849ed1cbc72b819cf36d96a2315b07", size = 1492869, upload-time = "2026-09-13T18:48:46.922Z" }, + { url = "https://files.pythonhosted.org/packages/2f/eb/6108fb9a43fc7ab5529856e38e33c6e3e064fbfe375fdcbb208c7cd5438d/ast_serialize-0.11.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2fa3be25f7f5351b1b39c9f8a52779b2dbf21199efbae564b4746422e8edca4e", size = 1511621, upload-time = "2026-09-13T18:48:48.667Z" }, +] + [[package]] name = "async-timeout" version = "5.0.1" @@ -220,7 +278,7 @@ wheels = [ [[package]] name = "autobahn" -version = "25.12.2" +version = "26.7.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cbor2" }, @@ -228,24 +286,35 @@ dependencies = [ { name = "cryptography" }, { name = "hyperlink" }, { name = "msgpack", marker = "platform_python_implementation == 'CPython'" }, - { name = "py-ubjson" }, { name = "txaio" }, { name = "u-msgpack-python", marker = "platform_python_implementation != 'CPython'" }, { name = "ujson" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/54/d5/9adf0f5b9eb244e58e898e9f3db4b00c09835ef4b6c37d491886e0376b4f/autobahn-25.12.2.tar.gz", hash = "sha256:754c06a54753aeb7e8d10c5cbf03249ad9e2a1a32bca8be02865c6f00628a98c", size = 13893652, upload-time = "2025-12-15T11:13:19.086Z" } +sdist = { url = "https://files.pythonhosted.org/packages/de/73/f109f563c27e048e45d135d81af19e6ca391e24905550b06bd1c9d674c57/autobahn-26.7.1.tar.gz", hash = "sha256:c6949a2c6eb95fb1c218837dbda0a59abbbebafb8b11098551c01a7061dfd245", size = 14056542, upload-time = "2026-07-15T19:14:01.246Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ae/23/923e4f11dc9d12b9f5a014f36d591c479d623d54dda3bdcbd688cd12f052/autobahn-25.12.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:16df879672c60f1f3fe452138c80f0fd221b3cb2ee5a14390c80f33b994104c1", size = 2053413, upload-time = "2025-12-15T11:12:58.167Z" }, - { url = "https://files.pythonhosted.org/packages/b3/0d/3d39637a1e32f555ce5fabec4a723a035556ef918b14140faea05e7de902/autobahn-25.12.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ffe28048ef96eb0f925f24c2569bd72332e120f4cb31cd6c40dd66718a5f85e", size = 2224850, upload-time = "2025-12-15T11:13:00.089Z" }, - { url = "https://files.pythonhosted.org/packages/64/8d/36452c06cbcad6d04587aeb87dfa987ef94be4a427b9f2155783d166bd97/autobahn-25.12.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:220748f21e91bd4a538d2d3de640cc17ee30b79f1c04a6c3dcdef321d531ee1c", size = 2225453, upload-time = "2025-12-15T11:13:02.865Z" }, - { url = "https://files.pythonhosted.org/packages/83/30/ef9c47038e4e9257319d6e1b87668b3df360a0c488d66ccff9d11aaff6ba/autobahn-25.12.2-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:bc17f6cab9438156d2701c293c76fd02a144f9be0a992c065dfee1935ce4845b", size = 1960447, upload-time = "2025-12-15T11:13:05.007Z" }, - { url = "https://files.pythonhosted.org/packages/e2/e4/f3d5cb70bc0b9b5523d940734b2e0a251510d051a50d2e723f321e890859/autobahn-25.12.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5297a782fc7d0a26842438ef1342549ceee29496cda52672ac44635c79eeb94", size = 2053955, upload-time = "2025-12-15T11:13:06.052Z" }, - { url = "https://files.pythonhosted.org/packages/ea/49/4e592a19ae58fd9c796821a882b22598fac295ede50f899cc9d14a0282b6/autobahn-25.12.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c0c3f1d5dafda52f8dc962ab583b6f3473b7b7186cab082d05372ed43a8261a5", size = 2225441, upload-time = "2025-12-15T11:13:07.527Z" }, - { url = "https://files.pythonhosted.org/packages/54/b7/0a0e3ecb2af7e452f5f359d19bdc647cbc8658f3f498bfa3bf8545cf4768/autobahn-25.12.2-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:c840ee136bfaf6560467160129b0b25a0e33c9a51e2b251e98c5474f27583915", size = 1960463, upload-time = "2025-12-15T11:13:10.183Z" }, - { url = "https://files.pythonhosted.org/packages/19/8b/4215ac49d6b793b592fb08698f3a0e21a59eb3520be7f7ed288fcb52d919/autobahn-25.12.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9abda5cf817c0f8a19a55a67a031adf2fc70ed351719b5bd9e6fa0f5f4bc8f89", size = 2225590, upload-time = "2025-12-15T11:13:11.367Z" }, - { url = "https://files.pythonhosted.org/packages/d6/99/b4a3da42471d3ec36e2dca0c1a5368a079fed9f73b159ce3f049c4a4983b/autobahn-25.12.2-pp311-pypy311_pp73-macosx_15_0_arm64.whl", hash = "sha256:0c226329ddec154c6f3b491ea3e4713035f0326c96ebfd6b305bf90f27a2fba1", size = 1955357, upload-time = "2025-12-15T11:13:13.581Z" }, - { url = "https://files.pythonhosted.org/packages/89/81/67f19dd7395a9f1123a1f071314f8d1c4879c1869adeb8d99a236e756ac0/autobahn-25.12.2-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5f079393a7626eb448c8accf21151f5f206d02f8e9cee4313d62a5ca30a3aaed", size = 623173, upload-time = "2025-12-15T11:13:14.945Z" }, - { url = "https://files.pythonhosted.org/packages/71/eb/857eab3d25e3b9cc9e7e741d6193808ad91de0befb38cf10658bd339c205/autobahn-25.12.2-pp311-pypy311_pp73-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9b3a6c7d54a9f0434a435d88b86555510e5d0a84aa87042e292f29f707cab237", size = 2178008, upload-time = "2025-12-15T11:13:15.881Z" }, + { url = "https://files.pythonhosted.org/packages/44/8c/381cdcab8016df2177adc93d25f84ca3a5fb8f8be4f9d784336416c7bee8/autobahn-26.7.1-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:3fe80550707f0affb5cb10f3e0f66ec7e6e52abb29edc66dd76734c2d7d51bf4", size = 1997747, upload-time = "2026-07-15T19:13:21.998Z" }, + { url = "https://files.pythonhosted.org/packages/79/a9/9293c6c6bc8970f42c9675942de78f306e18eafa47edba52fd27f9dc71bd/autobahn-26.7.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:00fb9acd8775eaa0e272f36b76db903f10de56478f6a72f0bd07ee882ae1f2b8", size = 2082284, upload-time = "2026-07-15T19:13:23.582Z" }, + { url = "https://files.pythonhosted.org/packages/a9/ba/7396cb42a9c59df20c350ea05f75e6f25f582b474dee82b8e32823b2711e/autobahn-26.7.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:97c9674eddd55ad3ebd733824789175e5fb90c88afd523de507569ba0fcd6853", size = 2254260, upload-time = "2026-07-15T19:13:24.894Z" }, + { url = "https://files.pythonhosted.org/packages/b7/64/19753442770662ff45c4fe48db6345ac6fa3100fbbd989241c074e38ea6f/autobahn-26.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:30fa714de5c9903ef64084d3a938d8a3bac0bb42f1532d5de22f34b04a1c4819", size = 3173653, upload-time = "2026-07-15T19:13:26.261Z" }, + { url = "https://files.pythonhosted.org/packages/04/a4/b690f272427acf1e8ea03b146e559dc67ade10dd4e0cccacc1d4c011b141/autobahn-26.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c3362197f3b9d5b0df7f3365bd00dedba7ee8b649d652941377abe690d1c8b14", size = 3402880, upload-time = "2026-07-15T19:13:27.683Z" }, + { url = "https://files.pythonhosted.org/packages/6e/23/0769ef39e1cfb0bec15bacdd7f407aaedfda14c0ca3f7e818b856f2ed1a1/autobahn-26.7.1-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:6c9013e9aa9ea8a561c89d7be2709546b51fc7ac8fdf6cd71bc12a634672d9a8", size = 2000605, upload-time = "2026-07-15T19:13:30.391Z" }, + { url = "https://files.pythonhosted.org/packages/f9/ef/26833f38ecf3aef3ff0aa09feb12f5d472f7370104148a6b78e3c7afc286/autobahn-26.7.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:abd9ebe577dd1030f9a0c41d20dc00eca90d5cf338531abcb510d978825feeea", size = 2082844, upload-time = "2026-07-15T19:13:31.559Z" }, + { url = "https://files.pythonhosted.org/packages/b2/4c/00553ee9d57ee11df47bc9867d120cfe721a73bec0b58fb3a3b91cd7c797/autobahn-26.7.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de491baa4cf52fb6d7f542e445c72d94ce52dc7aabb47b0b4d5191e452dd2c74", size = 2254852, upload-time = "2026-07-15T19:13:32.8Z" }, + { url = "https://files.pythonhosted.org/packages/c3/ca/7884f6ffb8410882df98cb939dea24225dd79e4f091ceb59f4b826e54f2f/autobahn-26.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9723561c820ed032fe5a8f1530cb6d5f91dc595eea6009f3b2de7044a3df892a", size = 3174235, upload-time = "2026-07-15T19:13:34.134Z" }, + { url = "https://files.pythonhosted.org/packages/1f/e7/c6704e8f6bef3aa552a851a34908a06d91317d35ca55ec04b5db14385c33/autobahn-26.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e81c86cf41adca8a56ca5621ecd9ba40037f6d90d338c334bd529c8ac94bd7b6", size = 3403687, upload-time = "2026-07-15T19:13:35.633Z" }, + { url = "https://files.pythonhosted.org/packages/36/92/2f6e57d9f9e6b86b9db362f58aaa6cfeadc2f3a6901ec95aab27ef232b5c/autobahn-26.7.1-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:2ce48214b28f73338fabe0c7fd13d222cfab9e1dd2ef11660293522f64e76727", size = 1987052, upload-time = "2026-07-15T19:13:38.543Z" }, + { url = "https://files.pythonhosted.org/packages/38/6d/f170134468e276fa9ea57eb1ae41f9cc0dcd0228e9d501f370fa50c0ee31/autobahn-26.7.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a5f285dce9b3dff3eb2ef6c818ac8ede24d96bd1edac340855170fc9825c38a9", size = 2082813, upload-time = "2026-07-15T19:13:39.686Z" }, + { url = "https://files.pythonhosted.org/packages/0d/ce/b735fa933e9ba4fa8c3f9aa9ae68b4e2d4aadb0a92b38ade30e37a7d4795/autobahn-26.7.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:66ab6e034e54f8c473df1a6b8031a3db46c16deebaf0c9b66db3e9137d2fab5e", size = 2254818, upload-time = "2026-07-15T19:13:40.951Z" }, + { url = "https://files.pythonhosted.org/packages/df/3e/57855f4f52aa0ee64c6d8210637d0d9847de4c1082e03ddd2ffafd853d2d/autobahn-26.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:20b3eab7d483e93278f9d7345592eb6b465883a6e88c2823aad13c3f943452db", size = 682494, upload-time = "2026-07-15T19:13:42.193Z" }, + { url = "https://files.pythonhosted.org/packages/3b/3c/3944f17dd2a06aee7d0d9f1c37b5a94518434d13ba2c38e738d33ca10daf/autobahn-26.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cd840524ff190aee695a58e8acd8740ee66b4a0e6a58ccb41416ed2cbe48d43f", size = 3403666, upload-time = "2026-07-15T19:13:43.508Z" }, + { url = "https://files.pythonhosted.org/packages/51/3e/200471878093a502f8e8078c1ca19fd82acc68ae9ac363e395170da6dbe2/autobahn-26.7.1-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:f3d1be925e3fb33fff5280c1bd02027047519812c400d3efa5477d3968686c94", size = 1987070, upload-time = "2026-07-15T19:13:47.112Z" }, + { url = "https://files.pythonhosted.org/packages/61/d1/704f881fd2c52b056dc0f14e6d0d640b1f3ff43f3b84cf85d3631e3243f4/autobahn-26.7.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:44f8094b0c0fa29a4963ce12130b7932469f89afa0242ff858d2b26541a81005", size = 2082939, upload-time = "2026-07-15T19:13:48.569Z" }, + { url = "https://files.pythonhosted.org/packages/a8/27/84e76aec7abbcb502d4cd34ef5c859eaa19a3b707cda68ab7ce68478dd92/autobahn-26.7.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0fcf9c3ff6b9b2bc85d6e1814a94d1d941d62f7df36d350b523d77df85d66ea", size = 2254983, upload-time = "2026-07-15T19:13:49.802Z" }, + { url = "https://files.pythonhosted.org/packages/e6/81/a810732a10342c5d6b90d19f83fa2bc9b6126e7c0cda7c4df867e311aa2e/autobahn-26.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4f82e5a113f6c1ff14cec99aa411f7da8fceec3dcd4647d7ebdfc0278811e14d", size = 3174295, upload-time = "2026-07-15T19:13:51.227Z" }, + { url = "https://files.pythonhosted.org/packages/a6/c6/4886fdaecfeda013e085288a9d83bad6f1ded9995b8088ca933d9ec37201/autobahn-26.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:919309cbe41b28b0a3028e7c6fed52aca9fd21639619f372d3270c44341b6bdc", size = 3403713, upload-time = "2026-07-15T19:13:52.744Z" }, + { url = "https://files.pythonhosted.org/packages/94/14/6485c29ad06a6bd7b3017558f99f6f89dcaa6ef6641930b25d9247adba4c/autobahn-26.7.1-pp311-pypy311_pp73-macosx_15_0_arm64.whl", hash = "sha256:9088acf790caf8cfd86590cb2b749279256ee210198f41d9858a38d1346e56c9", size = 1981962, upload-time = "2026-07-15T19:13:55.79Z" }, + { url = "https://files.pythonhosted.org/packages/8d/46/cb6d09604417beacdf485b414a05efa18511b0e78ac5451b3655bee711fa/autobahn-26.7.1-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ea4548ee15c6bdf8aa0a1e81bf47b42db350f2bef69f83bace27a95ed0d21276", size = 655967, upload-time = "2026-07-15T19:13:57.19Z" }, + { url = "https://files.pythonhosted.org/packages/00/d9/b846bc5a37f25ac147879d6451c466968a54efbf9d0467f0732f37c6f3f3/autobahn-26.7.1-pp311-pypy311_pp73-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4ee0fe13a5218831d60863becd8c3cf6558e6c5ccc5d9d0e722012bdb1459bf", size = 2207401, upload-time = "2026-07-15T19:13:58.392Z" }, ] [[package]] @@ -319,18 +388,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/87/8bab77b323f16d67be364031220069f79159117dd5e43eeb4be2fef1ac9b/billiard-4.2.4-py3-none-any.whl", hash = "sha256:525b42bdec68d2b983347ac312f892db930858495db601b5836ac24e6477cde5", size = 87070, upload-time = "2025-11-30T13:28:47.016Z" }, ] -[[package]] -name = "bleach" -version = "6.4.0" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "webencodings" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/48/3c/e12ac860709702bd5ebeb9b56a4fe334f1001246ee1b8f2b7ee28912df7d/bleach-6.4.0.tar.gz", hash = "sha256:4202482733d85cedd04e59fcb2f89f4e4c7c385a78d3c3c23c30446843a37452", size = 204857, upload-time = "2026-06-05T13:01:13.734Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/58/9d/40b6267367182187139a4000b82a3b287d84d745bccd808e75d916920e9d/bleach-6.4.0-py3-none-any.whl", hash = "sha256:4b6b6a54fff2e69a3dde9d21cc6301220bee3c3cb792187d11403fd795031081", size = 165109, upload-time = "2026-06-05T13:01:12.504Z" }, -] - [[package]] name = "brotli" version = "1.2.0" @@ -884,15 +941,15 @@ wheels = [ [[package]] name = "django" -version = "5.2.16" +version = "5.2.17" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "asgiref" }, { name = "sqlparse" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a9/26/889449d521ae508b26de715954faecd8bcf3f740affb81b2d146a83b42a5/django-5.2.16.tar.gz", hash = "sha256:59ea02020c3136fce14bef0bbece21a10a4febef5eed1c51c22ae468efa22200", size = 10890894, upload-time = "2026-07-07T13:52:17.005Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d5/d8/43e9d000519adceb189620b6869ff88031e046df91c2e9da72f8f6918399/django-5.2.17.tar.gz", hash = "sha256:9d4d93be539a18ab80d058eb515900e10951e04c537c5a6b394fc49528d3251f", size = 10889740, upload-time = "2026-08-04T15:04:03.173Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4e/13/1e5e3e4c15dcecb04281b3cb2a46a4670e1cef131068e202f6040df19224/django-5.2.16-py3-none-any.whl", hash = "sha256:04f354bf9d807a86ad1a8392fe3808d362358a8eafc322848e0e43e59b24371d", size = 8311943, upload-time = "2026-07-07T13:52:11.223Z" }, + { url = "https://files.pythonhosted.org/packages/df/f8/ce120525ca78f12b07daf65786679c5d0b54a75285a8958d3ae55e39da35/django-5.2.17-py3-none-any.whl", hash = "sha256:f04fb3b36ee119e1af4fa1d397d5fd6cf12700f49321e84d4f4c642c5b1973db", size = 8315563, upload-time = "2026-08-04T15:03:59.1Z" }, ] [[package]] @@ -985,14 +1042,14 @@ wheels = [ [[package]] name = "django-filter" -version = "25.2" +version = "26.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/2c/e4/465d2699cd388c0005fb8d6ae6709f239917c6d8790ac35719676fffdcf3/django_filter-25.2.tar.gz", hash = "sha256:760e984a931f4468d096f5541787efb8998c61217b73006163bf2f9523fe8f23", size = 143818, upload-time = "2025-10-05T09:51:31.521Z" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/3e/563965173d4cbb5fc308087e7b3d11a115b7b67273d093622480b1e31f78/django_filter-26.1.tar.gz", hash = "sha256:66ea04031b068c77c86e1ac26ced7a3f8f13ce797f5795751707e3deefc58054", size = 144299, upload-time = "2026-07-11T09:27:02.767Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c1/40/6a02495c5658beb1f31eb09952d8aa12ef3c2a66342331ce3a35f7132439/django_filter-25.2-py3-none-any.whl", hash = "sha256:9c0f8609057309bba611062fe1b720b4a873652541192d232dd28970383633e3", size = 94145, upload-time = "2025-10-05T09:51:29.728Z" }, + { url = "https://files.pythonhosted.org/packages/1f/01/afffed1e3c4540fb75bf550a18b6176a9f6371b5f3e52b69a28995b6480c/django_filter-26.1-py3-none-any.whl", hash = "sha256:7d98ef2899218e6242619b532cb1b95af14e09dfcf74844aecb550ad27b59ff2", size = 94069, upload-time = "2026-07-11T09:27:01.012Z" }, ] [[package]] @@ -1012,15 +1069,15 @@ wheels = [ [[package]] name = "django-guardian" -version = "3.4.1" +version = "3.5.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/19/98/eab90a90354d8aa72a38d8d3e631b3598ce2fe7c562687ce0f2fe72423c2/django_guardian-3.4.1.tar.gz", hash = "sha256:af5b400f092f1c3ae378797bd8da5102ff3419415fd94ac55f7199a98b932ef1", size = 112590, upload-time = "2026-09-02T15:20:27.693Z" } +sdist = { url = "https://files.pythonhosted.org/packages/63/36/0d3eb841f9d6404fc74fdbc3b4d74b9217a0fcede406ab26cc9840506bf5/django_guardian-3.5.0.tar.gz", hash = "sha256:d80b8ab86c28f92adef816996f4341fbea6790aa1f09006c5afc1ef0ea394871", size = 115602, upload-time = "2026-09-12T18:03:27.082Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/51/6e/4662a9e8aeba8d7df891f757254d29c9a9414bfe87ef3dcf04cfd7ef9e8d/django_guardian-3.4.1-py3-none-any.whl", hash = "sha256:53b019156a6ab064b75f1fca57576fbdbfb756d89596a3ce1eaeee08491b05d6", size = 148966, upload-time = "2026-09-02T15:20:26.167Z" }, + { url = "https://files.pythonhosted.org/packages/89/c7/57463fa92db5d472d5be9209b255c901f7e64e4631ebf16818cb04ad0ac4/django_guardian-3.5.0-py3-none-any.whl", hash = "sha256:926eb17caf4991d467fd75d412a3040857bc4e111fc70bfe42e1c021826727e4", size = 151912, upload-time = "2026-09-12T18:03:25.045Z" }, ] [[package]] @@ -1062,7 +1119,7 @@ wheels = [ [[package]] name = "django-stubs" -version = "6.0.2" +version = "6.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, @@ -1070,9 +1127,9 @@ dependencies = [ { name = "types-pyyaml" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/03/b2/f0214d86180f937c8e3358ff831b20f0634d95bd77436b18861c647e15bc/django_stubs-6.0.2.tar.gz", hash = "sha256:56d43b5e3741563af0063e5b6283f908c625b0439aa06314268673699d1bdccd", size = 274742, upload-time = "2026-04-01T08:27:35.092Z" } +sdist = { url = "https://files.pythonhosted.org/packages/2b/d6/fb467f5f769b831680d8cb6705e4bbec335c79b328ff7e347e220e676da8/django_stubs-6.1.1.tar.gz", hash = "sha256:291fd79197416d191ec9f4e443bc6800b64dd5d41e476b91e679495d005f3d61", size = 295523, upload-time = "2026-09-14T08:46:24.686Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/49/e7/8f2aaa22eac7fa18db3aca0e7b651ccf5ac79a2021bf67e75a16934a7076/django_stubs-6.0.2-py3-none-any.whl", hash = "sha256:c3bc84d80421758f3b2ad9e1358e001d719388a8eb106e67c873e606216108d4", size = 538234, upload-time = "2026-04-01T08:27:33.411Z" }, + { url = "https://files.pythonhosted.org/packages/9d/26/911e381b1cee7fbb7f11f640ec4be4ec1b6ae49dc58ff2cb829cf12dc4b9/django_stubs-6.1.1-py3-none-any.whl", hash = "sha256:a913d0c35242cd820f638486118fd542d687b6a85104bea9cb7e635b52b889e3", size = 559401, upload-time = "2026-09-14T08:46:23.153Z" }, ] [package.optional-dependencies] @@ -1082,15 +1139,15 @@ compatible-mypy = [ [[package]] name = "django-stubs-ext" -version = "6.0.2" +version = "6.1.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/52/e0/f2e6caf627d176a51fba1ca9c34082c7ea10d3f521ff2c828532ca99fa91/django_stubs_ext-6.0.2.tar.gz", hash = "sha256:70b7b7ae837e7a6036e2facb64435550bf7cf8143c1a6e802864d4824ce6058c", size = 6751, upload-time = "2026-04-01T08:27:01.987Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/70/5f80a3acf99d26dea89e892d4573f0e650904e573708b5fbf3bfc9cec72c/django_stubs_ext-6.1.1.tar.gz", hash = "sha256:c35263135558d4c5d12b69e1f4c98632bf59bc3ab5118f7d4882d12800e3a7dd", size = 7217, upload-time = "2026-09-14T08:45:52.44Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2b/d2/9cb93cd1ef94ddc97c26c902ff75a859f5f154051fec98cf8242649b26ce/django_stubs_ext-6.0.2-py3-none-any.whl", hash = "sha256:b35bdec1995bf49765cc39fa89aa7c23f120a23d0cb0152ab7fb4e48ff7d667b", size = 10446, upload-time = "2026-04-01T08:27:00.847Z" }, + { url = "https://files.pythonhosted.org/packages/99/c3/305a9f7611c0dc96d2a638bc3a67bdcde5a7faa5f4669188db018b8af6fc/django_stubs_ext-6.1.1-py3-none-any.whl", hash = "sha256:64aebb7ce2c327a4a2b75207d67034e879fd7edf027c93487be69da363dc79fa", size = 10853, upload-time = "2026-09-14T08:45:51.289Z" }, ] [[package]] @@ -1116,16 +1173,16 @@ wheels = [ [[package]] name = "djangorestframework-stubs" -version = "3.16.9" +version = "3.18.1" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "django-stubs" }, { name = "types-pyyaml" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/30/84/fa0e31f763ee35152a418c2a456efdd8047a9da0f5909110147b70382191/djangorestframework_stubs-3.16.9.tar.gz", hash = "sha256:b1abb97490c90c85eabcd09b8ecbadae1b9360f21ad3021abf830227c0129697", size = 32798, upload-time = "2026-03-31T22:40:23.626Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6b/71/a7727b07e0433da02fb1ea22994f492ecb437a1fe7be5bf952dbb545a0f5/djangorestframework_stubs-3.18.1.tar.gz", hash = "sha256:65ed4a9ea094616759a2cba4fe0ad85efe25b471b28281b790bfefb46704c64a", size = 32439, upload-time = "2026-08-25T22:49:27.506Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/5a/be/e53e3b89eaa30c21e036ae4d2ee88a92ef8cb43678400901748ddad870c5/djangorestframework_stubs-3.16.9-py3-none-any.whl", hash = "sha256:27b3e245d5f9c22ff6988d9e54388249f98f88608cc2b365b71e9f39dd096958", size = 57239, upload-time = "2026-03-31T22:40:22.314Z" }, + { url = "https://files.pythonhosted.org/packages/f7/1c/e266828fe2b78484651667976f8539e47b4e511a266424b890f613c6b7ad/djangorestframework_stubs-3.18.1-py3-none-any.whl", hash = "sha256:a2021f45f7759b493504c2a721f112ec4fd677753590c1ba346f4ebfb49a7f03", size = 55685, upload-time = "2026-08-25T22:49:26.178Z" }, ] [package.optional-dependencies] @@ -1194,11 +1251,11 @@ wheels = [ [[package]] name = "faker" -version = "40.38.0" +version = "40.39.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f2/55/baeae0ecb04ef56c92d6ac1ef7b3b965af0502ac9863fc85db7afc0884fd/faker-40.38.0.tar.gz", hash = "sha256:72e421098664edf38478f4269a5d5a539337de5da18883ce67cb1e6bb96b0b3a", size = 2029190, upload-time = "2026-09-01T19:19:46.958Z" } +sdist = { url = "https://files.pythonhosted.org/packages/6d/62/fea935af7a312f073c99d470b05a7c96650ee8d9562ce82e8cb7ee4c1247/faker-40.39.0.tar.gz", hash = "sha256:52799ad96fcf92aab2fc96a9e03869bbf1a634300f7cd91c38dbfd51f639f6fa", size = 2029463, upload-time = "2026-09-14T16:50:17.939Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f1/b8/48cb8733de8448023983f64e81d7f731ce1459c21e93b9b29657e5c48cab/faker-40.38.0-py3-none-any.whl", hash = "sha256:69927515d61759c8a257540b8a91891cd622ba1c24a386b62a0a777e44ba46a9", size = 2065931, upload-time = "2026-09-01T19:19:45.234Z" }, + { url = "https://files.pythonhosted.org/packages/45/c8/901282279841ebb59216433be01aac825fb905e1a597de3b7b5ab8b0c43e/faker-40.39.0-py3-none-any.whl", hash = "sha256:c4c7ec2cddfaf602c5a8a2c960614946aa8c161250bd9d49a8846cd24d1ef028", size = 2066232, upload-time = "2026-09-14T16:50:16.061Z" }, ] [[package]] @@ -1233,7 +1290,7 @@ wheels = [ [[package]] name = "flower" -version = "2.1.0" +version = "2.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "celery" }, @@ -1242,9 +1299,9 @@ dependencies = [ { name = "pytz" }, { name = "tornado" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/fd/9f/e3061a153ba1928a96cf1a431449411ff4a9411465d1554fdcd0feb8d239/flower-2.1.0.tar.gz", hash = "sha256:ece79fd190bfd198947e30470c4b26a6d5df1861d54309430dd926ed516302ff", size = 3486971, upload-time = "2026-08-16T07:36:18.882Z" } +sdist = { url = "https://files.pythonhosted.org/packages/a6/f9/3474dea8439722ff59804caba62532d08f147a2ffdf8cd8c8773e4b43faa/flower-2.2.0.tar.gz", hash = "sha256:c4f4751942ff8b5069e6604a136e073b860971b7658859bdc61da1dc17a4bb32", size = 1109093, upload-time = "2026-09-22T14:15:03.703Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/67/87/cd70fe77cb5ad4a79eaebe7d86d15efd8b1d950f8d0ab99470a4fd21c9a8/flower-2.1.0-py2.py3-none-any.whl", hash = "sha256:2f433aaee3efeba5b844b2ab7371f16058d892de76156b77e6d09de03a4095bc", size = 404618, upload-time = "2026-08-16T07:36:16.627Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b6/650f730380002b78bcb488c0df96477dbdc57470731682587d6bc4951abf/flower-2.2.0-py2.py3-none-any.whl", hash = "sha256:374cbdd92282576ffab66b0da3c3038a2ba1ec34b343b8197dca2e85ce4209f1", size = 407554, upload-time = "2026-09-22T14:15:01.656Z" }, ] [[package]] @@ -2056,65 +2113,102 @@ sdist = { url = "https://files.pythonhosted.org/packages/0e/72/a3add0e4eec4eb9e2 [[package]] name = "librt" -version = "0.8.1" +version = "0.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/56/9c/b4b0c54d84da4a94b37bd44151e46d5e583c9534c7e02250b961b1b6d8a8/librt-0.8.1.tar.gz", hash = "sha256:be46a14693955b3bd96014ccbdb8339ee8c9346fbe11c1b78901b55125f14c73", size = 177471, upload-time = "2026-02-17T16:13:06.101Z" } +sdist = { url = "https://files.pythonhosted.org/packages/36/9b/356320fbae2ac8467e21c5e73e1389c80468e4998c62cc7d3536cc51b614/librt-0.15.0.tar.gz", hash = "sha256:4e66cbe84437497d951b799d3e1551291b6fb3d643820a7014b3655d57a59162", size = 214338, upload-time = "2026-08-07T10:49:42.663Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1d/01/0e748af5e4fee180cf7cd12bd12b0513ad23b045dccb2a83191bde82d168/librt-0.8.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:681dc2451d6d846794a828c16c22dc452d924e9f700a485b7ecb887a30aad1fd", size = 65315, upload-time = "2026-02-17T16:11:25.152Z" }, - { url = "https://files.pythonhosted.org/packages/9d/4d/7184806efda571887c798d573ca4134c80ac8642dcdd32f12c31b939c595/librt-0.8.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a3b4350b13cc0e6f5bec8fa7caf29a8fb8cdc051a3bae45cfbfd7ce64f009965", size = 68021, upload-time = "2026-02-17T16:11:26.129Z" }, - { url = "https://files.pythonhosted.org/packages/ae/88/c3c52d2a5d5101f28d3dc89298444626e7874aa904eed498464c2af17627/librt-0.8.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:ac1e7817fd0ed3d14fd7c5df91daed84c48e4c2a11ee99c0547f9f62fdae13da", size = 194500, upload-time = "2026-02-17T16:11:27.177Z" }, - { url = "https://files.pythonhosted.org/packages/d6/5d/6fb0a25b6a8906e85b2c3b87bee1d6ed31510be7605b06772f9374ca5cb3/librt-0.8.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:747328be0c5b7075cde86a0e09d7a9196029800ba75a1689332348e998fb85c0", size = 205622, upload-time = "2026-02-17T16:11:28.242Z" }, - { url = "https://files.pythonhosted.org/packages/b2/a6/8006ae81227105476a45691f5831499e4d936b1c049b0c1feb17c11b02d1/librt-0.8.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0af2bd2bc204fa27f3d6711d0f360e6b8c684a035206257a81673ab924aa11e", size = 218304, upload-time = "2026-02-17T16:11:29.344Z" }, - { url = "https://files.pythonhosted.org/packages/ee/19/60e07886ad16670aae57ef44dada41912c90906a6fe9f2b9abac21374748/librt-0.8.1-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d480de377f5b687b6b1bc0c0407426da556e2a757633cc7e4d2e1a057aa688f3", size = 211493, upload-time = "2026-02-17T16:11:30.445Z" }, - { url = "https://files.pythonhosted.org/packages/9c/cf/f666c89d0e861d05600438213feeb818c7514d3315bae3648b1fc145d2b6/librt-0.8.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d0ee06b5b5291f609ddb37b9750985b27bc567791bc87c76a569b3feed8481ac", size = 219129, upload-time = "2026-02-17T16:11:32.021Z" }, - { url = "https://files.pythonhosted.org/packages/8f/ef/f1bea01e40b4a879364c031476c82a0dc69ce068daad67ab96302fed2d45/librt-0.8.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9e2c6f77b9ad48ce5603b83b7da9ee3e36b3ab425353f695cba13200c5d96596", size = 213113, upload-time = "2026-02-17T16:11:33.192Z" }, - { url = "https://files.pythonhosted.org/packages/9b/80/cdab544370cc6bc1b72ea369525f547a59e6938ef6863a11ab3cd24759af/librt-0.8.1-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:439352ba9373f11cb8e1933da194dcc6206daf779ff8df0ed69c5e39113e6a99", size = 212269, upload-time = "2026-02-17T16:11:34.373Z" }, - { url = "https://files.pythonhosted.org/packages/9d/9c/48d6ed8dac595654f15eceab2035131c136d1ae9a1e3548e777bb6dbb95d/librt-0.8.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:82210adabbc331dbb65d7868b105185464ef13f56f7f76688565ad79f648b0fe", size = 234673, upload-time = "2026-02-17T16:11:36.063Z" }, - { url = "https://files.pythonhosted.org/packages/95/21/d39b0a87ac52fc98f621fb6f8060efb017a767ebbbac2f99fbcbc9ddc0d7/librt-0.8.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a28f2612ab566b17f3698b0da021ff9960610301607c9a5e8eaca62f5e1c350a", size = 66516, upload-time = "2026-02-17T16:11:41.604Z" }, - { url = "https://files.pythonhosted.org/packages/69/f1/46375e71441c43e8ae335905e069f1c54febee63a146278bcee8782c84fd/librt-0.8.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:60a78b694c9aee2a0f1aaeaa7d101cf713e92e8423a941d2897f4fa37908dab9", size = 68634, upload-time = "2026-02-17T16:11:43.268Z" }, - { url = "https://files.pythonhosted.org/packages/0a/33/c510de7f93bf1fa19e13423a606d8189a02624a800710f6e6a0a0f0784b3/librt-0.8.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:758509ea3f1eba2a57558e7e98f4659d0ea7670bff49673b0dde18a3c7e6c0eb", size = 198941, upload-time = "2026-02-17T16:11:44.28Z" }, - { url = "https://files.pythonhosted.org/packages/dd/36/e725903416409a533d92398e88ce665476f275081d0d7d42f9c4951999e5/librt-0.8.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:039b9f2c506bd0ab0f8725aa5ba339c6f0cd19d3b514b50d134789809c24285d", size = 209991, upload-time = "2026-02-17T16:11:45.462Z" }, - { url = "https://files.pythonhosted.org/packages/30/7a/8d908a152e1875c9f8eac96c97a480df425e657cdb47854b9efaa4998889/librt-0.8.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bb54f1205a3a6ab41a6fd71dfcdcbd278670d3a90ca502a30d9da583105b6f7", size = 224476, upload-time = "2026-02-17T16:11:46.542Z" }, - { url = "https://files.pythonhosted.org/packages/a8/b8/a22c34f2c485b8903a06f3fe3315341fe6876ef3599792344669db98fcff/librt-0.8.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:05bd41cdee35b0c59c259f870f6da532a2c5ca57db95b5f23689fcb5c9e42440", size = 217518, upload-time = "2026-02-17T16:11:47.746Z" }, - { url = "https://files.pythonhosted.org/packages/79/6f/5c6fea00357e4f82ba44f81dbfb027921f1ab10e320d4a64e1c408d035d9/librt-0.8.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adfab487facf03f0d0857b8710cf82d0704a309d8ffc33b03d9302b4c64e91a9", size = 225116, upload-time = "2026-02-17T16:11:49.298Z" }, - { url = "https://files.pythonhosted.org/packages/f2/a0/95ced4e7b1267fe1e2720a111685bcddf0e781f7e9e0ce59d751c44dcfe5/librt-0.8.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:153188fe98a72f206042be10a2c6026139852805215ed9539186312d50a8e972", size = 217751, upload-time = "2026-02-17T16:11:50.49Z" }, - { url = "https://files.pythonhosted.org/packages/93/c2/0517281cb4d4101c27ab59472924e67f55e375bc46bedae94ac6dc6e1902/librt-0.8.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:dd3c41254ee98604b08bd5b3af5bf0a89740d4ee0711de95b65166bf44091921", size = 218378, upload-time = "2026-02-17T16:11:51.783Z" }, - { url = "https://files.pythonhosted.org/packages/43/e8/37b3ac108e8976888e559a7b227d0ceac03c384cfd3e7a1c2ee248dbae79/librt-0.8.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e0d138c7ae532908cbb342162b2611dbd4d90c941cd25ab82084aaf71d2c0bd0", size = 241199, upload-time = "2026-02-17T16:11:53.561Z" }, - { url = "https://files.pythonhosted.org/packages/c5/3c/f614c8e4eaac7cbf2bbdf9528790b21d89e277ee20d57dc6e559c626105f/librt-0.8.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7e6bad1cd94f6764e1e21950542f818a09316645337fd5ab9a7acc45d99a8f35", size = 66529, upload-time = "2026-02-17T16:11:57.809Z" }, - { url = "https://files.pythonhosted.org/packages/ab/96/5836544a45100ae411eda07d29e3d99448e5258b6e9c8059deb92945f5c2/librt-0.8.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cf450f498c30af55551ba4f66b9123b7185362ec8b625a773b3d39aa1a717583", size = 68669, upload-time = "2026-02-17T16:11:58.843Z" }, - { url = "https://files.pythonhosted.org/packages/06/53/f0b992b57af6d5531bf4677d75c44f095f2366a1741fb695ee462ae04b05/librt-0.8.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:eca45e982fa074090057132e30585a7e8674e9e885d402eae85633e9f449ce6c", size = 199279, upload-time = "2026-02-17T16:11:59.862Z" }, - { url = "https://files.pythonhosted.org/packages/f3/ad/4848cc16e268d14280d8168aee4f31cea92bbd2b79ce33d3e166f2b4e4fc/librt-0.8.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c3811485fccfda840861905b8c70bba5ec094e02825598bb9d4ca3936857a04", size = 210288, upload-time = "2026-02-17T16:12:00.954Z" }, - { url = "https://files.pythonhosted.org/packages/52/05/27fdc2e95de26273d83b96742d8d3b7345f2ea2bdbd2405cc504644f2096/librt-0.8.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e4af413908f77294605e28cfd98063f54b2c790561383971d2f52d113d9c363", size = 224809, upload-time = "2026-02-17T16:12:02.108Z" }, - { url = "https://files.pythonhosted.org/packages/7a/d0/78200a45ba3240cb042bc597d6f2accba9193a2c57d0356268cbbe2d0925/librt-0.8.1-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5212a5bd7fae98dae95710032902edcd2ec4dc994e883294f75c857b83f9aba0", size = 218075, upload-time = "2026-02-17T16:12:03.631Z" }, - { url = "https://files.pythonhosted.org/packages/af/72/a210839fa74c90474897124c064ffca07f8d4b347b6574d309686aae7ca6/librt-0.8.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e692aa2d1d604e6ca12d35e51fdc36f4cda6345e28e36374579f7ef3611b3012", size = 225486, upload-time = "2026-02-17T16:12:04.725Z" }, - { url = "https://files.pythonhosted.org/packages/a3/c1/a03cc63722339ddbf087485f253493e2b013039f5b707e8e6016141130fa/librt-0.8.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:4be2a5c926b9770c9e08e717f05737a269b9d0ebc5d2f0060f0fe3fe9ce47acb", size = 218219, upload-time = "2026-02-17T16:12:05.828Z" }, - { url = "https://files.pythonhosted.org/packages/58/f5/fff6108af0acf941c6f274a946aea0e484bd10cd2dc37610287ce49388c5/librt-0.8.1-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fd1a720332ea335ceb544cf0a03f81df92abd4bb887679fd1e460976b0e6214b", size = 218750, upload-time = "2026-02-17T16:12:07.09Z" }, - { url = "https://files.pythonhosted.org/packages/71/67/5a387bfef30ec1e4b4f30562c8586566faf87e47d696768c19feb49e3646/librt-0.8.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:93c2af9e01e0ef80d95ae3c720be101227edae5f2fe7e3dc63d8857fadfc5a1d", size = 241624, upload-time = "2026-02-17T16:12:08.43Z" }, - { url = "https://files.pythonhosted.org/packages/c9/6a/907ef6800f7bca71b525a05f1839b21f708c09043b1c6aa77b6b827b3996/librt-0.8.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:6cfa7fe54fd4d1f47130017351a959fe5804bda7a0bc7e07a2cdbc3fdd28d34f", size = 66081, upload-time = "2026-02-17T16:12:12.766Z" }, - { url = "https://files.pythonhosted.org/packages/1b/18/25e991cd5640c9fb0f8d91b18797b29066b792f17bf8493da183bf5caabe/librt-0.8.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:228c2409c079f8c11fb2e5d7b277077f694cb93443eb760e00b3b83cb8b3176c", size = 68309, upload-time = "2026-02-17T16:12:13.756Z" }, - { url = "https://files.pythonhosted.org/packages/a4/36/46820d03f058cfb5a9de5940640ba03165ed8aded69e0733c417bb04df34/librt-0.8.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:7aae78ab5e3206181780e56912d1b9bb9f90a7249ce12f0e8bf531d0462dd0fc", size = 196804, upload-time = "2026-02-17T16:12:14.818Z" }, - { url = "https://files.pythonhosted.org/packages/59/18/5dd0d3b87b8ff9c061849fbdb347758d1f724b9a82241aa908e0ec54ccd0/librt-0.8.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:172d57ec04346b047ca6af181e1ea4858086c80bdf455f61994c4aa6fc3f866c", size = 206907, upload-time = "2026-02-17T16:12:16.513Z" }, - { url = "https://files.pythonhosted.org/packages/d1/96/ef04902aad1424fd7299b62d1890e803e6ab4018c3044dca5922319c4b97/librt-0.8.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b1977c4ea97ce5eb7755a78fae68d87e4102e4aaf54985e8b56806849cc06a3", size = 221217, upload-time = "2026-02-17T16:12:17.906Z" }, - { url = "https://files.pythonhosted.org/packages/6d/ff/7e01f2dda84a8f5d280637a2e5827210a8acca9a567a54507ef1c75b342d/librt-0.8.1-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:10c42e1f6fd06733ef65ae7bebce2872bcafd8d6e6b0a08fe0a05a23b044fb14", size = 214622, upload-time = "2026-02-17T16:12:19.108Z" }, - { url = "https://files.pythonhosted.org/packages/1e/8c/5b093d08a13946034fed57619742f790faf77058558b14ca36a6e331161e/librt-0.8.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4c8dfa264b9193c4ee19113c985c95f876fae5e51f731494fc4e0cf594990ba7", size = 221987, upload-time = "2026-02-17T16:12:20.331Z" }, - { url = "https://files.pythonhosted.org/packages/d3/cc/86b0b3b151d40920ad45a94ce0171dec1aebba8a9d72bb3fa00c73ab25dd/librt-0.8.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:01170b6729a438f0dedc4a26ed342e3dc4f02d1000b4b19f980e1877f0c297e6", size = 215132, upload-time = "2026-02-17T16:12:21.54Z" }, - { url = "https://files.pythonhosted.org/packages/fc/be/8588164a46edf1e69858d952654e216a9a91174688eeefb9efbb38a9c799/librt-0.8.1-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:7b02679a0d783bdae30d443025b94465d8c3dc512f32f5b5031f93f57ac32071", size = 215195, upload-time = "2026-02-17T16:12:23.073Z" }, - { url = "https://files.pythonhosted.org/packages/f5/f2/0b9279bea735c734d69344ecfe056c1ba211694a72df10f568745c899c76/librt-0.8.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:190b109bb69592a3401fe1ffdea41a2e73370ace2ffdc4a0e8e2b39cdea81b78", size = 237946, upload-time = "2026-02-17T16:12:24.275Z" }, - { url = "https://files.pythonhosted.org/packages/d2/0e/9b23a87e37baf00311c3efe6b48d6b6c168c29902dfc3f04c338372fd7db/librt-0.8.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2c74a2da57a094bd48d03fa5d196da83d2815678385d2978657499063709abe1", size = 68313, upload-time = "2026-02-17T16:12:29.659Z" }, - { url = "https://files.pythonhosted.org/packages/db/9a/859c41e5a4f1c84200a7d2b92f586aa27133c8243b6cac9926f6e54d01b9/librt-0.8.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a355d99c4c0d8e5b770313b8b247411ed40949ca44e33e46a4789b9293a907ee", size = 70994, upload-time = "2026-02-17T16:12:31.516Z" }, - { url = "https://files.pythonhosted.org/packages/4c/28/10605366ee599ed34223ac2bf66404c6fb59399f47108215d16d5ad751a8/librt-0.8.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:2eb345e8b33fb748227409c9f1233d4df354d6e54091f0e8fc53acdb2ffedeb7", size = 220770, upload-time = "2026-02-17T16:12:33.294Z" }, - { url = "https://files.pythonhosted.org/packages/af/8d/16ed8fd452dafae9c48d17a6bc1ee3e818fd40ef718d149a8eff2c9f4ea2/librt-0.8.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9be2f15e53ce4e83cc08adc29b26fb5978db62ef2a366fbdf716c8a6c8901040", size = 235409, upload-time = "2026-02-17T16:12:35.443Z" }, - { url = "https://files.pythonhosted.org/packages/89/1b/7bdf3e49349c134b25db816e4a3db6b94a47ac69d7d46b1e682c2c4949be/librt-0.8.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:785ae29c1f5c6e7c2cde2c7c0e148147f4503da3abc5d44d482068da5322fd9e", size = 246473, upload-time = "2026-02-17T16:12:36.656Z" }, - { url = "https://files.pythonhosted.org/packages/4e/8a/91fab8e4fd2a24930a17188c7af5380eb27b203d72101c9cc000dbdfd95a/librt-0.8.1-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d3a7da44baf692f0c6aeb5b2a09c5e6fc7a703bca9ffa337ddd2e2da53f7732", size = 238866, upload-time = "2026-02-17T16:12:37.849Z" }, - { url = "https://files.pythonhosted.org/packages/b9/e0/c45a098843fc7c07e18a7f8a24ca8496aecbf7bdcd54980c6ca1aaa79a8e/librt-0.8.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:5fc48998000cbc39ec0d5311312dda93ecf92b39aaf184c5e817d5d440b29624", size = 250248, upload-time = "2026-02-17T16:12:39.445Z" }, - { url = "https://files.pythonhosted.org/packages/82/30/07627de23036640c952cce0c1fe78972e77d7d2f8fd54fa5ef4554ff4a56/librt-0.8.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:e96baa6820280077a78244b2e06e416480ed859bbd8e5d641cf5742919d8beb4", size = 240629, upload-time = "2026-02-17T16:12:40.889Z" }, - { url = "https://files.pythonhosted.org/packages/fb/c1/55bfe1ee3542eba055616f9098eaf6eddb966efb0ca0f44eaa4aba327307/librt-0.8.1-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:31362dbfe297b23590530007062c32c6f6176f6099646bb2c95ab1b00a57c382", size = 239615, upload-time = "2026-02-17T16:12:42.446Z" }, - { url = "https://files.pythonhosted.org/packages/2b/39/191d3d28abc26c9099b19852e6c99f7f6d400b82fa5a4e80291bd3803e19/librt-0.8.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc3656283d11540ab0ea01978378e73e10002145117055e03722417aeab30994", size = 263001, upload-time = "2026-02-17T16:12:43.627Z" }, + { url = "https://files.pythonhosted.org/packages/59/52/06790ced2ac7117f890c21bda43c39c958ec82aa665c0718e821d33ff939/librt-0.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:823b92cf3c18ecd08afc70c42473888b41b6e8ef5046f3b82c05c154a2fa3d22", size = 148039, upload-time = "2026-08-07T10:46:41.165Z" }, + { url = "https://files.pythonhosted.org/packages/e7/1d/8e150b7fc449a1f33c8a760965cc1f43b14fc1577d9d0b50ab2701420e74/librt-0.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c70bc1b602cf59917e8f0c7a2cbc8bcc6fbc14d5486136b00707a79619121d63", size = 153067, upload-time = "2026-08-07T10:46:42.418Z" }, + { url = "https://files.pythonhosted.org/packages/51/87/a162bc5a66a35599dc619ecb215145f4de7d68e886b479b6d12593139f7c/librt-0.15.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:814ff83a25b5fce8b9c80c4dd803153fb5c5599fc74db9e022466938368957ef", size = 493087, upload-time = "2026-08-07T10:46:43.657Z" }, + { url = "https://files.pythonhosted.org/packages/e5/3a/aeea1fc620cf48060d3065b37614edbf97043c099d0f50782bc8ca61d897/librt-0.15.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:57f5eeb6ad4c180de583b1038e61fe5fbd9796bb69a8a1c1a0c7ddbec4c8c60f", size = 485608, upload-time = "2026-08-07T10:46:45.038Z" }, + { url = "https://files.pythonhosted.org/packages/52/ff/fe571ad416f0856fd0d5578ffc2e6dc531891e586e36b647bcf50569cab8/librt-0.15.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82909c8f7eb9952656b65d3147afde4cf8e6d5a991eebc86418b5e65843b0ab8", size = 498723, upload-time = "2026-08-07T10:46:46.35Z" }, + { url = "https://files.pythonhosted.org/packages/0f/e1/7a65eb5dedb1f00aebd948cdd8e17add48bf066cab3514e9daf84ab45a6c/librt-0.15.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f779070399f991400fc451719e0ea388eb7de313388bada2c127a35de05f798a", size = 516002, upload-time = "2026-08-07T10:46:47.599Z" }, + { url = "https://files.pythonhosted.org/packages/5f/45/59832b0ebfbd08c2742e6ece372ceb53f18bf1faef5d33c8daf3abebf749/librt-0.15.0-cp311-cp311-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bac89069bc496ebdf4f79ebb57bbd10d0b214c8454225deb672d91002bd17e18", size = 508607, upload-time = "2026-08-07T10:46:48.873Z" }, + { url = "https://files.pythonhosted.org/packages/ea/0d/37fa73f3b43ebd8259f91ae9102a15e5a54e65d581e48dea72df3e81d7a4/librt-0.15.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e0d00c708fb2f5822b152429b1ac80a58dbbbc3f6c232c4d13a3f7fcf2ea5b4c", size = 530422, upload-time = "2026-08-07T10:46:50.45Z" }, + { url = "https://files.pythonhosted.org/packages/26/02/e046c6fe7a5881ac34623242192f484426ba8a75595fd18f22c53a3f530f/librt-0.15.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:6c6624fe268625869485553dd7cc1daf30d22558215bb2a4ff16f67a9801a31a", size = 534303, upload-time = "2026-08-07T10:46:51.693Z" }, + { url = "https://files.pythonhosted.org/packages/95/32/d5e6d861ab0366f3edf74f887ab0c9eb9f535aaf01d32b80b4f734daa179/librt-0.15.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:f56b397858a23dacf35ede366ed2212fdc03a6a57a1ad36468ad6e9dc5fac091", size = 536084, upload-time = "2026-08-07T10:46:52.951Z" }, + { url = "https://files.pythonhosted.org/packages/2a/de/d69d725513fe53fc90c6d7a1f86e4428939bad2fb905b17fe4c18d413dde/librt-0.15.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:4388184646efe2054911c5b00a1077d6d1ee86a95b7e8ba96dc7850a809f3f40", size = 514307, upload-time = "2026-08-07T10:46:54.194Z" }, + { url = "https://files.pythonhosted.org/packages/36/93/f8aded0d6682b4f25820fa86e0690f87f01df9fd7bd09ddb04d9167ad021/librt-0.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:97335f59082f9fe2ce6c2a9cc6433a0114bbb6cd4d5c09dd76c95c68b9f9a8b0", size = 557686, upload-time = "2026-08-07T10:46:55.443Z" }, + { url = "https://files.pythonhosted.org/packages/ba/39/99c25030e782bdfb7a21be8c05254806a2e4bbb05c8d50c2a2130acbfa05/librt-0.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e87bc679f86a99aa3b26e3c78eeb821a247c9a28eae48eaafcc32c3bf4c3bb9e", size = 151021, upload-time = "2026-08-07T10:47:00.057Z" }, + { url = "https://files.pythonhosted.org/packages/14/43/f4b1bd1b2888798a1409808889a25ea1ba49eaabce7d681ed27734c2df9d/librt-0.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:71599e011ac880e8e45d46047d714871894c7d4ab6f25626f8d4f89da21f368d", size = 155267, upload-time = "2026-08-07T10:47:01.311Z" }, + { url = "https://files.pythonhosted.org/packages/0c/db/3ad9c965c72f1e1d6beeec44ec10a54e17be8ae042fbb4baade16cbadced/librt-0.15.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c802434092b769b1d613ed2e13fac15fbfce1934a74bd10283b03c0fae231cd1", size = 503136, upload-time = "2026-08-07T10:47:02.45Z" }, + { url = "https://files.pythonhosted.org/packages/4b/07/5888a6d76acd62ebce66c61b74d94e9370b9c32929f111e487bb6546f8ed/librt-0.15.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:5500eeae393a184d14e1f35645962c27129d20c81afa4069e6ef826ebc2b3aaa", size = 496670, upload-time = "2026-08-07T10:47:03.675Z" }, + { url = "https://files.pythonhosted.org/packages/29/39/ab57cc2f5b276156da02bb7f5a8921bada1cb1993ffec99acf811c602c23/librt-0.15.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6ecfc32dfb46fb7b565bcd6abf9412acf978775a998273d22888a6d7953730dd", size = 513688, upload-time = "2026-08-07T10:47:04.981Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b9/bdbb0b648b5c2befb031f4c6f3b1dd857415e8fb492a25a3c764a6681e6c/librt-0.15.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:89cc46cfd15022e35084355478c9ac809d90b1152222706ac9a7655ec21df6fa", size = 531904, upload-time = "2026-08-07T10:47:06.211Z" }, + { url = "https://files.pythonhosted.org/packages/93/26/473c2e4b6c104e9e58e27ce95fc8005c8bd4fc36cae4f254371125a92db8/librt-0.15.0-cp312-cp312-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d5f51401d102c885b9ca509e62c79b1dbff286e1b9b047fde6f763780789356d", size = 524427, upload-time = "2026-08-07T10:47:07.592Z" }, + { url = "https://files.pythonhosted.org/packages/26/60/03b3abb82b41714671b907bf6989b228e31e6a8af52dec82b5b0728dc250/librt-0.15.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cc30523e3f1a23fb7511cc659834a0d01a1042bb9de359bc1c131cc4ec6c9656", size = 543155, upload-time = "2026-08-07T10:47:08.866Z" }, + { url = "https://files.pythonhosted.org/packages/f2/0e/9bb1f0a4affbd0a1888f4f79dc03ed2a299d9a2c26c59ab2a97dcbf11903/librt-0.15.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:59fe030d8ae4a57e3fb7756bf35a858de74e04066fc8555c53d0af979132af81", size = 546890, upload-time = "2026-08-07T10:47:10.327Z" }, + { url = "https://files.pythonhosted.org/packages/dc/84/6937a280d461f7de6e031ffb02edc2b7c3c90d49d630565ce8ff27cbc5f2/librt-0.15.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5a6526a2a956bbb1e4ae3568c82e650fc99119c66bb011ea60715744955a2b4d", size = 555163, upload-time = "2026-08-07T10:47:11.798Z" }, + { url = "https://files.pythonhosted.org/packages/bc/95/2a2853c1ee014bf102116e7f897a04beeaeb2461b45b79af98bdfb95f1ef/librt-0.15.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:85ea21ec6730194d67156b0e0b5430ccb1d61f8b8b907e39b37f9812b74a13f0", size = 535812, upload-time = "2026-08-07T10:47:13.279Z" }, + { url = "https://files.pythonhosted.org/packages/c9/4c/cf9601c1b4c5f09280acd5d83abdb2e68527a2be8257136eb42304218622/librt-0.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1e47b8ba865d7ede071a91a7163073bbaeb72541f1ef8a07d512c45c7b5007f2", size = 573688, upload-time = "2026-08-07T10:47:14.727Z" }, + { url = "https://files.pythonhosted.org/packages/e7/42/467b53a601b406ccd7b97c1fd54b59cb34f9185ad5ce7e9d5c3c4e8961c8/librt-0.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:db13ca398005abcbe538deda87b686d9bd08b7001cf40c4c06b444960ae10a26", size = 151029, upload-time = "2026-08-07T10:47:19.312Z" }, + { url = "https://files.pythonhosted.org/packages/3e/e6/36c2299b7a94b84fdd01220d8a777a71be5be0925bb0dbdf71c0a06a34d9/librt-0.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa1f1995789dca3698bc550aaceb09a51bd5df0a057ff84ff15296cd1975b801", size = 155194, upload-time = "2026-08-07T10:47:20.398Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b6/ed5071f9325845e670bd36012757419767fbf56af77ed483077b9e4db541/librt-0.15.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:55456ea87d8df21808446d03817be2f65e20391c1c615d9187440dff28cd08dc", size = 502568, upload-time = "2026-08-07T10:47:21.652Z" }, + { url = "https://files.pythonhosted.org/packages/7f/81/6450c67c3615d87704bcbc21323fafc69c799b06a044c447529f725d4b01/librt-0.15.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:5a86a5a08c2235316bdb359d5dbb6ce0abfca7fac06363103e2c5af571d92f95", size = 496153, upload-time = "2026-08-07T10:47:22.925Z" }, + { url = "https://files.pythonhosted.org/packages/e1/d6/5f52b722bc75076954b3bfd49be15ea362df4d580c6fb315d0f617100d30/librt-0.15.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e56b6a368529bed262da40ce13f8fef590db0479819cca84f16a1f01ac356d0b", size = 513336, upload-time = "2026-08-07T10:47:24.213Z" }, + { url = "https://files.pythonhosted.org/packages/8d/e2/c08fd1d36ce63ea5a12b85c5d37f4550b5f86a692167e41e5a74222607ae/librt-0.15.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:234d8d394721fa0d786af15ebf1f3fb7f3ed82fd1cd0cde45c2f247b5d4281d2", size = 531661, upload-time = "2026-08-07T10:47:25.507Z" }, + { url = "https://files.pythonhosted.org/packages/3f/d8/d9482fcbeb177b9eb87bb3899eeb3b42be690313c652f9e146b1d0681fb2/librt-0.15.0-cp313-cp313-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d8363d7accb0286ac3a0e633f396e93800dafb8150494505daf9515bbda591f3", size = 524487, upload-time = "2026-08-07T10:47:26.79Z" }, + { url = "https://files.pythonhosted.org/packages/10/cc/075171517b41f861753034fbb151b42cfc83bcc853849f24f5e66fd60ccf/librt-0.15.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0f0ee3644d951f31055ad07d77d92520e84505dd7a432cc4cd501dd70ee06785", size = 543201, upload-time = "2026-08-07T10:47:27.999Z" }, + { url = "https://files.pythonhosted.org/packages/b0/03/42c2330f37eeb475b6affeedd06518f60035f323af3a839335e3fc9fef2d/librt-0.15.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2cfd1a81a648806e6a7717be4cc4d1bb392fa229752bf8444ba365e381e984d6", size = 546467, upload-time = "2026-08-07T10:47:29.396Z" }, + { url = "https://files.pythonhosted.org/packages/57/1e/1ad4c5638f7e64d8560328bd25c54b409a661bdb6ff254b38ff90744288d/librt-0.15.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:a6cd22c9da0d866558e46a041f1cc0c2bbb26b61b137b2347fa834c332e1d101", size = 555139, upload-time = "2026-08-07T10:47:30.815Z" }, + { url = "https://files.pythonhosted.org/packages/49/41/39fa7d15db1204cd1cbe6514680fbdc243adf754a0885061308f43afc013/librt-0.15.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:6d5225ef8801e4ea5e482fa9b5dfb891dd9ef6f6d870f1f25d449ca2c70ac218", size = 536050, upload-time = "2026-08-07T10:47:32.222Z" }, + { url = "https://files.pythonhosted.org/packages/1e/88/c6dcf0dd8e26dc0c9a499a2abab8646c86dcaf9ecea9524cb46d3686331a/librt-0.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d28a05796b99f749bf8794f17ba9ba1612d0076b802e9cfc62c554634e9ce3b", size = 573700, upload-time = "2026-08-07T10:47:33.527Z" }, + { url = "https://files.pythonhosted.org/packages/1b/9b/ab54c71a7918a7c34fa5327fb61390a77446a07a146fbfb1165250a61035/librt-0.15.0-cp313-cp313-pyemscripten_2025_0_wasm32.whl", hash = "sha256:2067ff438048cead9d223ca5675bae2a25e520a7c3e6c1498bf9c6892d22caab", size = 82194, upload-time = "2026-08-07T10:47:34.835Z" }, + { url = "https://files.pythonhosted.org/packages/a8/93/949053fb462eecc4a9a5ee770a81f4b40be7b79538b245545d4aebc6b58b/librt-0.15.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:f5de7feedc56337a088eb15cd9fafa9938367362221d8cc62c642b7f94821993", size = 149833, upload-time = "2026-08-07T10:47:39.86Z" }, + { url = "https://files.pythonhosted.org/packages/61/ca/8281aa6cd560a3420e4497729f6b704b53be3eeaaef82d5aeadddaf7441f/librt-0.15.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6c0eb900c0e91f4aebe680845242e614f1864edfd44106380d0752ac29522bf8", size = 154088, upload-time = "2026-08-07T10:47:41.065Z" }, + { url = "https://files.pythonhosted.org/packages/dd/02/1a1662dceaba6a086360891448d5ce9a7d3555976cae59a31a39d744b9c7/librt-0.15.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e8c9a650a188e38bac005048cbe6342e81407782944d01934540ab75e417df21", size = 494215, upload-time = "2026-08-07T10:47:42.388Z" }, + { url = "https://files.pythonhosted.org/packages/69/84/99211619dc656370a3740c33d2b0b6d5a3fb1e73689314f6ed477a397dc4/librt-0.15.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:92bfed8deec93df30286b9fe9e3b1dd17329cc076a192b4ee5ec223841d54953", size = 491173, upload-time = "2026-08-07T10:47:43.683Z" }, + { url = "https://files.pythonhosted.org/packages/d4/aa/5448d0b05f4579b635d3899176817ebf561af0e57bacd425b5b1887264c1/librt-0.15.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ec4b19788f835711a2072f9dbe6b03b3bf32ed1f0fb30cf399bdd59d9f0c33fa", size = 505512, upload-time = "2026-08-07T10:47:45.314Z" }, + { url = "https://files.pythonhosted.org/packages/95/82/01940e40b83c43a546c4a3c896cf34ca272a9690899d55914e4827b3dcce/librt-0.15.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d4c7bacb70930f3d0a56f4ecf1be474a1f0d941b01dd73b756f3c256d42cb879", size = 523073, upload-time = "2026-08-07T10:47:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/88/fa/759c0030f3ee371439eb26de34fc745807caf0abb878af7af4b8b7c3dd3d/librt-0.15.0-cp314-cp314-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3e79f05e4a08b4d880342673312bbc895b56df7765605796f15902eb5367d3ae", size = 515080, upload-time = "2026-08-07T10:47:48.319Z" }, + { url = "https://files.pythonhosted.org/packages/0b/27/894e072228fcb159703c655da69f8cd10dbed489c36e3df7dd032a2483be/librt-0.15.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a417149c0cba4d50b61e992e5a15e69eaf96746609b461cc4ed168aeef6b79dd", size = 534164, upload-time = "2026-08-07T10:47:49.875Z" }, + { url = "https://files.pythonhosted.org/packages/98/a3/0078e91c1f36f8815db17827de15650b9a3fe56c55fbf998c854b34e40d3/librt-0.15.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:da7a94d6a3411f579d72aa3e3bc5fbca7ed4549f3dbd7e5de3aa567333374285", size = 540616, upload-time = "2026-08-07T10:47:51.408Z" }, + { url = "https://files.pythonhosted.org/packages/86/33/81a29b796dd52a45e9ef7974c7732926e8f10f15b8d2be505665979f896d/librt-0.15.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:856f743ae607f2c1380eccb566c0038a9fb3eabf0fc2be2704d76d9f73557239", size = 545890, upload-time = "2026-08-07T10:47:52.818Z" }, + { url = "https://files.pythonhosted.org/packages/05/82/8be1baa1350e5d30cfd70ae79d0a6f4dc5862ef47f7bb2808aabc9bb86e5/librt-0.15.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:779a6e7c894737e5983e7790a9c78c4000c30e23c9aada08081bdbea53b0fa60", size = 523287, upload-time = "2026-08-07T10:47:54.165Z" }, + { url = "https://files.pythonhosted.org/packages/c6/4f/d1be6a01a35c20ef734e0e44113f87d4af756a9354a89dcfbe3b4f8af5e1/librt-0.15.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:96bb17dbe8bab3c0954fbebfc69ed395599de75b6bbc35e3270a878e15d4dd65", size = 565868, upload-time = "2026-08-07T10:47:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/67/88/649cfa33f5825927b160610f670bdab012a64d627eddb94fa795ea4292fd/librt-0.15.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:7220697efaa6e5348fc3d18ee7f8563d4bfecd9872b37ffb915bfc1d08840622", size = 81619, upload-time = "2026-08-07T10:47:56.886Z" }, + { url = "https://files.pythonhosted.org/packages/7e/aa/b42bb798942ced219f6d63b27e07f91237887a8d0bd0921666db79a13790/librt-0.15.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:38c0c7d4b6fc06c3324b3f9162c8391bfc4fd9dde53afe1033ce7edb48d5a714", size = 159523, upload-time = "2026-08-07T10:48:02.442Z" }, + { url = "https://files.pythonhosted.org/packages/75/03/1b53cd4ef904e73b1d828a5f90143bf94a2967d7cfff0b9ccf93e12aa9b4/librt-0.15.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8b2fdd7ead3c995c37940a790690660d0ca006c302db26cc51933f6766866fc3", size = 161638, upload-time = "2026-08-07T10:48:03.725Z" }, + { url = "https://files.pythonhosted.org/packages/ac/c4/9f9c9fba097d49e9e694c2b4dc331df31884645ecbc58a93b4b5fc69d2c5/librt-0.15.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2fde98cf1fc4bac144ce23c2c4c017b924ba714509ea9334977b0b27050c837d", size = 701795, upload-time = "2026-08-07T10:48:05.135Z" }, + { url = "https://files.pythonhosted.org/packages/4c/05/0966840bda0380c8ae167b9043c6230202941cc90ea29c48e096964c765e/librt-0.15.0-cp314-cp314t-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:e3b461183c5fa7681b48560f91515f53a953122fb30c71e07abc67d7ddf58c38", size = 682147, upload-time = "2026-08-07T10:48:06.555Z" }, + { url = "https://files.pythonhosted.org/packages/18/af/1c47ca573c30ea47d195aec26133af522fea1104afaace028d7b32247ea8/librt-0.15.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4bbcc257e3babea20a91715c361b24554ec4e8f51aa578568afc230799fe1a19", size = 696397, upload-time = "2026-08-07T10:48:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/2e/0f/1aed6223d4f9f9d1171a8596ff100ea4c3f7699fea7a4ba657c3e60daa6c/librt-0.15.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b845b8d48088fad0cadc84be4b8fda63203be7e9237b71015b3925443c1f35ab", size = 722542, upload-time = "2026-08-07T10:48:09.569Z" }, + { url = "https://files.pythonhosted.org/packages/c6/22/9e3a929aea456c97d69e6ef3884efea56d4807f97399471cc946baebd8af/librt-0.15.0-cp314-cp314t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b30e600e8f337b9bd7f39b86d9fdfedc73cc46e3d0f745931a23a234220bb7e2", size = 729709, upload-time = "2026-08-07T10:48:11.129Z" }, + { url = "https://files.pythonhosted.org/packages/e9/1b/c327ef6018e3a9ca0b8e7c5eddeeb331ba8f9b76c24e126d37d0f6d62faf/librt-0.15.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:64b0c8c35aa4c4ed79896359f3e0b285cbe4e610042106500da4811c322cc108", size = 752891, upload-time = "2026-08-07T10:48:12.558Z" }, + { url = "https://files.pythonhosted.org/packages/d7/d1/d5f1ea02c56930087009e39db9b70660a663e76c730b27b925d786718457/librt-0.15.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0da0d94cb802f32a0524653e7201f2cef72d5f700a5407678f5290483d4fcd08", size = 745301, upload-time = "2026-08-07T10:48:14.55Z" }, + { url = "https://files.pythonhosted.org/packages/d9/3c/5f7c585d15ebb2250c73e7c0ee4e9e47be72c65d520c07ddbcdc62037674/librt-0.15.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:4a6369168d371207339b1e50d4532b06a7121586141f82599505a3f315751d47", size = 747921, upload-time = "2026-08-07T10:48:16.453Z" }, + { url = "https://files.pythonhosted.org/packages/7f/52/1443a446486eba966bcbca1696b472e4f210320ec42f490a47f48fbf0fdc/librt-0.15.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:c434e072557ade9cbc642d052c89d031efe47d5c9614523619d0d74a02378e81", size = 727561, upload-time = "2026-08-07T10:48:18.089Z" }, + { url = "https://files.pythonhosted.org/packages/79/91/2270a9380f11725cf83ce1925a5e32dd1dde2be9bba597f25c10a38644e7/librt-0.15.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:c7eec6a42018bc1d45763b1c162d3d2bf7c3b9a1b0ed30d3e91dcba390efefcc", size = 774417, upload-time = "2026-08-07T10:48:19.611Z" }, + { url = "https://files.pythonhosted.org/packages/c6/44/4de9f4ddadb009a55c7758eb5736d62534a7daaf27bd71bc50e64b606b06/librt-0.15.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:8443e38dcfcfdbcf5add5118c623efd788d65ac2e25756d6251a54a06a4d0aca", size = 149843, upload-time = "2026-08-07T10:48:25.148Z" }, + { url = "https://files.pythonhosted.org/packages/1f/eb/5d9ab71e30119c44094e0275f38b47dd327aea0f843a080396677029d508/librt-0.15.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6d15a29033c57490cfe2069097c6fc4049e4e65ffbb749be7dc453b7c4c68965", size = 154510, upload-time = "2026-08-07T10:48:26.485Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9c/8505d1b8f5e8c19587bd03f7429993b3e9ce5c06819d856bfb11d919374c/librt-0.15.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d2c05c729b589e734c09578bf5964be48a911765484840d017bbc84f49d4c4ad", size = 497543, upload-time = "2026-08-07T10:48:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/1d/9a/3a8390775cb095765aded027ac9c63e7c8ea74e731498607544c6505de0e/librt-0.15.0-cp315-cp315-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:fa60887537e1d0cd2d9982269d33a709bf54b195cd2b9364fc0a758022af5bd9", size = 480452, upload-time = "2026-08-07T10:48:29.531Z" }, + { url = "https://files.pythonhosted.org/packages/e7/40/258a4a7117ee915d66de5cd9b8ade65a440993161107ce3a686f1859955c/librt-0.15.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d8bc24219b24c0af375718942ab75e3544b2763085f40f965be4326734ae8328", size = 507768, upload-time = "2026-08-07T10:48:31.007Z" }, + { url = "https://files.pythonhosted.org/packages/6b/c6/2f4dd296c97a0b85b98894519b279408ec9dd602d4f692b1ea0e25dee670/librt-0.15.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:86a21a7bd3fe3a419512ef424cc1c020f6771d0b29cfddff36d1635a855e63f0", size = 525122, upload-time = "2026-08-07T10:48:32.7Z" }, + { url = "https://files.pythonhosted.org/packages/49/dd/29eab42be13b2bf0ea8cb227135a45d44693e30a7e8b92871981ff56b82b/librt-0.15.0-cp315-cp315-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dbab647e88d90b3167b91efe7091e248653688ed4337e4f90907a722c7361bb9", size = 520371, upload-time = "2026-08-07T10:48:34.294Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/4bad71adeca8fe208b775c2a35417fa5a2584c8f4791daaf89a89450fea1/librt-0.15.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:d8edcf6f550e918dca779c069b9e156385c60b406f99fc7641f32c52f7193659", size = 537258, upload-time = "2026-08-07T10:48:35.88Z" }, + { url = "https://files.pythonhosted.org/packages/4c/63/59dba6143fdcc7240c54458b629f3250000a61b8945890fc9efd451b19c5/librt-0.15.0-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:8b62076030baa2d8b1501a46bf0e19c27a489aa90671c55665bff7887f7660b0", size = 527432, upload-time = "2026-08-07T10:48:37.466Z" }, + { url = "https://files.pythonhosted.org/packages/ec/21/21a24c6a2327d8362580efebe77286bf47b0f4062ec5ea41766e609d3c7d/librt-0.15.0-cp315-cp315-musllinux_1_2_ppc64le.whl", hash = "sha256:d00d20d1818e82a07a0ee0aa89a98b17ed7916b92441090b683719cb20a59b6d", size = 548108, upload-time = "2026-08-07T10:48:39.384Z" }, + { url = "https://files.pythonhosted.org/packages/5a/6d/fc68c89a7971418b41f9a873623ff935cb864097544c6a2f8ce491c8ef5d/librt-0.15.0-cp315-cp315-musllinux_1_2_riscv64.whl", hash = "sha256:4e6ee93fc3cf848dcbf0cce2eca73d8e7dcd0cc2b6df3a529d57750b30a4c55c", size = 529681, upload-time = "2026-08-07T10:48:41.392Z" }, + { url = "https://files.pythonhosted.org/packages/65/7e/c2d98766124400d722063a630b0fde38a9fc768705d37eecca15c47dc192/librt-0.15.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:32896a0af72508ea979e0acb4e4c04cbeeae04938167950d535c83c45597167d", size = 567736, upload-time = "2026-08-07T10:48:43.124Z" }, + { url = "https://files.pythonhosted.org/packages/55/6c/f8c34a95e3a515c6e1c192b89511e7253c89a7760c6b500d57ffdb8d2dc8/librt-0.15.0-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:ec3ba415afaf951f6951b1dd16d3c8e4f540065fc382d7e70b823a79567ca374", size = 81673, upload-time = "2026-08-07T10:48:44.645Z" }, + { url = "https://files.pythonhosted.org/packages/de/15/83f2deddb9368b8951ec8c9477269b5b9b8bd9bbf15e57402d0f38817dca/librt-0.15.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:3de789c82752730f94782a5ee518baf9c05edf85733aeaf73bb6e518755cdf54", size = 159448, upload-time = "2026-08-07T10:48:50.649Z" }, + { url = "https://files.pythonhosted.org/packages/06/bf/043097353f9b3c73b583d07f6b8e552795463f4bfc8caf85e42eee50c26a/librt-0.15.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:e0b5deec9a8664eb722c797241970fd4aa1894d25fda36a1ddac0f7407606bd6", size = 161686, upload-time = "2026-08-07T10:48:52.174Z" }, + { url = "https://files.pythonhosted.org/packages/f4/2a/8ae77f9719d42ce71cd708560a3557b38ac3c17a0383e57f87084de45bbe/librt-0.15.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5563302a8359bc2295bb7084d1a8ed1519df96afb30eb2aa4e0bff7b54228988", size = 710668, upload-time = "2026-08-07T10:48:53.782Z" }, + { url = "https://files.pythonhosted.org/packages/61/34/c0436ea134deb9a0d6da80a396a2739a81cb31e0418f7227239e23140898/librt-0.15.0-cp315-cp315t-manylinux2014_i686.manylinux_2_17_i686.manylinux_2_28_i686.whl", hash = "sha256:22d6263b9d39d7bbb286fa791945646e3218f1be2d693e36fb630f1d0e59cd13", size = 679396, upload-time = "2026-08-07T10:48:55.645Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9f/001e0d99aa9250d5cd5715a9081291a20656083459f9019cda15255329e1/librt-0.15.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:39ffd14646190c454f0d86e0d256b33f00a87a26ab410e619773b841d0e41416", size = 704313, upload-time = "2026-08-07T10:48:57.46Z" }, + { url = "https://files.pythonhosted.org/packages/2d/53/b34fa9d0ff00f136f4d58ebb4c411ff634baed1eb412bb602a2bc8dcafcb/librt-0.15.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c47318cd3a61401452de11282242937e3e057c4fd3dbaf601e269d0928a06c0a", size = 729847, upload-time = "2026-08-07T10:48:59.231Z" }, + { url = "https://files.pythonhosted.org/packages/86/ac/fa4d7a424665040e95baf480a6d523446057684b6758624c85338e8a23b2/librt-0.15.0-cp315-cp315t-manylinux_2_34_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a56a1d4f859a82ca5b99fc4b82c9b027b15e3c455c5cd99e7d0719f27bb20b6c", size = 742736, upload-time = "2026-08-07T10:49:01.151Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f1/e17a9bb5de6fb8c3186ed1a7d68d21618b027ac2d3633e03d3b6109c67ae/librt-0.15.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:077471b3182db4e17c36ae91555f36a4d2c00080b267f749bcad34a478a9a302", size = 763454, upload-time = "2026-08-07T10:49:03.039Z" }, + { url = "https://files.pythonhosted.org/packages/1d/ec/ecd02cd30935b931b9cdbfed6ab5a099c51b280b4e7baa274da80978ed27/librt-0.15.0-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:411ca4d1b905b860ceba7570dd6717a71dedaddcc4b0f77ece710aa41ee11f8d", size = 743296, upload-time = "2026-08-07T10:49:04.941Z" }, + { url = "https://files.pythonhosted.org/packages/e6/b5/b3c2b8353ce820a4854f78d19321344242f89fa71c975b71132ba9bf242a/librt-0.15.0-cp315-cp315t-musllinux_1_2_ppc64le.whl", hash = "sha256:1256589e0b0adb31751d685a68bce29d73407ddf4ef05d4188f49d5dcf9566d9", size = 756217, upload-time = "2026-08-07T10:49:06.825Z" }, + { url = "https://files.pythonhosted.org/packages/3c/52/6cc22542ba59146b05cca2a656f9ff8bb67e38e63d12c3b0cc183d837bf1/librt-0.15.0-cp315-cp315t-musllinux_1_2_riscv64.whl", hash = "sha256:f42b74a53e5f26a0ba0007411a7455b66c67ce4022a39cc1f56fc4efd65bcbab", size = 741934, upload-time = "2026-08-07T10:49:08.839Z" }, + { url = "https://files.pythonhosted.org/packages/40/32/a04b72b1aa86e3be23b2ecff8c1aad2dcc955bd3956d6d26e7e34267e57a/librt-0.15.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:291bf73caf78b9e88d6fae9bfd693207ff7d832e2fdbe2cf8e746bc13f5f892b", size = 783763, upload-time = "2026-08-07T10:49:10.661Z" }, ] [[package]] name = "llama-index-core" -version = "0.14.24" +version = "0.14.25" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "aiohttp" }, @@ -2146,9 +2240,9 @@ dependencies = [ { name = "typing-inspect" }, { name = "wrapt" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d9/7a/e54d5ea405b51c1b7e1ed078036f698bcbeefc82128d5c48b7cb6d997ce6/llama_index_core-0.14.24.tar.gz", hash = "sha256:4b2eb3af98eecf3579707ef018be0346bd851be2c7660102d88fab0457b95b61", size = 11590565, upload-time = "2026-08-19T18:47:21.401Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/70/fe1f0a92459c3692075875c1e09fc51494602daaeb71734045e1d9d815d3/llama_index_core-0.14.25.tar.gz", hash = "sha256:4ebfdc5317f0382501fa80262d7a7382715f80741cf41a7b11a52d4335e6f696", size = 11591384, upload-time = "2026-09-21T16:21:51.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/be/f8/8a2aec65cba9459b24cce9bc188392014f70c2af0dc43c4cc668c685912e/llama_index_core-0.14.24-py3-none-any.whl", hash = "sha256:a12f39b8a777cc526bf400d929016cd244372af61c5e98f6f4186f51a0b9288c", size = 11927515, upload-time = "2026-08-19T18:47:18.772Z" }, + { url = "https://files.pythonhosted.org/packages/8c/20/60be179aaba858981edbe18eab106ff485967a9d3b198f8c58496cad9e32/llama_index_core-0.14.25-py3-none-any.whl", hash = "sha256:caa7d9c5ac9b13dc33400cf8d5e92e689b6d1e4497eb9bfa50d6f52ca2eb22a1", size = 11928254, upload-time = "2026-09-21T16:21:48.626Z" }, ] [[package]] @@ -2626,42 +2720,48 @@ wheels = [ [[package]] name = "mypy" -version = "1.20.2" +version = "2.3.1" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "ast-serialize" }, { name = "librt", marker = "platform_python_implementation != 'PyPy'" }, { name = "mypy-extensions" }, { name = "pathspec" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/04/af/e3d4b3e9ec91a0ff9aabfdb38692952acf49bbb899c2e4c29acb3a6da3ae/mypy-1.20.2.tar.gz", hash = "sha256:e8222c26daaafd9e8626dec58ae36029f82585890589576f769a650dd20fd665", size = 3817349, upload-time = "2026-04-21T17:12:28.473Z" } +sdist = { url = "https://files.pythonhosted.org/packages/82/6a/878cc1097d4035f82bd516658d0c528d2a9955bc7b363afcbd0b07fea11b/mypy-2.3.1.tar.gz", hash = "sha256:47c1b1207258513a9d93495f69c8be9de73916186f0e52703e8c461b7a623419", size = 3992554, upload-time = "2026-08-15T03:03:38.549Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1f/4d/9ebeae211caccbdaddde7ed5e31dfcf57faac66be9b11deb1dc6526c8078/mypy-1.20.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4077797a273e56e8843d001e9dfe4ba10e33323d6ade647ff260e5cd97d9758c", size = 14371307, upload-time = "2026-04-21T17:08:56.442Z" }, - { url = "https://files.pythonhosted.org/packages/95/d7/93473d34b61f04fac1aecc01368485c89c5c4af7a4b9a0cab5d77d04b63f/mypy-1.20.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:cdecf62abcc4292500d7858aeae87a1f8f1150f4c4dd08fb0b336ee79b2a6df3", size = 13258917, upload-time = "2026-04-21T17:05:50.978Z" }, - { url = "https://files.pythonhosted.org/packages/e2/30/3dd903e8bafb7b5f7bf87fcd58f8382086dea2aa19f0a7b357f21f63071b/mypy-1.20.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c566c3a88b6ece59b3d70f65bedef17304f48eb52ff040a6a18214e1917b3254", size = 13700516, upload-time = "2026-04-21T17:11:33.161Z" }, - { url = "https://files.pythonhosted.org/packages/07/05/c61a140aba4c729ac7bc99ae26fc627c78a6e08f5b9dd319244ea71a3d7e/mypy-1.20.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0deb80d062b2479f2c87ae568f89845afc71d11bc41b04179e58165fd9f31e98", size = 14562889, upload-time = "2026-04-21T17:05:27.674Z" }, - { url = "https://files.pythonhosted.org/packages/fd/87/da78243742ffa8a36d98c3010f0d829f93d5da4e6786f1a1a6f2ad616502/mypy-1.20.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:bba9ad231e92a3e424b3e56b65aa17704993425bba97e302c832f9466bb85bac", size = 14803844, upload-time = "2026-04-21T17:10:06.2Z" }, - { url = "https://files.pythonhosted.org/packages/71/4e/7560e4528db9e9b147e4c0f22660466bf30a0a1fe3d63d1b9d3b0fd354ee/mypy-1.20.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4dbfcf869f6b0517f70cf0030ba6ea1d6645e132337a7d5204a18d8d5636c02b", size = 14539393, upload-time = "2026-04-21T17:07:12.52Z" }, - { url = "https://files.pythonhosted.org/packages/32/d9/34a5efed8124f5a9234f55ac6a4ced4201e2c5b81e1109c49ad23190ec8c/mypy-1.20.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4b6481b228d072315b053210b01ac320e1be243dc17f9e5887ef167f23f5fae4", size = 13361642, upload-time = "2026-04-21T17:06:53.742Z" }, - { url = "https://files.pythonhosted.org/packages/d1/14/eb377acf78c03c92d566a1510cda8137348215b5335085ef662ab82ecd3a/mypy-1.20.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:34397cdced6b90b836e38182076049fdb41424322e0b0728c946b0939ebdf9f6", size = 13740347, upload-time = "2026-04-21T17:12:04.73Z" }, - { url = "https://files.pythonhosted.org/packages/b9/94/7e4634a32b641aa1c112422eed1bbece61ee16205f674190e8b536f884de/mypy-1.20.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5da6976f20cae27059ea8d0c86e7cef3de720e04c4bb9ee18e3690fdb792066", size = 14734042, upload-time = "2026-04-21T17:07:43.16Z" }, - { url = "https://files.pythonhosted.org/packages/7a/f3/f7e62395cb7f434541b4491a01149a4439e28ace4c0c632bbf5431e92d1f/mypy-1.20.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:56908d7e08318d39f85b1f0c6cfd47b0cac1a130da677630dac0de3e0623e102", size = 14964958, upload-time = "2026-04-21T17:11:00.665Z" }, - { url = "https://files.pythonhosted.org/packages/5b/c4/b93812d3a192c9bcf5df405bd2f30277cd0e48106a14d1023c7f6ed6e39b/mypy-1.20.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:edfbfca868cdd6bd8d974a60f8a3682f5565d3f5c99b327640cedd24c4264026", size = 14524670, upload-time = "2026-04-21T17:10:30.737Z" }, - { url = "https://files.pythonhosted.org/packages/f3/47/42c122501bff18eaf1e8f457f5c017933452d8acdc52918a9f59f6812955/mypy-1.20.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e2877a02380adfcdbc69071a0f74d6e9dbbf593c0dc9d174e1f223ffd5281943", size = 13336218, upload-time = "2026-04-21T17:08:44.069Z" }, - { url = "https://files.pythonhosted.org/packages/92/8f/75bbc92f41725fbd585fb17b440b1119b576105df1013622983e18640a93/mypy-1.20.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7488448de6007cd5177c6cea0517ac33b4c0f5ee9b5e9f2be51ce75511a85517", size = 13724906, upload-time = "2026-04-21T17:08:01.02Z" }, - { url = "https://files.pythonhosted.org/packages/a1/32/4c49da27a606167391ff0c39aa955707a00edc500572e562f7c36c08a71f/mypy-1.20.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bb9c2fa06887e21d6a3a868762acb82aec34e2c6fd0174064f27c93ede68ad15", size = 14726046, upload-time = "2026-04-21T17:11:22.354Z" }, - { url = "https://files.pythonhosted.org/packages/7f/fc/4e354a1bd70216359deb0c9c54847ee6b32ef78dfb09f5131ff99b494078/mypy-1.20.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d56a78b646f2e3daa865bc70cd5ec5a46c50045801ca8ff17a0c43abc97e3ee", size = 14955587, upload-time = "2026-04-21T17:12:16.033Z" }, - { url = "https://files.pythonhosted.org/packages/ae/d1/b4ec96b0ecc620a4443570c6e95c867903428cfcde4206518eafdd5880c3/mypy-1.20.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:419413398fe250aae057fd2fe50166b61077083c9b82754c341cf4fd73038f30", size = 14524561, upload-time = "2026-04-21T17:06:27.325Z" }, - { url = "https://files.pythonhosted.org/packages/3a/63/d2c2ff4fa66bc49477d32dfa26e8a167ba803ea6a69c5efb416036909d30/mypy-1.20.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e73c07f23009962885c197ccb9b41356a30cc0e5a1d0c2ea8fd8fb1362d7f924", size = 13363883, upload-time = "2026-04-21T17:11:11.239Z" }, - { url = "https://files.pythonhosted.org/packages/2a/56/983916806bf4eddeaaa2c9230903c3669c6718552a921154e1c5182c701f/mypy-1.20.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c64e5973df366b747646fc98da921f9d6eba9716d57d1db94a83c026a08e0fb", size = 13742945, upload-time = "2026-04-21T17:08:34.181Z" }, - { url = "https://files.pythonhosted.org/packages/19/65/0cd9285ab010ee8214c83d67c6b49417c40d86ce46f1aa109457b5a9b8d7/mypy-1.20.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a65aa591af023864fd08a97da9974e919452cfe19cb146c8a5dc692626445dc", size = 14706163, upload-time = "2026-04-21T17:05:15.51Z" }, - { url = "https://files.pythonhosted.org/packages/94/97/48ff3b297cafcc94d185243a9190836fb1b01c1b0918fff64e941e973cc9/mypy-1.20.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4fef51b01e638974a6e69885687e9bd40c8d1e09a6cd291cca0619625cf1f558", size = 14938677, upload-time = "2026-04-21T17:05:39.562Z" }, - { url = "https://files.pythonhosted.org/packages/4e/a1/9d93a7d0b5859af0ead82b4888b46df6c8797e1bc5e1e262a08518c6d48e/mypy-1.20.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:2de3dcea53babc1c3237a19002bc3d228ce1833278f093b8d619e06e7cc79609", size = 15549002, upload-time = "2026-04-21T17:08:23.107Z" }, - { url = "https://files.pythonhosted.org/packages/00/d2/09a6a10ee1bf0008f6c144d9676f2ca6a12512151b4e0ad0ff6c4fac5337/mypy-1.20.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:52b176444e2e5054dfcbcb8c75b0b719865c96247b37407184bbfca5c353f2c2", size = 14401942, upload-time = "2026-04-21T17:07:31.837Z" }, - { url = "https://files.pythonhosted.org/packages/57/da/9594b75c3c019e805250bed3583bdf4443ff9e6ef08f97e39ae308cb06f2/mypy-1.20.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:688c3312e5dadb573a2c69c82af3a298d43ecf9e6d264e0f95df960b5f6ac19c", size = 15041649, upload-time = "2026-04-21T17:09:34.653Z" }, - { url = "https://files.pythonhosted.org/packages/97/77/f75a65c278e6e8eba2071f7f5a90481891053ecc39878cc444634d892abe/mypy-1.20.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29752dbbf8cc53f89f6ac096d363314333045c257c9c75cbd189ca2de0455744", size = 15864588, upload-time = "2026-04-21T17:11:44.936Z" }, - { url = "https://files.pythonhosted.org/packages/d7/46/1a4e1c66e96c1a3246ddf5403d122ac9b0a8d2b7e65730b9d6533ba7a6d3/mypy-1.20.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:803203d2b6ea644982c644895c2f78b28d0e208bba7b27d9b921e0ec5eb207c6", size = 16093956, upload-time = "2026-04-21T17:10:17.683Z" }, - { url = "https://files.pythonhosted.org/packages/28/9a/f23c163e25b11074188251b0b5a0342625fc1cdb6af604757174fa9acc9b/mypy-1.20.2-py3-none-any.whl", hash = "sha256:a94c5a76ab46c5e6257c7972b6c8cff0574201ca7dc05647e33e795d78680563", size = 2637314, upload-time = "2026-04-21T17:05:54.5Z" }, + { url = "https://files.pythonhosted.org/packages/a4/be/c624d4241484f37dc62839e177ab607a9b8b3e96f0866544ca99e8e41d51/mypy-2.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:94f04929f1c44c35fb0061e912087edaf504acede963a4a7d00680bd089d8531", size = 13936739, upload-time = "2026-08-15T03:03:26.475Z" }, + { url = "https://files.pythonhosted.org/packages/53/84/e3cf72f90dce5960871c82551c8fba6da05fc1018f79be41c047bd126bdd/mypy-2.3.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f5d716048611e85ca9eefb2e1baa5d73ede389b5820ded260ea27c757d667af8", size = 14166460, upload-time = "2026-08-15T03:01:50.565Z" }, + { url = "https://files.pythonhosted.org/packages/4a/ff/6b97d58aa0f79a5ab9b472db1f6d6df1b11a51d74d0c08ab3760d3a613ba/mypy-2.3.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b091a455111214cb5c9d54a57b9618e9a49f9fe2a42e4e1ac86e9d104ed96ce8", size = 15100476, upload-time = "2026-08-15T03:03:12.079Z" }, + { url = "https://files.pythonhosted.org/packages/da/f0/cbb4b7d2ae3ac635f6b4f2d9b04070b8a92edf50da599d3b39e5ed109001/mypy-2.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:df12e20c9efd614738c71b390007ecd0181125afc4ccafca04d78a1d2eed2c01", size = 15347826, upload-time = "2026-08-15T03:03:02.856Z" }, + { url = "https://files.pythonhosted.org/packages/85/da/d6effc4f808a842d91edc22535dc9e799d2ff6e91449168b7f47a0771f54/mypy-2.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a32bbbb940af990d3be0b8af321c7b6815bb1b3b48142fe7459b9cc5f58959ff", size = 14047547, upload-time = "2026-08-15T03:02:57.707Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e6/478229701dab76f26485fc8ff5d6f241f393da22447400bbc56f6946aebe/mypy-2.3.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff715e45b2231a8e85de1d163d1b42791e4d7aab8f5145f85fee1b710b735aff", size = 14216515, upload-time = "2026-08-15T03:01:26.496Z" }, + { url = "https://files.pythonhosted.org/packages/8d/fe/7c42327a3b21e84681f691982cbfe43f334a3685f3b683b72c376476c4fa/mypy-2.3.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:858fc57d3d91fa728e33e7ad71def60fc6272694607b306cd3292db53ae39080", size = 15307789, upload-time = "2026-08-15T03:03:31.62Z" }, + { url = "https://files.pythonhosted.org/packages/59/f4/7e597edbe01b5a56fa958ce541302dcaabfed979966f1dffedbea0ea0fc2/mypy-2.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:851833db876e7b650f93719c74b7879a08e338979c96054fdfc3bfd90a486355", size = 15548831, upload-time = "2026-08-15T03:03:15.55Z" }, + { url = "https://files.pythonhosted.org/packages/de/cf/862010ee800ca9c2bd0c4c0dacf0f092e5411824a09b8f97ad4be8fe250e/mypy-2.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:114dff494000f18bd10d5d95d84b8567b26da60279ecbe838131841df20e635d", size = 13964542, upload-time = "2026-08-15T03:02:21.43Z" }, + { url = "https://files.pythonhosted.org/packages/75/5a/3f3a2107b41e3e92e617e25daaee121413b91e9784bea733131ed4fecc5d/mypy-2.3.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c8637731bb5eee3671eb2c3200827aa3564ed8a9309ecee4d1afe77e6d031bdb", size = 14168922, upload-time = "2026-08-15T03:03:00.351Z" }, + { url = "https://files.pythonhosted.org/packages/8b/41/04dc4fe7e63d7820fa4eff272e95157d30cbea921388f3ab3fe77794cd0b/mypy-2.3.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c80fbc405ed8020f5ff3802dc18cf060197bcdd3fbdd6a26ef2fd34dfdd5226", size = 15244791, upload-time = "2026-08-15T03:02:31.089Z" }, + { url = "https://files.pythonhosted.org/packages/96/fc/c3053b26b9054949285aa868cb6af8c10e7591541cacd79c5dcc06a1fcf9/mypy-2.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:84081f538ce27375045c02e3d7f81bd11d853400621ae245d87ce7b6c420ec74", size = 15501627, upload-time = "2026-08-15T03:03:34.128Z" }, + { url = "https://files.pythonhosted.org/packages/be/c4/42a49d44aeff804edf1b19acce0b49e8bd1a9c57dee9605dd8d980aa43d7/mypy-2.3.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:192abaedf75da1bc0b1cef104927e70ec49c1ef0031cc4825c7ee10a438ed24d", size = 13986778, upload-time = "2026-08-15T03:01:33.69Z" }, + { url = "https://files.pythonhosted.org/packages/45/13/9331fd2dfed7194d66c5304072894a8be3e51e9deda6863c1eceaa35a43d/mypy-2.3.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bf678dffd16efcda2c15cbd30e9ecc0081388e29ea23687a88e686ed92638dc3", size = 14188467, upload-time = "2026-08-15T03:02:40.554Z" }, + { url = "https://files.pythonhosted.org/packages/78/f7/f4a34edab45667c5465855dc585a20e87978ffa8aee711445b7239d120c6/mypy-2.3.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e036f06b41630f4c8a1d48f9ac6aa26acc65f8be089973f5519da643318f03f", size = 15225538, upload-time = "2026-08-15T03:03:09.761Z" }, + { url = "https://files.pythonhosted.org/packages/40/05/534b3590757bd05794f73e07f6666c2a77b8597ffed795c94ce570096aa0/mypy-2.3.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:71af9c8a894e862b58e92abb08e53b05a384a1e5e5d6dc7cda59126211a53d82", size = 15480805, upload-time = "2026-08-15T03:01:41.134Z" }, + { url = "https://files.pythonhosted.org/packages/55/da/bdfba852e2562f599624af5bb7d29e36b0b4f526f2b8bac85efe0dd1803d/mypy-2.3.1-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:3c80cd23d85368bdd9f37d5231dfd97d35bcbf5bf41af96ef3a9b078ad1957f9", size = 7761712, upload-time = "2026-08-15T03:02:36.008Z" }, + { url = "https://files.pythonhosted.org/packages/82/c7/f80f4e46c0b9a00eb5f78a79d49dda8bdf56a5230f7257fb33e76be04da7/mypy-2.3.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e5f1c50bb05b64e2026b52867e8d21106f01313c744a2c4ecc34c90d12e8d6e2", size = 15121308, upload-time = "2026-08-15T03:01:46.053Z" }, + { url = "https://files.pythonhosted.org/packages/5d/74/9b04f17c7074cc5188f02fb63a2ca1d43fedf479e84fe3091c39061a1d7f/mypy-2.3.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:667196b352f4cf304ded4c10f90cfc179263a1acfb3cdcfa984bdfd340d498bc", size = 15536590, upload-time = "2026-08-15T03:01:35.941Z" }, + { url = "https://files.pythonhosted.org/packages/26/04/c837ef6208e567774e2ed1f863f8ba6ec4817b1b6dd426315e5d559b6ec9/mypy-2.3.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b9c53e395c12cad2c6d4b67d5da7c6057638a132d85c08b73646b18f802a0045", size = 16791074, upload-time = "2026-08-15T03:01:31.073Z" }, + { url = "https://files.pythonhosted.org/packages/37/68/48730230afa45192d5bd429a6a2ff24a6f8dedda90fdf2b221792b54518f/mypy-2.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:18162b128c3f9c703cd35f5537446900b0d21a2549aa7a95d21380d2ef643fb0", size = 17069183, upload-time = "2026-08-15T03:02:28.566Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f7/41e7f2d8117fbc7a7587286162ffe2f688984b69c46ed63cf5f2e4fc3bae/mypy-2.3.1-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:6f041a6de52c9217ca125e78ba0a335cb7fd98a1c0580978e49ab2b126f70b57", size = 13990694, upload-time = "2026-08-15T03:03:21.919Z" }, + { url = "https://files.pythonhosted.org/packages/06/85/8f665811a0c8f3bf6fa1d9acd665ec2d97a2bcc453ae68dcd92340941cd6/mypy-2.3.1-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5159ae60f5dbc3a498af5ba8365505808ac8031bc63f9e00304ad545d40bdd9b", size = 14203518, upload-time = "2026-08-15T03:01:48.455Z" }, + { url = "https://files.pythonhosted.org/packages/2d/82/91b866c8546b120bff83b73a439d90d2d63ef3aff113599e6b8e4d566848/mypy-2.3.1-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:47a8a7a0a7f6f6e63995c0ac36fa0c07b127413fdc81f0439b7f3dccafd33561", size = 15220224, upload-time = "2026-08-15T03:01:23.577Z" }, + { url = "https://files.pythonhosted.org/packages/c8/78/c226c99208ee40de7c768369fa533f933afa003dfdc606ff021450724e91/mypy-2.3.1-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:2329c0501293d4e1f33bc15d04d6304d65a1cdda967ee93a05c1e681a3923133", size = 15501512, upload-time = "2026-08-15T03:02:09.453Z" }, + { url = "https://files.pythonhosted.org/packages/a9/e7/7cfb3f106c393979f4cc37ad6c0586044d50401e3c35b0c003e4f3ba6bc9/mypy-2.3.1-cp315-cp315-pyemscripten_2026_5_wasm32.whl", hash = "sha256:bb26deed807bdb0457cf3e3f1cd7c4a1cf9d66864eaf1b4a61e06805d4c6b1f9", size = 7761913, upload-time = "2026-08-15T03:01:55.65Z" }, + { url = "https://files.pythonhosted.org/packages/10/ce/53be21f2d4adfcd26f63f1184a13ed797015ab463853f117e2e11e4d726f/mypy-2.3.1-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:ef0c6335cda9d807f8193d8ff6204a72bc909fa9882aacbca14f43cdb7188306", size = 15118669, upload-time = "2026-08-15T03:02:51.479Z" }, + { url = "https://files.pythonhosted.org/packages/62/43/20de757cd42989d291a17fad607742c4c74e875ce5cea00e5a5225020ac1/mypy-2.3.1-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e598c8c66401d26b150872154a286e6d484cf2789c3bb28a7556806298423021", size = 15545627, upload-time = "2026-08-15T03:03:05.132Z" }, + { url = "https://files.pythonhosted.org/packages/7e/fc/092bdf77ad280eaf501422f0f3b966012b528076cc13e41a774861c907d1/mypy-2.3.1-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eda22fd4efa9dcd39331d1dede9b5b8b8a7fd69af07592e778433da98610d29e", size = 16764157, upload-time = "2026-08-15T03:02:23.958Z" }, + { url = "https://files.pythonhosted.org/packages/94/5c/c94c4d62d909b07f552d0d9356d7acc943825558e602a64822ffa2231536/mypy-2.3.1-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:2a0ba2e57847849fb0d1fcdabb32786d223095ed8bc121dfe322bcdb3d9c46bc", size = 17073258, upload-time = "2026-08-15T03:02:14.573Z" }, + { url = "https://files.pythonhosted.org/packages/8e/41/9675c7a1e78edecfba0b79e587a52594c56e189368261dc7b3a7fffb9527/mypy-2.3.1-py3-none-any.whl", hash = "sha256:6ed5c7e3419083268e5c9258bd1c1ef91af44a9e89374dbcaf37b775716e72eb", size = 2754338, upload-time = "2026-08-15T03:02:53.4Z" }, ] [[package]] @@ -2684,9 +2784,9 @@ wheels = [ [[package]] name = "mysqlclient" -version = "2.2.8" +version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/eb/b0/9df076488cb2e536d40ce6dbd4273c1f20a386e31ffe6e7cb613902b3c2a/mysqlclient-2.2.8.tar.gz", hash = "sha256:8ed20c5615a915da451bb308c7d0306648a4fd9a2809ba95c992690006306199", size = 92287, upload-time = "2026-02-10T10:58:37.405Z" } +sdist = { url = "https://files.pythonhosted.org/packages/ef/8f/b9488795d21a76c1520905feba5afb6233f16510797a28b51f2b2688c93e/mysqlclient-2.3.0.tar.gz", hash = "sha256:bea8294964266f6486f1ca514ccfcdbc54d4fe0d32882b38c1d4594df870be8b", size = 102185, upload-time = "2026-09-14T15:38:30.784Z" } [[package]] name = "narwhals" @@ -2876,7 +2976,6 @@ source = { virtual = "." } dependencies = [ { name = "azure-ai-documentintelligence" }, { name = "babel" }, - { name = "bleach" }, { name = "celery", extra = ["redis"] }, { name = "channels" }, { name = "channels-redis" }, @@ -2933,6 +3032,7 @@ dependencies = [ { name = "tika-client", extra = ["httpx"] }, { name = "torch", version = "2.14.0", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform != 'linux'" }, { name = "torch", version = "2.14.0+cpu", source = { registry = "https://download.pytorch.org/whl/cpu" }, marker = "sys_platform == 'linux'" }, + { name = "turbohtml" }, { name = "watchfiles" }, { name = "whitenoise" }, { name = "whoosh-compat", extra = ["tantivy"] }, @@ -2969,6 +3069,7 @@ dev = [ { name = "pytest-env" }, { name = "pytest-httpx" }, { name = "pytest-mock" }, + { name = "pytest-randomly" }, { name = "pytest-rerunfailures" }, { name = "pytest-sugar" }, { name = "pytest-xdist" }, @@ -2994,6 +3095,7 @@ testing = [ { name = "pytest-env" }, { name = "pytest-httpx" }, { name = "pytest-mock" }, + { name = "pytest-randomly" }, { name = "pytest-rerunfailures" }, { name = "pytest-sugar" }, { name = "pytest-xdist" }, @@ -3009,7 +3111,6 @@ typing = [ { name = "mypy" }, { name = "mypy-baseline" }, { name = "pyrefly" }, - { name = "types-bleach" }, { name = "types-channels" }, { name = "types-colorama" }, { name = "types-dateparser" }, @@ -3026,7 +3127,6 @@ typing = [ requires-dist = [ { name = "azure-ai-documentintelligence", specifier = ">=1.0.2" }, { name = "babel", specifier = ">=2.17" }, - { name = "bleach", specifier = "~=6.4.0" }, { name = "celery", extras = ["redis"], specifier = "~=5.6.2" }, { name = "channels", specifier = "~=4.2" }, { name = "channels-redis", specifier = "~=4.2" }, @@ -3039,8 +3139,8 @@ requires-dist = [ { name = "django-compression-middleware", specifier = "~=0.5.0" }, { name = "django-cors-headers", specifier = "~=4.9.0" }, { name = "django-extensions", specifier = "~=4.1" }, - { name = "django-filter", specifier = "~=25.1" }, - { name = "django-guardian", specifier = ">=3.3.3,<3.5" }, + { name = "django-filter", specifier = ">=25.1,<27.0" }, + { name = "django-guardian", specifier = ">=3.3.3,<3.6" }, { name = "django-multiselectfield", specifier = "~=1.0.1" }, { name = "django-rich", specifier = "~=2.2.0" }, { name = "django-soft-delete", specifier = "~=1.0.18" }, @@ -3050,7 +3150,7 @@ requires-dist = [ { name = "drf-spectacular-sidecar", specifier = ">=2026.7.1,<2026.10" }, { name = "drf-writable-nested", specifier = "~=0.7.1" }, { name = "filelock", specifier = "~=3.32.0" }, - { name = "flower", specifier = ">=2.0.1,<2.2" }, + { name = "flower", specifier = ">=2.0.1,<2.3" }, { name = "gotenberg-client", extras = ["httpx"], specifier = "~=1.0" }, { name = "granian", extras = ["uvloop"], marker = "extra == 'webserver'", specifier = ">=2.7,<2.9" }, { name = "httpx-oauth", specifier = "~=0.17" }, @@ -3064,7 +3164,7 @@ requires-dist = [ { name = "llama-index-embeddings-openai-like", specifier = ">=0.2.2" }, { name = "llama-index-llms-ollama", specifier = ">=0.9.1" }, { name = "llama-index-llms-openai-like", specifier = ">=0.7.1" }, - { name = "mysqlclient", marker = "extra == 'mariadb'", specifier = "~=2.2.7" }, + { name = "mysqlclient", marker = "extra == 'mariadb'", specifier = ">=2.2.7,<2.4" }, { name = "ocrmypdf", extras = ["heic"], specifier = ">=17.12,<17.13" }, { name = "openai", specifier = ">=2.48" }, { name = "pathvalidate", specifier = "~=3.3.1" }, @@ -3075,7 +3175,7 @@ requires-dist = [ { name = "psycopg-c", marker = "python_full_version == '3.12.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra == 'postgres'", url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-trixie-3.3.4/psycopg_c-3.3.4-cp312-cp312-linux_x86_64.whl" }, { name = "psycopg-c", marker = "python_full_version == '3.14.*' and platform_machine == 'x86_64' and sys_platform == 'linux' and extra == 'postgres'", url = "https://github.com/paperless-ngx/builder/releases/download/psycopg-trixie-3.3.4/psycopg_c-3.3.4-cp314-cp314-linux_x86_64.whl" }, { name = "psycopg-c", marker = "(python_full_version < '3.12' and platform_machine == 'aarch64' and extra == 'postgres') or (python_full_version == '3.13.*' and platform_machine == 'aarch64' and extra == 'postgres') or (python_full_version >= '3.15' and platform_machine == 'aarch64' and extra == 'postgres') or (python_full_version < '3.12' and platform_machine == 'x86_64' and extra == 'postgres') or (python_full_version == '3.13.*' and platform_machine == 'x86_64' and extra == 'postgres') or (python_full_version >= '3.15' and platform_machine == 'x86_64' and extra == 'postgres') or (platform_machine != 'aarch64' and platform_machine != 'x86_64' and extra == 'postgres') or (sys_platform != 'linux' and extra == 'postgres')", specifier = "==3.3.4" }, - { name = "psycopg-pool", marker = "extra == 'postgres'", specifier = "==3.3.1" }, + { name = "psycopg-pool", marker = "extra == 'postgres'", specifier = "==3.3.3" }, { name = "python-dateutil", specifier = "~=2.9.0" }, { name = "python-dotenv", specifier = "~=1.2.1" }, { name = "python-gnupg", specifier = "~=0.5.4" }, @@ -3091,6 +3191,7 @@ requires-dist = [ { name = "tantivy", specifier = "~=0.26.0" }, { name = "tika-client", extras = ["httpx"], specifier = "~=1.0" }, { name = "torch", specifier = ">=2.13,<2.15", index = "https://download.pytorch.org/whl/cpu" }, + { name = "turbohtml", specifier = "~=1.10.0" }, { name = "watchfiles", specifier = ">=1.2" }, { name = "whitenoise", specifier = "~=6.11" }, { name = "whoosh-compat", extras = ["tantivy"], specifier = "==0.3" }, @@ -3102,7 +3203,7 @@ provides-extras = ["mariadb", "postgres", "webserver"] dev = [ { name = "daphne" }, { name = "factory-boy", specifier = "~=3.3.1" }, - { name = "faker", specifier = ">=40.36,<40.39" }, + { name = "faker", specifier = ">=40.36,<40.40" }, { name = "imagehash" }, { name = "prek", specifier = ">=0.4.11,<0.6" }, { name = "pytest", specifier = "~=9.1.1" }, @@ -3111,6 +3212,7 @@ dev = [ { name = "pytest-env", specifier = "~=1.7.0" }, { name = "pytest-httpx" }, { name = "pytest-mock", specifier = "~=3.15.1" }, + { name = "pytest-randomly", specifier = "~=5.0.0" }, { name = "pytest-rerunfailures", specifier = "~=16.4" }, { name = "pytest-sugar" }, { name = "pytest-xdist", specifier = "~=3.8.0" }, @@ -3126,7 +3228,7 @@ lint = [ testing = [ { name = "daphne" }, { name = "factory-boy", specifier = "~=3.3.1" }, - { name = "faker", specifier = ">=40.36,<40.39" }, + { name = "faker", specifier = ">=40.36,<40.40" }, { name = "imagehash" }, { name = "pytest", specifier = "~=9.1.1" }, { name = "pytest-cov", specifier = "~=7.1.0" }, @@ -3134,6 +3236,7 @@ testing = [ { name = "pytest-env", specifier = "~=1.7.0" }, { name = "pytest-httpx" }, { name = "pytest-mock", specifier = "~=3.15.1" }, + { name = "pytest-randomly", specifier = "~=5.0.0" }, { name = "pytest-rerunfailures", specifier = "~=16.4" }, { name = "pytest-sugar" }, { name = "pytest-xdist", specifier = "~=3.8.0" }, @@ -3149,7 +3252,6 @@ typing = [ { name = "mypy" }, { name = "mypy-baseline" }, { name = "pyrefly" }, - { name = "types-bleach" }, { name = "types-channels" }, { name = "types-colorama" }, { name = "types-dateparser" }, @@ -3207,40 +3309,45 @@ wheels = [ [[package]] name = "pikepdf" -version = "10.2.0" +version = "10.13.0.post1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "deprecated" }, { name = "lxml" }, { name = "packaging" }, { name = "pillow" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/6e/e9/a1462d6160805ca80c8f4aafc941aaf410a92d0fcc683706e94f499c2fac/pikepdf-10.2.0.tar.gz", hash = "sha256:0f398b0daeb2ffd2358f75c06f1dd47b9ba76f1a77dfe938cccf7080c58227d7", size = 4568506, upload-time = "2026-01-09T22:54:25.847Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/0e/6e74dd213537b71c945743a4b3112dbb430896ad68b8a6ad22e4468455d4/pikepdf-10.13.0.post1.tar.gz", hash = "sha256:4b73f926ebae81f04bf14527af330bd00bb268be767e0f189f7c4c3e4ad7ae0a", size = 4973186, upload-time = "2026-09-05T06:49:20.825Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/10/dc/aa7293763b603a9080ffab7ab87c7b571d637a389e9fb2ba839b864ca283/pikepdf-10.2.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:fb93732127d5183a91300af39e1cda5ded309e8439daec93536331a472b5e190", size = 4727891, upload-time = "2026-01-09T22:53:26.262Z" }, - { url = "https://files.pythonhosted.org/packages/d2/dc/700c31f2c14f94d92483b10e1918390948ed20f6f572d82beb78ac5f94d0/pikepdf-10.2.0-cp311-cp311-macosx_15_0_x86_64.whl", hash = "sha256:ab7bd4629539cf2136a799dc3eaa2dfda59937035a97b0c5e22a7a3a4033cc49", size = 5030510, upload-time = "2026-01-09T22:53:28.023Z" }, - { url = "https://files.pythonhosted.org/packages/23/46/dc63364b05aa1913f2d7480cad62676bfb473065ba4b02d314dfd482f7dd/pikepdf-10.2.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2f5623a5ba456d69dfeb86dc3bb3ec31ec1d120382d8c24804d1b430fce715ea", size = 2439498, upload-time = "2026-01-09T22:53:30.122Z" }, - { url = "https://files.pythonhosted.org/packages/59/b6/1f9b8ca588fd34d9e3df49a80c62016e0b42ce6e580146c46d9728fdb6e8/pikepdf-10.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dec4d12f294df378d122ae441c27c1e76fb0d15b1e9d7374ae70c26604559bab", size = 2666945, upload-time = "2026-01-09T22:53:32.309Z" }, - { url = "https://files.pythonhosted.org/packages/c1/31/b1e61fac59f0b807edde655a821ff83bb041ae1500234c52ed1a2403c44a/pikepdf-10.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c0cebe3235232f1bd3c5f7956218ce92241c94223cb80eba837d372a40c61765", size = 3638109, upload-time = "2026-01-09T22:53:34.144Z" }, - { url = "https://files.pythonhosted.org/packages/02/e9/a99bbf503c9d55e54553edff84ec67cac49d335fc33f3d5516c4746b6340/pikepdf-10.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d0908e845c9140e245ad89a19fdfc6e5a6d82fcb505b8cc2c0ce81439ac4f064", size = 3829538, upload-time = "2026-01-09T22:53:36.341Z" }, - { url = "https://files.pythonhosted.org/packages/73/18/598383493a0f0f0c4eecd09b8fe06dddb9d326a89e2623a134d43e051485/pikepdf-10.2.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:18c35d00baff72bfae82d67028bedb02ea2b208e1af5545c23cd681f2487a279", size = 4737716, upload-time = "2026-01-09T22:53:39.973Z" }, - { url = "https://files.pythonhosted.org/packages/a9/f5/bec04784ba07d44f03b52ea524bcb7409bf7185ee8abec7ae29e3ac9e9ae/pikepdf-10.2.0-cp312-cp312-macosx_15_0_x86_64.whl", hash = "sha256:dd849d033b95de15965c095ebc4d78983099a11bb7b7897801dfaf3cb4083a35", size = 5042152, upload-time = "2026-01-09T22:53:41.808Z" }, - { url = "https://files.pythonhosted.org/packages/38/3e/148b3c8e101c8ac3a33f41e86c5739413575495e471bce45ee228aafcbd6/pikepdf-10.2.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9910efdc7907af3da9e7b2a125a1f67d512165ffa623f62825deeb642669a7a", size = 2445796, upload-time = "2026-01-09T22:53:44.027Z" }, - { url = "https://files.pythonhosted.org/packages/c2/ef/b06f8fd68c34fed631cb8e3520dd955e59987de0eee6960dbc94bed11711/pikepdf-10.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0ec947e6429d7a3306153d32a0142462fdd8f905c5fe08c8a8e8c53b9c28a5c", size = 2693908, upload-time = "2026-01-09T22:53:46.039Z" }, - { url = "https://files.pythonhosted.org/packages/3e/bf/e5c40e9210e2ae8da7cad2cf6ae7d1db3b63a2916e6040645958e9ab4054/pikepdf-10.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b6383219a1cd31400403a69737a4e2a0c5d2a2c4cb9f380bcf45e33e8de802ea", size = 3643423, upload-time = "2026-01-09T22:53:48.333Z" }, - { url = "https://files.pythonhosted.org/packages/d4/1b/969dfb29dc9fd7b82fa7bc065df498e8a3e7ddb81e982140634ee539a8db/pikepdf-10.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:46d2f9ef5a84949bfc11152a323558f94cf85d9d97e9c510c061c7f803028f3f", size = 3854816, upload-time = "2026-01-09T22:53:50.158Z" }, - { url = "https://files.pythonhosted.org/packages/f4/c5/e6f9e3407dd73ec570000a64747ff84e2f57b06b0477d1da6eaca5038162/pikepdf-10.2.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:09ff28d1de7fc7711a7ef8dfc40396d9243b64ee24c37cd1ab2a9f9827895caa", size = 4737680, upload-time = "2026-01-09T22:53:54.905Z" }, - { url = "https://files.pythonhosted.org/packages/eb/de/dffb785235ac2d930db86b215c1848d7258e625fa1949dd0633f8b72ab0a/pikepdf-10.2.0-cp313-cp313-macosx_15_0_x86_64.whl", hash = "sha256:62348b66e1401a4db0c64976b72dd74bb1a9eb3a33007a661500f4f8a64436bd", size = 5042150, upload-time = "2026-01-09T22:53:57.722Z" }, - { url = "https://files.pythonhosted.org/packages/1a/f0/4d883f57304d98650ade30a8c73fe593582d9afd9a7dada1f5f3f4cce362/pikepdf-10.2.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b9e91780cb9ea3c6a350ffbcf03d5d95c30084d238afbd1d4b927cdb9e3649d", size = 2445446, upload-time = "2026-01-09T22:53:59.993Z" }, - { url = "https://files.pythonhosted.org/packages/62/65/ffe2555812a152d616accacea7c1c617c27a75590379ea7d9cc3a26bd92d/pikepdf-10.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52360a49a22e9353ec9a08ff5713cec8aacaf3ef960c704bc0a89ca8f050bdad", size = 2696242, upload-time = "2026-01-09T22:54:01.687Z" }, - { url = "https://files.pythonhosted.org/packages/ed/8c/2f937b0e2867cd48b523122e08753571fc9847978e239d7b5db9bd46879c/pikepdf-10.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4ba4c1046939eb22c24c396deb37f8e0500caaa66b73114be55377d5554b4167", size = 3643730, upload-time = "2026-01-09T22:54:04.177Z" }, - { url = "https://files.pythonhosted.org/packages/2e/17/f2919e4085c399e938bb945ea712dea70b3849e17cae6403f0cc1100e9ef/pikepdf-10.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3dcd8957a08e0a47f7a138904dca8cf73962fa17a096a47cd8bc33eb83a4f0a7", size = 3856645, upload-time = "2026-01-09T22:54:07.887Z" }, - { url = "https://files.pythonhosted.org/packages/1d/6e/846902abe8286d3b4ab70893e9ffbeec99aadd93ba1536cf471b222bb910/pikepdf-10.2.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:194c9a81ecb49e425a5cd5162621270b5e42cf05709d87eac018bd6f9ce98f80", size = 4733930, upload-time = "2026-01-09T22:54:11.931Z" }, - { url = "https://files.pythonhosted.org/packages/8b/6d/abdbb794d2a512d4e828ef2014cc47ca263ad3fbd1b65f25f791b9c0bb1e/pikepdf-10.2.0-cp314-cp314-macosx_15_0_x86_64.whl", hash = "sha256:5adcf87dbfff4e1cd0a850db487274f474c94a6bf6347f3842c53da8d0eaa8df", size = 5042477, upload-time = "2026-01-09T22:54:13.708Z" }, - { url = "https://files.pythonhosted.org/packages/52/6c/6c42694fe1574a37aa2a40b4ba29a6713b4226436155ef7aa0bef649c117/pikepdf-10.2.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5de3cecbb35c4bc651e9326932974217be1d450d4a9840d77a592062eb507e27", size = 2448419, upload-time = "2026-01-09T22:54:15.6Z" }, - { url = "https://files.pythonhosted.org/packages/45/f4/aca3286aa37ace581afc8e3e0644a0cc55b9f9ceb31f28219d12ca11536c/pikepdf-10.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:77868fd25182a45a4f3dec3c461aea8c696ef9565894c5cde4394bc8c32fb069", size = 2697600, upload-time = "2026-01-09T22:54:18.123Z" }, - { url = "https://files.pythonhosted.org/packages/eb/a6/9135f9f0189634de61410573a0712d849e0157e3902e6b867339cc7dbf1b/pikepdf-10.2.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a9a10e15e2f4d0bba36a2b4328342d00eff1a5a31399e1d1a93483c70d3c2b0e", size = 3647720, upload-time = "2026-01-09T22:54:20.158Z" }, - { url = "https://files.pythonhosted.org/packages/83/60/f282077773a3321fad4cbfb16fe73ee3f8dd93b408df65c24779f12227c5/pikepdf-10.2.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a8f80ecf00fb15a760f218432a1046e7797cd14eaa6ccb52c8814ae8852745d8", size = 3859133, upload-time = "2026-01-09T22:54:22.358Z" }, + { url = "https://files.pythonhosted.org/packages/4d/c1/48c9c0ed2ed88ca5d9cdd7f16075385a05a812d781b61bfa7f2d5182b247/pikepdf-10.13.0.post1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:98a7305e330f797da02b543d3ad57a134c4a14c6ec6f8d86d91aa9dd130c425b", size = 1846300, upload-time = "2026-09-05T06:48:11.563Z" }, + { url = "https://files.pythonhosted.org/packages/e9/20/484a3a61664132dc8c4bd97e0b8291fa79f9f4a3b1e1ffd5b67ac41ed98a/pikepdf-10.13.0.post1-cp311-cp311-macosx_15_0_x86_64.whl", hash = "sha256:f3dedd02795626f17ee42d5c02ec4ec94e28aa47046ef430d4478454a8fbd07f", size = 1944179, upload-time = "2026-09-05T06:48:14.01Z" }, + { url = "https://files.pythonhosted.org/packages/66/38/797df7d60352fc5ec3943c425acaa15d032cd2e673b516861f449536db57/pikepdf-10.13.0.post1-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7ba09ef5a5f26e38ee558d2a08223fee08a5ef1868962ae2d8590d4de3c8c92f", size = 2105054, upload-time = "2026-09-05T06:48:15.547Z" }, + { url = "https://files.pythonhosted.org/packages/a8/8a/1f003558c5c05cecf182af775839ad674fe23e06b314d0219b9d8422680a/pikepdf-10.13.0.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:365b94f2be7e2857c6cb5445b56dc52dc7417ba9f06c8a4282d9f521cb2d0fb8", size = 2308617, upload-time = "2026-09-05T06:48:17.216Z" }, + { url = "https://files.pythonhosted.org/packages/55/5b/0e7193ee8c7ca5b15f478918033a0fa78917b01249e1d4a4a65754644cd3/pikepdf-10.13.0.post1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:f515a31c76cce043bbb7b781e77a343a4e26fa8f520ba337d30ddea0f7a0ce50", size = 3742337, upload-time = "2026-09-05T06:48:18.971Z" }, + { url = "https://files.pythonhosted.org/packages/b6/f5/519e8728c04d05dcbd44d03b266a3f6acf8de3a0a6ed5ec0fa39ececddd7/pikepdf-10.13.0.post1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b63577c44fedf7ed6b971076f7c7ed0ff95a8bac627ac93b79e8b542214861a7", size = 3952988, upload-time = "2026-09-05T06:48:20.984Z" }, + { url = "https://files.pythonhosted.org/packages/6c/a5/598e72c72ed46046e297f15763dffda88424870724a4a22f599b815cb774/pikepdf-10.13.0.post1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2c6e83f8a1828ec79cdec4df8cc07209eaf10ed7e4f5a90a7356b254bacc07d5", size = 1845515, upload-time = "2026-09-05T06:48:24.477Z" }, + { url = "https://files.pythonhosted.org/packages/f9/b3/29691a5e9ee915357c081730d8cc02f35f19b4155857556fbe562a4d83ba/pikepdf-10.13.0.post1-cp312-cp312-macosx_15_0_x86_64.whl", hash = "sha256:f2463f650efab46905b9e279f5c776faf96c65bb45c1acf9f2de0e8a6eec5fb7", size = 1944755, upload-time = "2026-09-05T06:48:26.332Z" }, + { url = "https://files.pythonhosted.org/packages/04/4e/201f553b9405424d7aefa3be997f0a1c787ac3a089a844f1fc42f412fe0e/pikepdf-10.13.0.post1-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9613505f5b22203465d4224a3fd8cf69876ce8278442c6478ac6849f54724a30", size = 2102202, upload-time = "2026-09-05T06:48:28.816Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a3/bd7e7b321e8bfe4b8530da57d12c557a259bbd4b40e739960a1f2ea507cb/pikepdf-10.13.0.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01f80ca046d984752cf6f08093debc193884bee91c01c104aa0236767711a20f", size = 2307194, upload-time = "2026-09-05T06:48:31.558Z" }, + { url = "https://files.pythonhosted.org/packages/23/b0/ca630f56015dfc6c4c8c81fdeb5f5099e7fca354f54a41dfe7f1382a5316/pikepdf-10.13.0.post1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1f76fcbe5d86f2ae6f231ba542cd04793d4c89e75bd5f62526b7412926ff2100", size = 3740157, upload-time = "2026-09-05T06:48:33.285Z" }, + { url = "https://files.pythonhosted.org/packages/be/48/7a84adc2fd14ec35e4b3d007575914de1ce0518e8c69b35ebee62fa2b142/pikepdf-10.13.0.post1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:092a9bf15739e931ecab15ec3baee5d9629dad90ea4e42b779f6b439d2d1e462", size = 3951601, upload-time = "2026-09-05T06:48:35.468Z" }, + { url = "https://files.pythonhosted.org/packages/10/f4/3636368760840cbc3ee512330024dd6f518d583c1bbbb1b551ca8e18f5e8/pikepdf-10.13.0.post1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:87141ada970386ff6640db54f0bda734d3bde7960d3ba04a76768b48e25028ca", size = 1845524, upload-time = "2026-09-05T06:48:39.309Z" }, + { url = "https://files.pythonhosted.org/packages/ce/dc/7bbfba253a0394a237b81be371a64f904f99636d579ec78ef5d92025fd2d/pikepdf-10.13.0.post1-cp313-cp313-macosx_15_0_x86_64.whl", hash = "sha256:55e53b4d8a4b1700f686f76e3a68411e421e962a4c8b1b90d00aab3f3e494a55", size = 1944829, upload-time = "2026-09-05T06:48:41.601Z" }, + { url = "https://files.pythonhosted.org/packages/b3/a3/10367bfb93501a151cbb96b6973f7c049fef04040aea35cf6cedf579c3e4/pikepdf-10.13.0.post1-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8fb8f82dc43056a4b4f891e78ee1db4e3ced75ba3e87b836f8e28c8771228928", size = 2102269, upload-time = "2026-09-05T06:48:43.222Z" }, + { url = "https://files.pythonhosted.org/packages/2d/bd/a68b5d9b4aef4d4b9c374cfdfd941623f52303d31adea13554568df42abe/pikepdf-10.13.0.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d3b58ccb30b93ba400e6a6a83315b4830eea49f6f19e18d78241fe6b1c49fec2", size = 2307160, upload-time = "2026-09-05T06:48:45.192Z" }, + { url = "https://files.pythonhosted.org/packages/9a/59/47bd86d9e338d301c28416d52d0e154a0d6322cf6b957c9df5f3d7828aa2/pikepdf-10.13.0.post1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6b038cd5bcbb6c1952bcc271695eaf24c4199d72e45606ee5e467f837760820e", size = 3739722, upload-time = "2026-09-05T06:48:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/49/40/87fb6dddc9dce110429c72449e942174fd500f6fc4c9ff518a6b73057aa7/pikepdf-10.13.0.post1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b7b0cbb135de32ec3f41651a08ab294e3c18ae9fec32516a48d27e64a53a47f0", size = 3951549, upload-time = "2026-09-05T06:48:49.263Z" }, + { url = "https://files.pythonhosted.org/packages/14/0e/86897bf5325824c1f2d9d8be89839baf11011b5392d92620cb0273fb9af5/pikepdf-10.13.0.post1-cp314-abi3-macosx_14_0_arm64.whl", hash = "sha256:51fae4a4a3c6549aa4c405896ff7010f3e43e0c4f407c0bcee071ef13d271202", size = 1845245, upload-time = "2026-09-05T06:48:53.575Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ed/923846b7511627f8564d09345e083f14674dfb193de92d27f1cc4650602e/pikepdf-10.13.0.post1-cp314-abi3-macosx_15_0_x86_64.whl", hash = "sha256:8cb976331cb8b03ec3465e06d9e7a3eadbadb7e622be888e70f918ac732a105e", size = 1943659, upload-time = "2026-09-05T06:48:55.823Z" }, + { url = "https://files.pythonhosted.org/packages/58/bb/fcb09ad4bd227bbb37a7e5b24de86f9ce9d462aa0c7ee18781899bfa378a/pikepdf-10.13.0.post1-cp314-abi3-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3e18d5a009bbe5f3ab18f916fb9e28f0c5b0d920736e3a85cc10c627ec633596", size = 2099423, upload-time = "2026-09-05T06:48:57.671Z" }, + { url = "https://files.pythonhosted.org/packages/3b/c9/707f9ba96727fa366a650237e46f0e20a73b244592eb6b97a49e401e2b43/pikepdf-10.13.0.post1-cp314-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:414f42c83e5e6029870de1a988625dafc95781ebff10e15d82caeb5e69a83c9c", size = 2303539, upload-time = "2026-09-05T06:48:59.506Z" }, + { url = "https://files.pythonhosted.org/packages/22/15/79a2ccc354514a1321a161867a011fc917be158fc01a88da8c78ad18399d/pikepdf-10.13.0.post1-cp314-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:f0eb89f06cad9231b9db54d81a22592b03b63924824a6b850febd2b75daa6546", size = 3737772, upload-time = "2026-09-05T06:49:01.245Z" }, + { url = "https://files.pythonhosted.org/packages/6e/85/a17440c2de64da71dc012b42e644b30ee4d98eb540c14d4e9f3538b73a9e/pikepdf-10.13.0.post1-cp314-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:544f1be1b1e5630a79cd182a8663c439504099eb9eae0d342a50173d9825bdf3", size = 3948342, upload-time = "2026-09-05T06:49:03.27Z" }, + { url = "https://files.pythonhosted.org/packages/e9/65/15a796a3cf9fb17d41acc1ab6719e7d3dcdf1260e76909d0dd32ecc97ba7/pikepdf-10.13.0.post1-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:ef4ed47d40aa44deb063feb4a88e8bcf1c8fa0183ce526dc4295f7cbdb1292f8", size = 1853638, upload-time = "2026-09-05T06:49:07.184Z" }, + { url = "https://files.pythonhosted.org/packages/aa/f3/5d49a511fd13b59b94c5ad673695d331fce5d2846ab1501646c2a3b35b5f/pikepdf-10.13.0.post1-cp314-cp314t-macosx_15_0_x86_64.whl", hash = "sha256:571efcd1d54e0dd817973c76c253feb6fb758c93bb0c16a893cc68f2a178d404", size = 1951768, upload-time = "2026-09-05T06:49:09.048Z" }, + { url = "https://files.pythonhosted.org/packages/06/de/f6bbd9653695f6e2ed3494a439f11f3a89450c004fe9bf8ee583201ea759/pikepdf-10.13.0.post1-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2db9a18074ba112e7c517e8c21dfd8894cc13b8a37ccf49a5841192170fb68eb", size = 2107137, upload-time = "2026-09-05T06:49:10.788Z" }, + { url = "https://files.pythonhosted.org/packages/c0/aa/43b355681f05ea0b5808a26cba9e8e764686fa8dcebe0875db612664de40/pikepdf-10.13.0.post1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7962a75cf22d0d683b49ab19b8966e94dc7014d9aa6806f3c0d2b37fb9ae607", size = 2310991, upload-time = "2026-09-05T06:49:12.455Z" }, + { url = "https://files.pythonhosted.org/packages/a9/46/77574e9c4bded01afd7a3fe538f5432e396c3772c9bc1eab5d287aed00df/pikepdf-10.13.0.post1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b948e11f7dd3710f939194f00b4d75b0df87a30d53b31414128768ac25da77d8", size = 3744358, upload-time = "2026-09-05T06:49:14.428Z" }, + { url = "https://files.pythonhosted.org/packages/89/a8/4857df72cf4773553c2e6a82f93ee5e98c02f1c4e4877379e84d27384982/pikepdf-10.13.0.post1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:99f6afccd6119233e7133bd4c2ade48461de3ddd4269cc28a4f90cdf7c1372f5", size = 3955964, upload-time = "2026-09-05T06:49:16.656Z" }, ] [[package]] @@ -3392,16 +3499,16 @@ wheels = [ [[package]] name = "prek" -version = "0.5.2" +version = "0.5.3" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b1/05/4402641f168dd862d27592cbd4c5fb171d119c15611e5dbef3df857e8932/prek-0.5.2.tar.gz", hash = "sha256:a90ea4eeba35c6081bad29775f6a49fcc33fb80372424fce64c7a9c5774e8204", size = 549442, upload-time = "2026-09-02T17:49:27.241Z" } +sdist = { url = "https://files.pythonhosted.org/packages/54/93/d1e5afc996b9fde04d71c37fd28bdd404e54daf1da6c76b883c5cdbdb411/prek-0.5.3.tar.gz", hash = "sha256:06d88bed9a5b2886cd3796957e4cecf05fa9b06724b625df31dbf0a48ff2330c", size = 551929, upload-time = "2026-09-13T08:38:37.823Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/6e/25/cf9c6064fea82ba6f4801dc3be650cc86eae3d9951e2a6fb28b21cbfa156/prek-0.5.2-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:40d488a48de3f47f48bd4911ee5dec25e615f992b4cde821e9b50d40c615b39e", size = 5982622, upload-time = "2026-09-02T17:49:10.111Z" }, - { url = "https://files.pythonhosted.org/packages/cb/d9/9772fd4d4023c34780d957f407d9437e2a16d6bef77e3da9fa4374cd75bb/prek-0.5.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:0eb3b812fc13bc5c05cfc1a8b469f9665a02f845753c3759ad7aca50af707afb", size = 5525662, upload-time = "2026-09-02T17:49:12.336Z" }, - { url = "https://files.pythonhosted.org/packages/3b/19/be25a56ab243f2e5c9333c38bad33bddffec92ea8a25e34248eba6e00ac8/prek-0.5.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:c0219d1e694a962e3b3ae98f42f53065d2e2856719caee88578d24b35ea74cad", size = 5826109, upload-time = "2026-09-02T17:49:13.994Z" }, - { url = "https://files.pythonhosted.org/packages/1e/bd/a4a5a3022915b8e1768df9b2d8744f3e7c4b3bb7cdbe697612cc96054169/prek-0.5.2-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0e22f11c1fb5df89acf5cbde78f6139edf2c30a205bea5a5d4a094366dcdbda", size = 6201473, upload-time = "2026-09-02T17:49:16.156Z" }, - { url = "https://files.pythonhosted.org/packages/f6/fb/2e5f8adbee718f15333a113872104c4b3d25ecce423dd7117cfcd28a25fe/prek-0.5.2-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:1d52de8428d5eef7c8c0fd64efd7d31210d13924fd36a02975d462675715aeb7", size = 5829166, upload-time = "2026-09-02T17:49:17.997Z" }, - { url = "https://files.pythonhosted.org/packages/44/71/c798d54741cc8f345b211e453dda9599546fb213c3593eb711cb6c710bbf/prek-0.5.2-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:86aebcd8ab831036fc3ac9b15275412403e21041da031e6c9f1547888843e5c6", size = 6318980, upload-time = "2026-09-02T17:49:21.145Z" }, + { url = "https://files.pythonhosted.org/packages/db/5d/8731dc49cb5424d37424db3ea2f3ff6a0b20caa971db72796e822ce48b24/prek-0.5.3-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:2d7240c5e6a996ef5bebe5d57d43049803e41c225b343681c020bf0c87dab2b2", size = 6003518, upload-time = "2026-09-13T08:38:20.584Z" }, + { url = "https://files.pythonhosted.org/packages/51/45/ca413aefb3ea2411bbf0adb6eebfac1e9bfc5ac7679dbe26336fc651c347/prek-0.5.3-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1dd6df8235ca361dbbeec89c305ccb41a138088a2fc548484b4cb89f66a80d20", size = 5538754, upload-time = "2026-09-13T08:38:23.004Z" }, + { url = "https://files.pythonhosted.org/packages/dc/92/874d58ba40d2fe7cfec2789ae8bf415f3751666ad5c59928821fe53c3c01/prek-0.5.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.musllinux_1_1_aarch64.whl", hash = "sha256:61ff791bb850ba52cc0d86576498df7e1bd1e9ed20df63dae113a4a6aa495e19", size = 5841568, upload-time = "2026-09-13T08:38:25.008Z" }, + { url = "https://files.pythonhosted.org/packages/8f/40/167037b8eef75f6f036c60ff7e93f42defebb7c3733677e2f30e5a479257/prek-0.5.3-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a863379a2668c4ef079d820ffd5b14073145380dfbe0e70fef498dc73c568f86", size = 6226960, upload-time = "2026-09-13T08:38:26.788Z" }, + { url = "https://files.pythonhosted.org/packages/42/9a/bfcd3c1fe1fdefee8dc144a92c4b0b93b59f31c7df60ee1720c49223a90a/prek-0.5.3-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:086d1b77557f0a089568dc5b93c22ccd793351524f3eeb29d36781421a350e72", size = 5854832, upload-time = "2026-09-13T08:38:28.954Z" }, + { url = "https://files.pythonhosted.org/packages/15/41/1450b995b18bbf0d8ab65016860198052baad5c79c231151fa1dcca4a2de/prek-0.5.3-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:4f09b947255124e9591a7f7ef16eb5340a36ba94a275d788d7ea804fab35f0e2", size = 6343055, upload-time = "2026-09-13T08:38:30.96Z" }, ] [[package]] @@ -3590,22 +3697,16 @@ wheels = [ [[package]] name = "psycopg-pool" -version = "3.3.1" +version = "3.3.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/90/82/7a23d26039827ecd4ebe93905651029ddd307c5182ad59296dfb6f67b528/psycopg_pool-3.3.1.tar.gz", hash = "sha256:b10b10b7a175d5cc1592147dc5b7eec8a9e0834eb3ed2c4a92c858e2f51eb63c", size = 31661, upload-time = "2026-05-01T23:31:59.809Z" } +sdist = { url = "https://files.pythonhosted.org/packages/74/5e/c0664b968b102ff68b811d999c728546c48d5c1eec03e3bbaf88c0cb4472/psycopg_pool-3.3.3.tar.gz", hash = "sha256:df87b5d9d0ad7db37f6cdad4fa8ce113d250f5997f6db38e9a99192fb67f9e1d", size = 32006, upload-time = "2026-09-22T15:53:24.947Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/37/ed/89c2c620af0e1660354cd8aabf9f5b21f911597ce22acb37c805d6c86bc8/psycopg_pool-3.3.1-py3-none-any.whl", hash = "sha256:2af5b432941c4c9ad5c87b3fa410aec910ec8f7c122855897983a06c45f2e4b5", size = 40023, upload-time = "2026-05-01T23:31:53.136Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b4/452c6607a0f479465cd8a9b0d9956919fcb150050c1f83f9f11e6b8ee8dc/psycopg_pool-3.3.3-py3-none-any.whl", hash = "sha256:9b9cd6a4fcec47a410f7e82d408540e7f77b478509e91b44c1a5457a13e5ff37", size = 40304, upload-time = "2026-09-22T15:53:23.712Z" }, ] -[[package]] -name = "py-ubjson" -version = "0.16.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1d/c7/28220d37e041fe1df03e857fe48f768dcd30cd151480bf6f00da8713214a/py-ubjson-0.16.1.tar.gz", hash = "sha256:b9bfb8695a1c7e3632e800fb83c943bf67ed45ddd87cd0344851610c69a5a482", size = 50316, upload-time = "2020-04-18T15:05:57.698Z" } - [[package]] name = "pyasn1" version = "0.6.4" @@ -3743,11 +3844,11 @@ wheels = [ [[package]] name = "pyjwt" -version = "2.13.0" +version = "2.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3b/81/58d0ac84e1ef3a3843791d6954d94c0b33d526c75eeb1efbce9d0a4c4077/pyjwt-2.13.0.tar.gz", hash = "sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423", size = 107515, upload-time = "2026-05-21T19:54:36.618Z" } +sdist = { url = "https://files.pythonhosted.org/packages/02/a5/5197bfd06417837ac079921c66fa6393f1dea3557272a263cebfef69e432/pyjwt-2.15.0.tar.gz", hash = "sha256:b11c5f9791d7bf51c2b39a81ed669f6b2dbbd669df2942f6c60167e9e3d1abe4", size = 120513, upload-time = "2026-09-23T16:56:00.689Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a3/5e/ecf12fdb62546d64385c158514e9b2b671f7832108ef2ecd2020ce0af2d1/pyjwt-2.13.0-py3-none-any.whl", hash = "sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728", size = 31274, upload-time = "2026-05-21T19:54:35.362Z" }, + { url = "https://files.pythonhosted.org/packages/e8/55/40e45bf052ee8ee12a4dfd785519660f8effa7b065442b91646ec6828619/pyjwt-2.15.0-py3-none-any.whl", hash = "sha256:7a3742debf6b879e912dbb9819ceec1594be812452b78c5f2e2dfc56564954f8", size = 33680, upload-time = "2026-09-23T16:55:59.241Z" }, ] [package.optional-dependencies] @@ -3807,16 +3908,18 @@ wheels = [ [[package]] name = "pyrefly" -version = "0.62.0" +version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/ad/8874ed25781e7dd561c6d75fb4a7becf10a18d75b074f25b845cc334f781/pyrefly-0.62.0.tar.gz", hash = "sha256:da1fbe1075dc1e6c8e3134e9370b0a0e7a296061d782cca5bf83dbb8e4c10d7c", size = 5537672, upload-time = "2026-04-20T17:12:15.718Z" } +sdist = { url = "https://files.pythonhosted.org/packages/4c/7e/082cc1b392318bacfbc087732524f3e089e9e7fe45b7645c4649b6f1f1e9/pyrefly-1.3.1.tar.gz", hash = "sha256:b774f1dfac82867fc16fe2175d80a630e2a72a6835d5b7e492568d6bfb6b05e7", size = 6679145, upload-time = "2026-09-15T05:09:34.49Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/ea/09bd9da7d5df294db800312fb415be2fefbaa5594178e9e49f44fa071aea/pyrefly-0.62.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9d78ec4f126dee1fa76215b193b964490ce10e62a32d2787a72c51623658b803", size = 13020414, upload-time = "2026-04-20T17:11:43.617Z" }, - { url = "https://files.pythonhosted.org/packages/4b/f0/f84afac4f220c4c8c801b779ee2ff28ad3f7731f4283c2e1b6ee9012e8c2/pyrefly-0.62.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2a41a34902d20756264486f9e309f22633d100261bd960feea6e858a098d985d", size = 12515659, upload-time = "2026-04-20T17:11:46.59Z" }, - { url = "https://files.pythonhosted.org/packages/40/0b/620c39cefa9ae1b25ee7a2da9d8d3c278b095649cb8435c5e01ea64f7c17/pyrefly-0.62.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4666c6b65aea662e5f77b64dc91c091b7ea5cede6aa66c0f4cbae26480403583", size = 36228332, upload-time = "2026-04-20T17:11:50.523Z" }, - { url = "https://files.pythonhosted.org/packages/2d/fb/47b8b76438c12761e509a3666cd5a99d4af7f21976ba8385feb475cbfe30/pyrefly-0.62.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1aefab798f47d37c13ded791192fee9b39a6d2b12e31f38ae06a1f80c4b26e22", size = 38995741, upload-time = "2026-04-20T17:11:54.702Z" }, - { url = "https://files.pythonhosted.org/packages/55/d2/03bd17673f61147cd5609cd7d6a1455eeccc17a07a7e141ed9931b0c42c0/pyrefly-0.62.0-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8fa986b50d56740da1d7ae7c660a505143cb9d286fa98cc7e5f4a759cc6eaa5d", size = 37205321, upload-time = "2026-04-20T17:11:58.9Z" }, - { url = "https://files.pythonhosted.org/packages/75/14/20ba7b7f2d182f9b7c1e24a3041dac9b5730ae28cfe1614a2c98706650f2/pyrefly-0.62.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32e9b175805c82ffb967e4708f4910bace7e1a12736907380cc9afdbaabb0efb", size = 41786834, upload-time = "2026-04-20T17:12:03.221Z" }, + { url = "https://files.pythonhosted.org/packages/6b/bc/f09b5bd7eed796349bd93627aa2c3086df7ed0a114dafc3d2b2841599ee7/pyrefly-1.3.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:0a2a7dfed824fb066aa8a7c8d856c152b98e998fb84b954d5f892fb9834c0bd1", size = 15090117, upload-time = "2026-09-15T05:08:58.477Z" }, + { url = "https://files.pythonhosted.org/packages/78/24/a31e7de8e0f310c9f0753826d0df8b6a8ff86793941a6bd88ba24b735633/pyrefly-1.3.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:37a1a1fb41e7190fe3964a877875dd809d6ee2887809e2c3d6e5f25a69805bfd", size = 14430773, upload-time = "2026-09-15T05:09:01.67Z" }, + { url = "https://files.pythonhosted.org/packages/75/e1/022352beb186f36d6213a95a975c42676ee418ff5e730629378d25564c5e/pyrefly-1.3.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:45b7650bc651a5a784701f2fb4f579da9a421c4d1b5fd91f9048f4529e46093c", size = 14877762, upload-time = "2026-09-15T05:09:04.767Z" }, + { url = "https://files.pythonhosted.org/packages/19/2c/d62a1b445aad1fd46375b83393b8a67da53883aeeba73d269ce71b3e8fd1/pyrefly-1.3.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ad57f38bc73679c14a5f62995a2bd3bc43649b7270c858487e2eab78a6f95362", size = 16118225, upload-time = "2026-09-15T05:09:07.828Z" }, + { url = "https://files.pythonhosted.org/packages/32/67/3c3fa8a13e3ce8d8322ffb3627255a41a52261f17793e1a24e9214f10857/pyrefly-1.3.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3506b1252e9f5d755d0693c5a46d46b85579d36534f6e22a41eb8e098d0dde90", size = 16051197, upload-time = "2026-09-15T05:09:10.81Z" }, + { url = "https://files.pythonhosted.org/packages/19/d1/84f81b9e32288b5d11c75e006f67e0f6b78b85da575673bd1a21524c8172/pyrefly-1.3.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39d5a17c1ad655e5f93a6e8e0be90b8db28c6015fe07d6ed4e054891c9e14ef8", size = 15440062, upload-time = "2026-09-15T05:09:14.641Z" }, + { url = "https://files.pythonhosted.org/packages/46/3c/2aa0c5ad6a2957a728bb38cfab70d1e9cafad21b0b1c1d92df74a3cf22bd/pyrefly-1.3.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c61e9dcf888beb81ca0e0c60ea4442640fdcf2f1f65bfe3d9f5d89b85516eb03", size = 14898534, upload-time = "2026-09-15T05:09:17.823Z" }, + { url = "https://files.pythonhosted.org/packages/03/5d/2974f249fb2e285f966485719d977c5a2248cc4866403af94d935775ff15/pyrefly-1.3.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a78eed1c53f37807f0e2997be8edbe833b91eb9915f2cb553a1bdcd599e7105c", size = 15477758, upload-time = "2026-09-15T05:09:20.964Z" }, ] [[package]] @@ -3911,17 +4014,29 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5a/cc/06253936f4a7fa2e0f48dfe6d851d9c56df896a9ab09ac019d70b760619c/pytest_mock-3.15.1-py3-none-any.whl", hash = "sha256:0a25e2eb88fe5168d535041d09a4529a188176ae608a6d249ee65abc0949630d", size = 10095, upload-time = "2025-09-16T16:37:25.734Z" }, ] +[[package]] +name = "pytest-randomly" +version = "5.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/01/3b/6a40e1b9d925651e601e056a97f60d8a1daeddeac03d5609be60cb4362ce/pytest_randomly-5.0.0.tar.gz", hash = "sha256:e9c575a5873ef168ddbe340ed9e97ce9edb4492ccc821e4b2ac6bb1f0ed515d2", size = 8542, upload-time = "2026-09-01T22:34:20.441Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/b4/47e939285caad9a623d021512912ac08dc92a467ad075d179f43729d2934/pytest_randomly-5.0.0-py3-none-any.whl", hash = "sha256:8a0d4703115c0c25b38b6e129fc16b1947b9643ff26a41bc1d185d7e5a7689c1", size = 8920, upload-time = "2026-09-01T22:34:19.227Z" }, +] + [[package]] name = "pytest-rerunfailures" -version = "16.6.1" +version = "16.7" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "packaging" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/20/ce/065fde089d5a7f46fe8372c3f340c7aaa8708734d2e8ae3032f0c29a4b1d/pytest_rerunfailures-16.6.1.tar.gz", hash = "sha256:20ac38d31f9319c4e8f43fe0d0e9c22755508e8e7987a88de6d7fd93fc6bdabb", size = 47719, upload-time = "2026-09-03T06:50:07.893Z" } +sdist = { url = "https://files.pythonhosted.org/packages/d1/b0/6b5337f9d59b26b0069ea3d5e863c31dc04b69e51bbfb1cf2ea6328fba87/pytest_rerunfailures-16.7.tar.gz", hash = "sha256:6956ddfb65ca1d07e7e3d99e2c5359d82300f4cb062e6049563bd2c106f72d5c", size = 59666, upload-time = "2026-09-17T07:08:48.871Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0b/0d/4da1860f933e271569405fd8adef7f3e7f1c2bd1b544d2ee83a8e0acf1d2/pytest_rerunfailures-16.6.1-py3-none-any.whl", hash = "sha256:0c38d314a0a7e32795f2dbdeeb2b3d141ecf3d3abe10c8c32dae223d45ac7b3d", size = 21035, upload-time = "2026-09-03T06:50:06.601Z" }, + { url = "https://files.pythonhosted.org/packages/c1/d3/07ea35102cf2020ddaaac368d2a6f0bcc63d6523fb8918805bac3eb8b98f/pytest_rerunfailures-16.7-py3-none-any.whl", hash = "sha256:edf1886209c2b7dafe35b5bf1708d6ec40ccf6c6b357f0f02807efcec0204c99", size = 23952, upload-time = "2026-09-17T07:08:47.635Z" }, ] [[package]] @@ -4446,24 +4561,24 @@ wheels = [ [[package]] name = "ruff" -version = "0.16.7" +version = "0.16.9" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/82/bb/5a449b9162e49b139d72f61672bd3ac1d790221f796d3304e2241fff4c58/ruff-0.16.7.tar.gz", hash = "sha256:5f71d004ac1263b22fa39462ac5ae618a4b77d58981af2cc79bf79a29c12b1a6", size = 4924184, upload-time = "2026-09-10T18:04:06.336Z" } +sdist = { url = "https://files.pythonhosted.org/packages/96/bf/c935ca98e73fe8ce65b87ef08a280c0c1e85295d569228c15e87d8fdfaf1/ruff-0.16.9.tar.gz", hash = "sha256:12b625c6cfba78d285d9f48eda5f053374f1e53cb10ef17342a383750db99161", size = 4948764, upload-time = "2026-09-24T20:37:49.416Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e3/b2/c80aeeb7f9e469c0d63a85d2f1ab6e1ebfbe10ea7a8d2438b7e09e3ff09e/ruff-0.16.7-py3-none-linux_armv6l.whl", hash = "sha256:727307773e7c7f9181d3ed3a2484186e56c1fa1874255911c74585eb2c7c19f9", size = 10048917, upload-time = "2026-09-10T18:03:30.28Z" }, - { url = "https://files.pythonhosted.org/packages/7b/96/20bb7bcae008004df52afcb7ac83432d4a467f2c17b672fe46d26be231c5/ruff-0.16.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9d61c258deabf58f34c67bd4bb4d939c7f2e6b5f0e59c1cdd1cf771b11cde929", size = 10242929, upload-time = "2026-09-10T18:03:32.706Z" }, - { url = "https://files.pythonhosted.org/packages/90/b2/f184b0d5abec02db69cfd7e49b688ae0237554528ca777136c613bf36bee/ruff-0.16.7-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7ab81118df8945e0193d0240712aa4496573595b75185c3636ed825592a0f728", size = 9847245, upload-time = "2026-09-10T18:03:34.509Z" }, - { url = "https://files.pythonhosted.org/packages/eb/2d/db1633a641866ed801e34cc6b60ef236c5e16f9b2124ab1d49cc24a5fe4f/ruff-0.16.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4c196c968874fc8019da8e7163de7a1a370f111e2309b4b7dfea0fce950198d0", size = 9961780, upload-time = "2026-09-10T18:03:36.618Z" }, - { url = "https://files.pythonhosted.org/packages/4d/98/edea21e1a3e38dbbc3bf6bb068b863b3b06184cf8533a4c7dbbe208a89d5/ruff-0.16.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac8c3bd0a7e10ad31e6ce51e7a99f3cb772e69aecdd6b9ea7e99b362f62a62c0", size = 9866337, upload-time = "2026-09-10T18:03:38.805Z" }, - { url = "https://files.pythonhosted.org/packages/0b/11/a15e60d4c87b214646f116ca9d204475bf993ee1047459bc9a360fd4d6d1/ruff-0.16.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:398d3988edde000b5c75dc1b3f584708da9bc990de069c18909142580fec1af9", size = 10562512, upload-time = "2026-09-10T18:03:40.71Z" }, - { url = "https://files.pythonhosted.org/packages/29/42/eaff4c9b6d0c7cdf56df313a17e89ae854f5bbc0b0c8f9cce19be0ab7a8f/ruff-0.16.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ce05b62b770a8217c4646a9c4139fca00efe8fe5d71f87df2b243ff20d4584d1", size = 11302938, upload-time = "2026-09-10T18:03:42.607Z" }, - { url = "https://files.pythonhosted.org/packages/5d/43/c75aa59a4ec181fe2ec06cab30e198c1c6d107229a9f008ae3a7c16cabd8/ruff-0.16.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af1b576fddb9d9ef2ececfb5fadcd6a624b25070ed85e3cfcfe449fc3ff6a7b9", size = 10840857, upload-time = "2026-09-10T18:03:44.604Z" }, - { url = "https://files.pythonhosted.org/packages/21/33/81f3da371942ea031105ba679d8d6e28ec1660ccd690a45f42d381161356/ruff-0.16.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ce7f8f22df67c93ed96c717f9128eadb797144ac2bad475cf536f31d6100c55", size = 10370001, upload-time = "2026-09-10T18:03:46.706Z" }, - { url = "https://files.pythonhosted.org/packages/fa/0b/6345fb4dbf6dd0ed1cfe5d18391dc9c3f59cc81622a7b0a65b84b3e730ba/ruff-0.16.7-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:06d0e93d04f392996435ebd600c153f65b47d73fbec2415aa99c5ee5756b3a5f", size = 10548735, upload-time = "2026-09-10T18:03:48.658Z" }, - { url = "https://files.pythonhosted.org/packages/3f/4d/c5576adf511f92a328e5569dda190ecdd430da51f1a649f3a4a2fd73e21e/ruff-0.16.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:142151a5e7b93c1b11111337142f89dd2fbfee92161225c99a97222f22e32656", size = 10108496, upload-time = "2026-09-10T18:03:50.563Z" }, - { url = "https://files.pythonhosted.org/packages/ff/8c/667d83c16199a17a56adc6b0bd4c3beb5b767a2babcd16a56f76f9be7fd6/ruff-0.16.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:e6651f97a342d8b35d54d8991544ca22169b86dc54111cb604666940c431b750", size = 9860136, upload-time = "2026-09-10T18:03:52.621Z" }, - { url = "https://files.pythonhosted.org/packages/99/75/78d401106731999a1dd20cc5a6961e37e1eb9397a3b589f73f3a5ce146a3/ruff-0.16.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:ef140c6eb935fa9a84c9c607dfb2cb1b85843c192e79265b0c54f35f557ea8e5", size = 10286290, upload-time = "2026-09-10T18:03:55.207Z" }, - { url = "https://files.pythonhosted.org/packages/68/49/56f9c3a8b755df93a0ad318b2147bf4ef5dae9a7e5ec61c460109c67957f/ruff-0.16.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:53e39506a730fadeee0d998ed5946f30671f0db240c6c7c73bdabbe33604bb6f", size = 10745048, upload-time = "2026-09-10T18:03:57.299Z" }, + { url = "https://files.pythonhosted.org/packages/0d/26/df51322b52ee1ada7eff2d071ea09d11d5c2d1dcc9f02594f5785c4d1635/ruff-0.16.9-py3-none-linux_armv6l.whl", hash = "sha256:95e6f022090368ab3b824c36276839c53b2adf1a3f4c09fefc33dfc400f6da96", size = 10082922, upload-time = "2026-09-24T20:37:13.045Z" }, + { url = "https://files.pythonhosted.org/packages/a5/27/7bf51f5a7aa375e9f339280a303aab44ca75dc1525f1cdc5991761685b0f/ruff-0.16.9-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:a5f27be168556594a86d2f415db0cf43f5291917849318f873c7e2791f7a8c67", size = 10236360, upload-time = "2026-09-24T20:37:16.049Z" }, + { url = "https://files.pythonhosted.org/packages/b6/63/09659283f92f02dff45809da194a70da2f688d87c55d8875c4fae3536072/ruff-0.16.9-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1632eb1d6197f33bd00b1acbc5b71009e89a8895c158e2d2b03a834fac964ab6", size = 9892940, upload-time = "2026-09-24T20:37:17.957Z" }, + { url = "https://files.pythonhosted.org/packages/24/58/98de1b72ec172f5f8f1731236fe21585b3998bf7dfe9fcc44ae9ba626012/ruff-0.16.9-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b3f951b14d865d5952c89d40a5ca07e87abe24fa5453299878411e127748fb1c", size = 10032114, upload-time = "2026-09-24T20:37:19.942Z" }, + { url = "https://files.pythonhosted.org/packages/c8/7d/f1e17c54ab59d4bad1dce8ee3e22a7a1d0ef4745240decacdcf3832b5bb2/ruff-0.16.9-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:447fc07e1573afff7cb02803462b12b6c8ece7cf10e2cd78565fa6d7a1c0bf8d", size = 9910227, upload-time = "2026-09-24T20:37:21.872Z" }, + { url = "https://files.pythonhosted.org/packages/34/19/436f647a65075bbd3bab2668b3bdaa5120559b294694018cdcefabbbf30b/ruff-0.16.9-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a3e039a6a40ed976c491722b60e0ae4a4aa1a86057f540ee7a37a5d19ae9120", size = 10547484, upload-time = "2026-09-24T20:37:24.229Z" }, + { url = "https://files.pythonhosted.org/packages/03/59/38430a6bc2f6d8095447ac39625cf8b6e9344a47e6c26225c8ba1bff3ffb/ruff-0.16.9-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4684dded7db60aa57cb118fa158630f5feade4af5782903b6053484bdf9bd129", size = 11412367, upload-time = "2026-09-24T20:37:26.307Z" }, + { url = "https://files.pythonhosted.org/packages/c8/bd/bbb6d7fc7f208c8b8c50dd5dc8206e4cfdb1e7a8fb852606a3adf370c880/ruff-0.16.9-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d29c934357e45642fda2f34c0b1f4025b4a6c01e15e4bf0016879d60078a142c", size = 10869787, upload-time = "2026-09-24T20:37:28.35Z" }, + { url = "https://files.pythonhosted.org/packages/bc/b8/9c543074918061abbefc3bd139bee22de35abedb00dde0f2d27288838962/ruff-0.16.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a21713e629d3e5bdb2f5c2def1cc7f04f47fa8e1a7eb0571b4a28e1da64bc728", size = 10406494, upload-time = "2026-09-24T20:37:30.624Z" }, + { url = "https://files.pythonhosted.org/packages/35/7a/5a8851bd146e7ccf8fd4b003f6c75c11f8fbdb0e60673b45097986b6bf41/ruff-0.16.9-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:7baa24ef5fc8e77aa93879e1d3f43754a01ae488e869f1ae30cf431afd4d2452", size = 10590083, upload-time = "2026-09-24T20:37:32.439Z" }, + { url = "https://files.pythonhosted.org/packages/87/f0/4c3467188f23f806960b46fa76575a7cd0514c9ba90562650b71efc96980/ruff-0.16.9-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a41aac6230aadfaa133bdfa1614488531ffa3e0837567ae04c0da2058a9c0f9e", size = 10119151, upload-time = "2026-09-24T20:37:34.581Z" }, + { url = "https://files.pythonhosted.org/packages/15/34/5a4def5adea572ce6aea0bb64f21f928ee317b80e0db747d7979b01d7261/ruff-0.16.9-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:c2529fb5896d49115b0e9aa8f887490b34bbe76baf879ec2264ac59406869ce7", size = 9911544, upload-time = "2026-09-24T20:37:36.796Z" }, + { url = "https://files.pythonhosted.org/packages/62/5d/d15ebea7499eef9373318c0ee6ca127832927c6529731f6d48e18dce7ca9/ruff-0.16.9-py3-none-musllinux_1_2_i686.whl", hash = "sha256:41e3870277694177429b56406d65dfbdb2c2802c52b715edaf6a0b829c69d4ee", size = 10269884, upload-time = "2026-09-24T20:37:38.857Z" }, + { url = "https://files.pythonhosted.org/packages/d1/56/c5d3cd119ded7a3c7aba0e961b69cb3df701c91662c98ad694467d060ce1/ruff-0.16.9-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:8adbe4e58af167f767d7b2ba5e83c42e878350796cf78c2f5e14ab9903a92588", size = 10749366, upload-time = "2026-09-24T20:37:41.042Z" }, ] [[package]] @@ -4591,7 +4706,7 @@ wheels = [ [[package]] name = "sentence-transformers" -version = "6.0.1" +version = "6.1.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "huggingface-hub" }, @@ -4605,9 +4720,9 @@ dependencies = [ { name = "transformers" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/d9/ef/87681678d0aa91a1e77f0ffdd2e5d900aaf358aac644dd14bead8d95ec4c/sentence_transformers-6.0.1.tar.gz", hash = "sha256:1c3b8d9403f87ad0c879638554f36cc85744f38a6a70d150fd7e964ca0e9935b", size = 575395, upload-time = "2026-08-31T07:50:43.518Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c4/a1/53ae87971817e2d8370f8e79b843a881be33ab339502d71c5f82ac31f7af/sentence_transformers-6.1.0.tar.gz", hash = "sha256:299025df51550dc1a38f05be27a9b0bf881c4e5e70542b3b7757d05e00aa3868", size = 576566, upload-time = "2026-09-18T10:44:24.279Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/31/ab/dc6031faf1b6bba08076fbf457b21a5c51ba7928a77916915e093c16b8c7/sentence_transformers-6.0.1-py3-none-any.whl", hash = "sha256:b8888d72c707ba33c63aa30845850702dd5acadf1dd0d051436380bcebe4fd0f", size = 739832, upload-time = "2026-08-31T07:50:41.635Z" }, + { url = "https://files.pythonhosted.org/packages/b5/6e/9115e19589c83172bd37ec793cfef7f7c719464053fa6a8882700c1f4488/sentence_transformers-6.1.0-py3-none-any.whl", hash = "sha256:eb8122f4d180f552eda26dc3d77e84e8c11dc2b1d456a406b9f24abb70ceeadd", size = 740560, upload-time = "2026-09-18T10:44:22.841Z" }, ] [[package]] @@ -4799,30 +4914,26 @@ wheels = [ [[package]] name = "tantivy" -version = "0.26.0" +version = "0.26.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/74/ec8c3f7bb3599af86c19f1a774c37e36a6e7524d3563f3aeb99220981f6f/tantivy-0.26.0.tar.gz", hash = "sha256:7c9507fcc62bac4ef1d40b1ed37ff7fa07e44b5043b30288f63bcf4fdc62644a", size = 93615, upload-time = "2026-04-29T11:51:31.115Z" } +sdist = { url = "https://files.pythonhosted.org/packages/33/e2/019c16b6f498d826c0458f4a40df86adfccbc8c9670f3e7c0f6dadce2f2d/tantivy-0.26.2.tar.gz", hash = "sha256:93519eb9f18c298a6779d132505d67f158741318413c181e9ec488381edf2721", size = 196884, upload-time = "2026-09-17T02:00:28.751Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3d/94/832f4ee26ed2b3aae69923e827183cb28af8239c893430fbe6240351df9c/tantivy-0.26.0-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:5748304687042b2c643e30b646047f254e8a21441515929ea0e54c6de0ed493b", size = 8335068, upload-time = "2026-04-29T11:50:38.042Z" }, - { url = "https://files.pythonhosted.org/packages/d2/dc/88eb02ad37acb5b022ded4fdad984562b2246ec28fe16d55580e678a1251/tantivy-0.26.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d8617af05dfc030acca0d93c14594b247e18550d803359946cb8cf76620a767e", size = 4298822, upload-time = "2026-04-29T11:50:40.27Z" }, - { url = "https://files.pythonhosted.org/packages/60/85/5a553d130be2704302c807fccebad575241f2a7bce2b765240ad9d4c697f/tantivy-0.26.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dbb17edf7ee25c77f60e7b757488bb8a127c28fc6cac3d8484e2d1ae862d77f", size = 4612952, upload-time = "2026-04-29T11:50:42.644Z" }, - { url = "https://files.pythonhosted.org/packages/9a/c9/36c3e17d0a8efb2fab1ce0c748ddd1aa3234ead83aaa011fd5c6c780e043/tantivy-0.26.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:62cfb03e3ca4cb0f41213acf0a3fd04ffe7f359ca6e3e91cab37c06799e68d3c", size = 4567017, upload-time = "2026-04-29T11:50:44.943Z" }, - { url = "https://files.pythonhosted.org/packages/88/34/fbdcbcb6862cdea4f2ed7d62b99c4785b89560c1ae72558a6cec724cf64c/tantivy-0.26.0-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:a4676c1989d8d7e61ebc4d6d4b46224fa9351eedb6e077a815a5f7233c4e20b6", size = 8301385, upload-time = "2026-04-29T11:50:48.769Z" }, - { url = "https://files.pythonhosted.org/packages/d0/40/09e6a400d2505024a412d4c2a67f58ece4703799a53ba432215b90de3835/tantivy-0.26.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:df1e2f21f69ffe9ea12ca7f3f3900eadea4670cf6f8c15aa4fec0bb3a1185577", size = 4284335, upload-time = "2026-04-29T11:50:51.201Z" }, - { url = "https://files.pythonhosted.org/packages/2f/9d/1e7db895aa5cfac5609bd03cc7bf44a6f8b9f2892baf9225f9189121316d/tantivy-0.26.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2d22d53c9fd718b6d74eea3b0e8a26ec8bd7ca8a594ba15c7a38ac5e9e3d33b", size = 4610238, upload-time = "2026-04-29T11:50:53.01Z" }, - { url = "https://files.pythonhosted.org/packages/f8/05/205758c98a5e450ec22c08904dbf3fe10dce4d39c3e1c6a05c9daaa436be/tantivy-0.26.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ff0765cfbc9e10e96b71c78074e29f25fee388e5bc8a0a7c8aa166bf80304769", size = 4570688, upload-time = "2026-04-29T11:50:55.057Z" }, - { url = "https://files.pythonhosted.org/packages/fb/56/aef45e8ec7fddbca4885516bc1d8cc61950f666ba8b44ef9e50b8db51f91/tantivy-0.26.0-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7509b06fab07d4209bf37759e3c0c407f6c53fa3184d694ec82416fc8d189e7d", size = 8301236, upload-time = "2026-04-29T11:50:59.299Z" }, - { url = "https://files.pythonhosted.org/packages/ef/3b/8ce1a1662e6e6c303a65055a42206853adfeaa14596e62b6f218b5af5526/tantivy-0.26.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0c77962afc03f8a7081991fee088d09891acaa3401cdf882b1cc40d9d839a683", size = 4284342, upload-time = "2026-04-29T11:51:01.626Z" }, - { url = "https://files.pythonhosted.org/packages/32/15/4f4e74669bdc26e7508d527f27be1a12d249e1d9ab6bba05f47ba1cdedfa/tantivy-0.26.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9f017f6991752da8092c46c670e0eae349a1266d2315720ff5b252ed1ea4acd4", size = 4610161, upload-time = "2026-04-29T11:51:03.966Z" }, - { url = "https://files.pythonhosted.org/packages/50/3e/4648f7fc34834f3f4c99465111f50add73f0517f21ceae7c81771942c99b/tantivy-0.26.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb7df28cc98497c767b86ebc5f167e3f2552739f748a1c28c10e14e7db726cd1", size = 4571125, upload-time = "2026-04-29T11:51:06.162Z" }, - { url = "https://files.pythonhosted.org/packages/59/3d/a85ffd178a6b00813cd144e4af2db100023a5a7cd9cae3a5f998e74d5cbd/tantivy-0.26.0-cp313-cp313t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7b9a350e59513e330fbcb0930ef2f574d86a8aa46047a1ad1c5b4c91838e3aec", size = 8296228, upload-time = "2026-04-29T11:51:10.844Z" }, - { url = "https://files.pythonhosted.org/packages/d6/81/c78c3ae37c52e1244da340139e11cca0d44ee742e227bba19ecefbbf54b5/tantivy-0.26.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:e1bdf6dcbd25fdc3244e6b09f5114253a81ec533ad5346eff135ee98668f04c7", size = 4279507, upload-time = "2026-04-29T11:51:13.065Z" }, - { url = "https://files.pythonhosted.org/packages/39/df/a409dad06800793d7dd2cc831aeb46b808b4ce00df7d506e6760acee2cc2/tantivy-0.26.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9450186861d6f350ec5969ff2e349377d2ed5617f084a8ad0f303ed7a91a2e3", size = 4605550, upload-time = "2026-04-29T11:51:15.289Z" }, - { url = "https://files.pythonhosted.org/packages/bf/24/68245511021df5b19879d262ef2b1adf214ec67cc69761e1a83fd28571b1/tantivy-0.26.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e69569ec68c0e8d1c3aa3cf52423ced6b9b9b5bb0156e8b32088390919d41964", size = 4566249, upload-time = "2026-04-29T11:51:17.398Z" }, - { url = "https://files.pythonhosted.org/packages/98/53/0c9ec136930dad07c8f24cd31210181e7ba2228aeea9fd75d751b9d716e5/tantivy-0.26.0-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:7983206d75c7334fdcb1c49372adf6afe8aeb89ad2abfc7a5fd9701254735134", size = 8319819, upload-time = "2026-04-29T11:51:21.451Z" }, - { url = "https://files.pythonhosted.org/packages/10/5b/35b7f2af5101883dde8f0523a69944bd5b2471ce399339e97e2e3775a227/tantivy-0.26.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:4a970d35402612208b077de5feb9da978380c173e7835335c50d15d0f13cbaba", size = 4289015, upload-time = "2026-04-29T11:51:23.435Z" }, - { url = "https://files.pythonhosted.org/packages/ef/4b/fbc1293fc8108eaa2f11718d77070e09cefe4aac4055fd2036548a776946/tantivy-0.26.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22f6acf0c4d9dff2aecb161071db921c9a0bd3e2485dbc8304fd4561fe50c6a7", size = 4622332, upload-time = "2026-04-29T11:51:25.483Z" }, - { url = "https://files.pythonhosted.org/packages/86/68/d1ae76c42b523b076434a357b675c37fd9684ac0fc6e0e63f703a1f1014a/tantivy-0.26.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a92825f3215fc4b5ef55da8a577eb9ad30c7ee5c7371daea82329e67aa4c7d12", size = 4573494, upload-time = "2026-04-29T11:51:27.512Z" }, + { url = "https://files.pythonhosted.org/packages/67/c9/f36ae7055d90706de64eb711e3e59cead2f647b2d8f463a551771f7dea99/tantivy-0.26.2-cp311-cp311-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:a7955eef620be9951fe318913ab0688950b538ecb0d66695e8f6ad09c2f9cf45", size = 8188867, upload-time = "2026-09-17T01:59:47.487Z" }, + { url = "https://files.pythonhosted.org/packages/b0/a8/b4864875598cb784f979cde3424f71fa8838bbd321f8d44e56c9cd79ff7c/tantivy-0.26.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:96f8cd4a3df8862a2fae0c4ba5168bb9734e4cac0bf2d8e81d77f4aa10f87075", size = 4220251, upload-time = "2026-09-17T01:59:50.402Z" }, + { url = "https://files.pythonhosted.org/packages/21/71/a348e05e906a35d154b17fc848e9687db6e68fc85d6399be6960509de6d6/tantivy-0.26.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:15484a5a5554cfbfd5f756ad050f1c26f5760037a00b9a52e9a7b6f911cc5eea", size = 4661553, upload-time = "2026-09-17T01:59:52.159Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7c/12c2dc822540aacb1b678f9d609870a6a561d340958a3bebb55cc3d0c912/tantivy-0.26.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73ab67a5dc49cb128e1cc1b13addef3807d9019697b33765ddba2313d5085a56", size = 4519321, upload-time = "2026-09-17T01:59:54.283Z" }, + { url = "https://files.pythonhosted.org/packages/32/68/6fac685e7bd3f8693ca5416177faf7e74ad14b1c0f5d0a0bcc3ee78760b8/tantivy-0.26.2-cp312-cp312-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:e3a403dae92dfbe8aa8ff1523c69f437797969288586f37bb26ca141edb43a32", size = 8167627, upload-time = "2026-09-17T01:59:58.528Z" }, + { url = "https://files.pythonhosted.org/packages/25/7d/d0f1d77d4d6b310770062e5e7df3a7fe271592229e71cc8975e22b8a1128/tantivy-0.26.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d7327a683831d0bf92af99585c0d28c52fe2481b2f2a3ea1ac01b2c6603d84ea", size = 4204358, upload-time = "2026-09-17T02:00:00.82Z" }, + { url = "https://files.pythonhosted.org/packages/e7/58/cc3ff44b45a763d9f290cc2686f1cf630cc13b2d606a20e03f540e8a4f69/tantivy-0.26.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8718266dca4c24bbae10f6dee43412df62473ddc9a1b89004d0fa83012e20d67", size = 4663886, upload-time = "2026-09-17T02:00:02.655Z" }, + { url = "https://files.pythonhosted.org/packages/68/e4/28c0639bf477834e45e49d27fb24ecff1dbb04a7c937bed965232c8899ef/tantivy-0.26.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:34b097ad4a99143598d66a88cf7c480617d140c9ad20acf5b0eb9e694471551a", size = 4519290, upload-time = "2026-09-17T02:00:04.92Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ac/50305ddc0c1aab5e83bfafe6e695522d5aea471125bc710c608f2f4599fc/tantivy-0.26.2-cp313-cp313-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:bda3f74cdf9978315585dd5fe93fc92b9154aaa12ab90f66329859a6170a54f8", size = 8165009, upload-time = "2026-09-17T02:00:08.671Z" }, + { url = "https://files.pythonhosted.org/packages/98/dd/df77782ac5e38a927542f5cedee6e019556ff81a43d3b25953735c8838c4/tantivy-0.26.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:121bd56976d0026bbcd064390871b305ee7273bd6fda0154481da908fd735e2d", size = 4204043, upload-time = "2026-09-17T02:00:10.539Z" }, + { url = "https://files.pythonhosted.org/packages/a1/12/1a3a303e2eb0aaec8a2b58574244f2e1f31f3b9bd9c1c5f834c579717008/tantivy-0.26.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:535aec467b3be366f7109b4bdd71d5c0c7a2aef54b8ea5424ea90a5636fa3660", size = 4663039, upload-time = "2026-09-17T02:00:12.906Z" }, + { url = "https://files.pythonhosted.org/packages/a2/ff/56dbb5d0cf3d1d0faf6e284b38953764cd480e1c71a71305ab0f5b2de0bf/tantivy-0.26.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c083f1cde4d78abf9b0964664e84c76534270f45d8d430746c69a625ae6c75b", size = 4519676, upload-time = "2026-09-17T02:00:14.697Z" }, + { url = "https://files.pythonhosted.org/packages/3d/45/5ef1411d70223f07744cee652ba0816b76bd3345c2c60443fda29eb20c43/tantivy-0.26.2-cp314-cp314-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:46969fcc1d3fb93401c6eee5777b00e35b098630e4de9c30c1c6ed650ae03c0c", size = 8170463, upload-time = "2026-09-17T02:00:18.825Z" }, + { url = "https://files.pythonhosted.org/packages/ef/f7/e10af1292dc73d2017f45d2ca86bd56a03f37d0460baa8ef9b439946b4be/tantivy-0.26.2-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:7e3b53e5fb5717e1722abc8ad1145aa3f3717590dc2252673adb2652b8274aaa", size = 4207670, upload-time = "2026-09-17T02:00:20.979Z" }, + { url = "https://files.pythonhosted.org/packages/e4/08/5a5dd16149bd0a51e60526ec672109363f824ab3d7ae0ecc559fdb1d5f92/tantivy-0.26.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1c3c5ffbab74c5d318c59af52f6749ccf44972f85e282f01e84749c2d78a08a7", size = 4664509, upload-time = "2026-09-17T02:00:23.017Z" }, + { url = "https://files.pythonhosted.org/packages/35/91/65549d5772c852f1fcf5d27764b3793a0b86edbe306783218bc355bad233/tantivy-0.26.2-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:04ff39f365840aa75977dbd823164c9324031fe62a0676d0f5a8f6ea9d8abf20", size = 4519057, upload-time = "2026-09-17T02:00:25.105Z" }, ] [[package]] @@ -5112,16 +5223,16 @@ wheels = [ [[package]] name = "tornado" -version = "6.5.8" +version = "6.5.9" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/10/d3/343e5bb989d6515b1646cf3d40135d73f3d5e45339bded401b56cdac24dd/tornado-6.5.8.tar.gz", hash = "sha256:9452e1b208a8bd771e2cb1f2ff564985b9b214bdebbe622793e1799e0a6bd23f", size = 520493, upload-time = "2026-08-07T02:12:42.971Z" } +sdist = { url = "https://files.pythonhosted.org/packages/22/15/ca7aaebb77f850493cba71ace508aeffb896d1ad8976417b48b79823dbd2/tornado-6.5.9.tar.gz", hash = "sha256:4d868544ebdf2fc155239a74397f65ebfea9b4d3635296c96b5dfb0701c354f5", size = 536145, upload-time = "2026-09-14T18:08:37.434Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f2/d5/007086fd8df5489338e204f65adce33fd4f21a4999dbb2b9cff2f897b5f4/tornado-6.5.8-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:cc6aa787d7cfab7c3d35189dc7a56fbd2399a569624c730c6b55b3d6531d0403", size = 449487, upload-time = "2026-08-07T02:12:28.682Z" }, - { url = "https://files.pythonhosted.org/packages/70/c8/5a24a99495903f594f6a199dd7beead1cbc0a13e2cb9102727bcaaf2a997/tornado-6.5.8-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:9715b5eb79735b2bcd454ce216a9275b7c0470e64ea1bf5742f78b2f72b26eeb", size = 447649, upload-time = "2026-08-07T02:12:30.306Z" }, - { url = "https://files.pythonhosted.org/packages/6e/de/f2e733f386b85962d1b1dc82cd63d169b5b4580062b35397eac9244a41fe/tornado-6.5.8-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:547d63f450d570c14fe0e8db2cfb14c9bbd1c2503b4a6612586267955aa47b58", size = 450707, upload-time = "2026-08-07T02:12:31.95Z" }, - { url = "https://files.pythonhosted.org/packages/0b/94/20efeee9a01c141e9ac47c397f81679dfda24b32768fc4fff24e76d36c2c/tornado-6.5.8-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7e2360a0ffbe145eca8af0b19cb7203d79b1a98dd4cccdd6b368f6f49c2e3808", size = 451677, upload-time = "2026-08-07T02:12:33.512Z" }, - { url = "https://files.pythonhosted.org/packages/42/ec/a96ccb8ccf0de2b7bc2c5fa1608a4803735018242e90c4882365a9fd418f/tornado-6.5.8-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:5d242290bdf7ab3151bc1065fdd75c0dcc21cbc7b49f22a4c56329c2d6566d22", size = 451510, upload-time = "2026-08-07T02:12:35.346Z" }, - { url = "https://files.pythonhosted.org/packages/29/b5/93185859245ad3f00e62175f29607346788b696369347f0146e0421286bb/tornado-6.5.8-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7b94ff0e128fe0542f3bd331fb44d06260fc4ac16881545159f34ef08aad4195", size = 450917, upload-time = "2026-08-07T02:12:36.963Z" }, + { url = "https://files.pythonhosted.org/packages/a0/4a/4d3459fd2f360dd99233f69f22b36012a42856ace526da2c6da3cb0e6df2/tornado-6.5.9-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:dea3bee433b73d6312d993ce89ad5f2b8d3ed9fde56e79ba5342b9edb78d342a", size = 464279, upload-time = "2026-09-14T18:08:20.909Z" }, + { url = "https://files.pythonhosted.org/packages/26/4b/5af2f7dcd674e2f1cacef763456f79823404f50954789d6e1ec7a70cd58a/tornado-6.5.9-cp39-abi3-macosx_10_9_x86_64.whl", hash = "sha256:22bed49cdb55292d1d58f46008ba2cc3020e5b84995ef6ae749676c8b5309514", size = 462440, upload-time = "2026-09-14T18:08:22.711Z" }, + { url = "https://files.pythonhosted.org/packages/9e/0f/38f8d16011de3b1ce2babb4c3bcefb126d2dc47d04878ae3ad5c39a00caa/tornado-6.5.9-cp39-abi3-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0cc0876a58eee9143476f24901b1b8eb4d52443283ade2b6bca650dd1da04f84", size = 465496, upload-time = "2026-09-14T18:08:24.407Z" }, + { url = "https://files.pythonhosted.org/packages/8c/e9/3888f265d1e287fc63cd61a6696f96a650024e32f9e89c0b1817ac5c40f4/tornado-6.5.9-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc0d703cc7ec92b47ebfe236c97cd765c1f2e45744a2e156e6677e54c948274d", size = 466468, upload-time = "2026-09-14T18:08:25.928Z" }, + { url = "https://files.pythonhosted.org/packages/d6/8b/d2bcf417981fa6f7698ab84a52394a76cf608e6704d266e2e0e29f1fd9d0/tornado-6.5.9-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:93f9ab0226ef625b94cacb7981a5af104f1735ea02f92282abe5c389109fb31d", size = 466303, upload-time = "2026-09-14T18:08:27.566Z" }, + { url = "https://files.pythonhosted.org/packages/7e/a5/c5cfab11420c3f908238a6c861b8f3864fdbd2b2b87e30c9c16f36a11512/tornado-6.5.9-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5801bbf94dfde8d21087b6aa0b17f3a5dab6110dfe44e7e4492df5de393ac15b", size = 465706, upload-time = "2026-09-14T18:08:29.182Z" }, ] [[package]] @@ -5153,6 +5264,52 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/29/47/54eacf96b5c835bbd6ca631aa2740e7705ed63d9e3a8afd2d2cc6d09cae5/transformers-5.13.1-py3-none-any.whl", hash = "sha256:53f0ea8aa397e29244c2377ba981bcaf0c87adcf44fbdd447ef6306522afcacd", size = 11503977, upload-time = "2026-07-11T09:15:46.801Z" }, ] +[[package]] +name = "turbohtml" +version = "1.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/0b/94e323028f3aa652a5fb924681ed9c17537921716ac8b8267f03078c617f/turbohtml-1.10.0.tar.gz", hash = "sha256:a5f59f1f74b6b9060bc98751b1c7f68f5e74fd11e6252559eb838f948c8fc76d", size = 3497676, upload-time = "2026-09-24T21:58:12.43Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/13/a92f25cdfc64e333f3248fbf4ced0e65364be60279b90806670a8e78d0d9/turbohtml-1.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e61c74a0bab25f00ac000f7a4aac00db9834938dbda3dc364307a1f11f6a60c0", size = 1435697, upload-time = "2026-09-24T21:58:12.27Z" }, + { url = "https://files.pythonhosted.org/packages/52/7b/3577e58777d837317dd57c65140f3a4e52cc5a1fac99a30ba9dc5c0b26c3/turbohtml-1.10.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:8ccb3c078e5300079e5b2a5cdd9bab6f866dad4818d4508679d71a8ad05f8a81", size = 1569438, upload-time = "2026-09-24T21:58:36.289Z" }, + { url = "https://files.pythonhosted.org/packages/24/e1/b55930f6cb69ccb0ccb3877ff67c7ced8dc01cf2782a8c53264bbaaea532/turbohtml-1.10.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:26502bcbea0926c9c9e468cfcf50381a5820a48e0c16b472271fe584abefd0f7", size = 1617559, upload-time = "2026-09-24T21:58:38.531Z" }, + { url = "https://files.pythonhosted.org/packages/21/ec/a2aef28eb3dfceecc387b406aff28ee3c409ec6723b7c72d001b1a093708/turbohtml-1.10.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8363bc65c1671a013b8d7a3b3e5e54fa72d6b65630c11a08eac6a83556c64602", size = 1583921, upload-time = "2026-09-24T21:58:40.004Z" }, + { url = "https://files.pythonhosted.org/packages/7c/43/87fb508686714638ad8419dca027ca6e22977fc42dd66a98d2b4f2eefe90/turbohtml-1.10.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:84f40701d0a52a5b581f31e86223e2d40f311c9bc9d89264c730101ccd1f14a1", size = 1615781, upload-time = "2026-09-24T21:58:42.441Z" }, + { url = "https://files.pythonhosted.org/packages/c0/a8/2156eeb17eff5ee5d5f3f90cc634593010cd8282fb813025d6489301102b/turbohtml-1.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9addb768f79f93658030a128344b5458b242fa39cfa8611bc6e2cda3241e1deb", size = 1437483, upload-time = "2026-09-24T21:58:13.919Z" }, + { url = "https://files.pythonhosted.org/packages/81/87/bbe8a0750c32e99bcefff6a6d98129599ebad68670013281bceeb748fc1a/turbohtml-1.10.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:423f589598a09bad4d4230ab8667363fccd0ae81cdd0e7bf7b02ad39d5923761", size = 1571298, upload-time = "2026-09-24T21:58:44Z" }, + { url = "https://files.pythonhosted.org/packages/07/97/8759f26fb77e66ca76408798a390c078f76cba30b3fef895b83716394eb0/turbohtml-1.10.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:4030eb81946491bb6d1a039a8beb8cc9455af6449d77a25db98b471929edb58b", size = 1619769, upload-time = "2026-09-24T21:58:47.551Z" }, + { url = "https://files.pythonhosted.org/packages/c8/9b/2dd565c20e7a962b26f2f1feb2a7513682551c4cbf7619480c3faa49999c/turbohtml-1.10.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:288b41d8e73466d0353f780acf30910ff39f82357d95752f9a85b0f09a71048f", size = 1586146, upload-time = "2026-09-24T21:58:51.198Z" }, + { url = "https://files.pythonhosted.org/packages/39/25/174a1ba40cb738e8d06bc59d1884e95a955e16f02d9e81f020b55306c490/turbohtml-1.10.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a13ea122aaff4b78e1f7042f104f133ee88b8f48bf0c4cbf9dafd8f73ac47722", size = 1622290, upload-time = "2026-09-24T21:58:50.444Z" }, + { url = "https://files.pythonhosted.org/packages/fb/c2/d41f69814a0a217db1fd184da90ac3573094859b37aa8b73558fc2e1ac4a/turbohtml-1.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:b9b6171d883daf85bb6374aeae6f7c19c489e3fc61e0643a7f2f1da9822a0679", size = 1437198, upload-time = "2026-09-24T21:58:15.536Z" }, + { url = "https://files.pythonhosted.org/packages/86/fe/99913911376f99ff34a18bef342db8c662eee9965205f0345f64f46cfdf0/turbohtml-1.10.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:662e6b0650aaf30e090cca967dbc81fd4f1f3045be481a5e5e2715bf52578ef9", size = 1572058, upload-time = "2026-09-24T21:58:53.885Z" }, + { url = "https://files.pythonhosted.org/packages/a2/e0/2d293264e67078ee6b08f1cb7c93dd71da945e243d65f69672e14f4497f8/turbohtml-1.10.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:70380c063355c98b5ce120d8f201c7def00143e1bb6563ededc60f62807f0fe8", size = 1619317, upload-time = "2026-09-24T21:58:53.274Z" }, + { url = "https://files.pythonhosted.org/packages/ff/49/20046efdcbb99c1c8cbe7445cee5a12f53141d500056973e1379b981bcb9/turbohtml-1.10.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bb5a788781d79099676bba5706973a65b75df9ed51ee3d069ef648a3dd0d6804", size = 1584857, upload-time = "2026-09-24T21:58:57.189Z" }, + { url = "https://files.pythonhosted.org/packages/96/49/281e656c86a056adc97c0d99273ed92bc9b17dfed090520515856d0e9b59/turbohtml-1.10.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:225613d470dfb580d5346c7446fdcbfa13ccb2f4da2dd8d19000103250e625ab", size = 1620185, upload-time = "2026-09-24T21:58:56.516Z" }, + { url = "https://files.pythonhosted.org/packages/54/c2/93b519997efdc353753945f053317b493648071b5b1be65f36e09f37bf61/turbohtml-1.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fab89d0ce289c7636cb825fa170c4b52b4083a5eda963576caff4cffad7bf8f9", size = 1437862, upload-time = "2026-09-24T21:58:17.11Z" }, + { url = "https://files.pythonhosted.org/packages/6a/8e/ff1443ccdf61791103ff6b0ed669059769bd4e97e536f337fce72b9dda3a/turbohtml-1.10.0-cp314-cp314-manylinux_2_28_aarch64.whl", hash = "sha256:794f77b1dedcfb9eabfb4e17a1c0fafe047f54b7e2b6f3b920c45e9a36b5a885", size = 1572493, upload-time = "2026-09-24T21:58:59.198Z" }, + { url = "https://files.pythonhosted.org/packages/7e/8d/4917f89a01410ecfe66c785163f4c6e6f16cf1ce19de7cc8b9193fbf0c7a/turbohtml-1.10.0-cp314-cp314-manylinux_2_28_x86_64.whl", hash = "sha256:e85b2d554e5a45dd81a43d8e47996b445d8ab4aaaa777c894026a2cbc184a93e", size = 1620012, upload-time = "2026-09-24T21:58:58.449Z" }, + { url = "https://files.pythonhosted.org/packages/40/c2/5b07960f1429a7f66448d0631807113c0b6c1d7e54aeef043f3e06d3f552/turbohtml-1.10.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3a0351e57de782a763a7a8c885fce8943e22b6facf72b0ecc95d5b44a681d3ab", size = 1587372, upload-time = "2026-09-24T21:59:01.314Z" }, + { url = "https://files.pythonhosted.org/packages/e2/8f/2a17171aeb3004f1c35aa0fdec0091e9f7b80282a7dbc2a647de69b6b094/turbohtml-1.10.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:be0ef006fb1b6099efe6d6591f09ae57d5bccc5faf2e6163ee6e3880424ef7f2", size = 1621259, upload-time = "2026-09-24T21:59:00.594Z" }, + { url = "https://files.pythonhosted.org/packages/0f/fb/bdc5a2fa1334f7878bbd72662445ca4f065af923229846786cca6fc317de/turbohtml-1.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:421f56edc437913379764ec58057d4f637e972e0b273ca808a091220c3cf7168", size = 1457281, upload-time = "2026-09-24T21:58:19.055Z" }, + { url = "https://files.pythonhosted.org/packages/ca/47/e8a585f1f0f05d20a6616aa73174bf8c9b65f5bf7c21b384ff854c480459/turbohtml-1.10.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:89c7d933c6e06b5977110680cb0ad01f8c1e7ee579c0539215831943ff65b4fd", size = 1564047, upload-time = "2026-09-24T21:59:04.097Z" }, + { url = "https://files.pythonhosted.org/packages/43/65/f881a937aef5020186f4a9795c13669e540471668019603c9a04157632b8/turbohtml-1.10.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:9b7164630c67d0ba241efe95651190b48de3b21d0d28f09c81405d6b6e4e3e3b", size = 1610056, upload-time = "2026-09-24T21:59:03.215Z" }, + { url = "https://files.pythonhosted.org/packages/d8/62/bb2654d5f826b8fccd3309b0d350724cc8ed77e2e0703d9a016182f0aed4/turbohtml-1.10.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:92175e361a7e79b357d069a180452c5fdab3e83dbc8fe82af147ffd850efcb51", size = 1585075, upload-time = "2026-09-24T21:59:06.118Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7e/8e2315ef3d96e0f57cc0881e7160373e824d895890e7757b682818d7122e/turbohtml-1.10.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a17ee91740811506c9d02b3c136d5676e6a328e243f026014bb813b484a5886c", size = 1625498, upload-time = "2026-09-24T21:59:05.501Z" }, + { url = "https://files.pythonhosted.org/packages/e0/5b/fef20b454ceaea7594550fbdd95377b0f7062cf34b7be45f52f85266c89b/turbohtml-1.10.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:8a89b5996149b43ff9b83a9db8609044ccd557c9bf109d2ee4b36076e1ba6102", size = 1437864, upload-time = "2026-09-24T21:58:29.029Z" }, + { url = "https://files.pythonhosted.org/packages/71/20/229e187d0e47eac34958313bdb4746feedb5f33c17f90da00573c82d8ec6/turbohtml-1.10.0-cp315-cp315-manylinux_2_28_aarch64.whl", hash = "sha256:4f385ad6e14e50d59964b177e20348461eccda9decd59935f721cc3fccd5a238", size = 1574234, upload-time = "2026-09-24T21:59:07.897Z" }, + { url = "https://files.pythonhosted.org/packages/dd/e3/1882db0fdc8760d172ef19c11d8d973e339f775f450ba20568efb6bb7e24/turbohtml-1.10.0-cp315-cp315-manylinux_2_28_x86_64.whl", hash = "sha256:01b9ef79d882e16402cefc19f78c0226f8b6f83c32588b8fe71733cd4bca83f1", size = 1618454, upload-time = "2026-09-24T21:59:07.158Z" }, + { url = "https://files.pythonhosted.org/packages/f8/53/ecd6314b50bc3683219be261259ec2e0585a301d910fdf4afa6b52b7af66/turbohtml-1.10.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:97bdde66856c1be748fd8cdb4c2a7840f578af7fcacd2e455bba390304b4cb0f", size = 1586289, upload-time = "2026-09-24T21:59:09.822Z" }, + { url = "https://files.pythonhosted.org/packages/c7/f8/264e99df411e1d8b0034cd606fac1145800b42547d8d44b508fa6857fcd0/turbohtml-1.10.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:ffe72bff195a479e4811fb704d0fdaa33717893ebcf246f337d91c96e49eb8e7", size = 1621608, upload-time = "2026-09-24T21:59:09.011Z" }, + { url = "https://files.pythonhosted.org/packages/a1/4d/d4b5ab6fe192c56db95de48389a5fc6aa857295df2c282c01977bb97c0e5/turbohtml-1.10.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:702cc0c00754eca0531a7fdb804d98e36cdb79192bebd0a174016acc00e6dbe8", size = 1457298, upload-time = "2026-09-24T21:58:33.144Z" }, + { url = "https://files.pythonhosted.org/packages/11/28/2c8eeea4ba04ab333a7c5911c52464952439785318d4781678281b50b176/turbohtml-1.10.0-cp315-cp315t-manylinux_2_28_aarch64.whl", hash = "sha256:5d45a01b10fd5eb4117e959f52349a621e7a154ba2d24ecbe25fb9c979abd9af", size = 1563687, upload-time = "2026-09-24T21:59:11.654Z" }, + { url = "https://files.pythonhosted.org/packages/7a/a9/399f4525643b7c4205359f26908487de1cbf8b520ff8ff38646342f01cab/turbohtml-1.10.0-cp315-cp315t-manylinux_2_28_x86_64.whl", hash = "sha256:08064d33db70a04231ef70cdf88fc038e778f9c6ef6c08e543244b2f7c40a156", size = 1610603, upload-time = "2026-09-24T21:59:10.984Z" }, + { url = "https://files.pythonhosted.org/packages/09/3d/91ac95593de11942e9021cd2d6a7219b6afc345118d4e8d71fae9b88b0b0/turbohtml-1.10.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:19528d9ac387ebd89c8083adf77c194d1fc553c01a777fc1158db437b1ee23b7", size = 1583422, upload-time = "2026-09-24T21:59:13.758Z" }, + { url = "https://files.pythonhosted.org/packages/33/b5/47a7b9abecd16df67addadb4ea01cc0cdb608b480234756b2a793731c0fa/turbohtml-1.10.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:8806189da106986e3d3df695eca250dc935fcfafc077bd3ae7e111cd99b29498", size = 1624867, upload-time = "2026-09-24T21:59:13Z" }, + { url = "https://files.pythonhosted.org/packages/ac/a6/6c0e7950d84306a470d523d3ec4cb6aee7942ed75056aa4fb3f0174d20f1/turbohtml-1.10.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:149e80b94b5a28b4799158306e7c8da2fca2cd55600374bb5c4d48403410d962", size = 1439722, upload-time = "2026-09-24T21:58:40.978Z" }, + { url = "https://files.pythonhosted.org/packages/ce/26/21425ccc18a0085cbc0f3ab7b9f0372273934ae3614b405a2a666eca4e3c/turbohtml-1.10.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:ab81284db98aa9a75e125dc88baf9b08ccd6ae628951435b31dccd65270a4e51", size = 1611998, upload-time = "2026-09-24T21:59:17.911Z" }, + { url = "https://files.pythonhosted.org/packages/0c/cf/ab65ae59b3c31add2cd4cddd6473720c5f6113fc9b3099fa80a119e9b9eb/turbohtml-1.10.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:47b2ec25547e5461cd9bef807701443588790c39472d0400d60f74ad6d2ba12f", size = 1664674, upload-time = "2026-09-24T21:59:16.917Z" }, +] + [[package]] name = "twisted" version = "26.4.0" @@ -5201,18 +5358,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/80/87/b9fd69c92c6102a066e1b86a35243f53e70bd4c709f2a26d9f4fee4f4dc0/typer-0.26.8-py3-none-any.whl", hash = "sha256:3512ca79ac5c11113414b36e80281b872884477722440691c89d1112e321a49c", size = 122564, upload-time = "2026-06-26T09:22:44.72Z" }, ] -[[package]] -name = "types-bleach" -version = "6.4.0.20260607" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "types-html5lib" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/39/e7/07438d4d0bd58c69e79d0d8aa0320a2005b08d10cac209dd812b3609227c/types_bleach-6.4.0.20260607.tar.gz", hash = "sha256:62ff099b9d25fbcccb1402651c14a465a5f54a24138be987442d2eed38aca91c", size = 11686, upload-time = "2026-06-07T06:11:40.035Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/6c/93/44da16cfa99a3f47fcb35e6b7396c94c3530e2028d2b1027cc4ce6d95d8d/types_bleach-6.4.0.20260607-py3-none-any.whl", hash = "sha256:fc07e2fd0ef9bc0a22026e8abe589d76c5d06ea885d70357263a4ff8c3dc8516", size = 11985, upload-time = "2026-06-07T06:11:38.996Z" }, -] - [[package]] name = "types-cffi" version = "1.17.0.20250915" @@ -5227,15 +5372,15 @@ wheels = [ [[package]] name = "types-channels" -version = "4.3.0.20260408" +version = "4.3.0.20260518" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "asgiref" }, { name = "django-stubs" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/a6/b0/f5104254ea6cb193fa3d01f473a34a6262e10782a35b7779633fbe2a70cd/types_channels-4.3.0.20260408.tar.gz", hash = "sha256:0abc00c87f7df0770580e1f28a562987c691ce7a3cd38bd86633d0c68058a380", size = 15421, upload-time = "2026-04-08T04:36:32.888Z" } +sdist = { url = "https://files.pythonhosted.org/packages/16/35/e1048eb8dc607873682a60bb034870b5135b34ee7c788c77012b04e179fa/types_channels-4.3.0.20260518.tar.gz", hash = "sha256:c1045a7f6e36b127e0c1c776a1727734cbbd1e36c4340414985ad4c3dde48d20", size = 15549, upload-time = "2026-05-18T06:06:16.092Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/3e/f7/f246612d79681ad6520559190bcb5ec436f26e2413acdf23746e4a8ba727/types_channels-4.3.0.20260408-py3-none-any.whl", hash = "sha256:757f708c18196fcf2f84261427ade0e2b7ca4554a8896b8f329c9067fdabb263", size = 21089, upload-time = "2026-04-08T04:36:32.032Z" }, + { url = "https://files.pythonhosted.org/packages/fc/e3/939312e5a5f184fe54f17e323a81426d19eddde0ed25ed745fcba5c8e515/types_channels-4.3.0.20260518-py3-none-any.whl", hash = "sha256:98443bd8a5892d87b535b3b54a409441d401a60df3c426f82a79faae12bdd8e7", size = 21120, upload-time = "2026-05-18T06:06:15.045Z" }, ] [[package]] @@ -5256,18 +5401,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/5a/4fc8ea9c86e10465e820f920bc4983137c356b75b12b81574bb9b4d42605/types_dateparser-1.4.3.20260907-py3-none-any.whl", hash = "sha256:344c979fe7c0633f0a4f5098d7b26402a4969806ef7fc22f902d303f061593e1", size = 25729, upload-time = "2026-09-07T06:43:18.074Z" }, ] -[[package]] -name = "types-html5lib" -version = "1.1.11.20251117" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "types-webencodings" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/c8/f3/d9a1bbba7b42b5558a3f9fe017d967f5338cf8108d35991d9b15fdea3e0d/types_html5lib-1.1.11.20251117.tar.gz", hash = "sha256:1a6a3ac5394aa12bf547fae5d5eff91dceec46b6d07c4367d9b39a37f42f201a", size = 18100, upload-time = "2025-11-17T03:08:00.78Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f0/ab/f5606db367c1f57f7400d3cb3bead6665ee2509621439af1b29c35ef6f9e/types_html5lib-1.1.11.20251117-py3-none-any.whl", hash = "sha256:2a3fc935de788a4d2659f4535002a421e05bea5e172b649d33232e99d4272d08", size = 24302, upload-time = "2025-11-17T03:07:59.996Z" }, -] - [[package]] name = "types-markdown" version = "3.10.2.20260712" @@ -5357,15 +5490,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2b/7f/016dc5cc718ec6ccaa84fb73ed409ef1c261793fd5e637cdfaa18beb40a9/types_setuptools-80.10.0.20260124-py3-none-any.whl", hash = "sha256:efed7e044f01adb9c2806c7a8e1b6aa3656b8e382379b53d5f26ee3db24d4c01", size = 64333, upload-time = "2026-01-24T03:18:38.344Z" }, ] -[[package]] -name = "types-webencodings" -version = "0.5.0.20251108" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/66/d6/75e381959a2706644f02f7527d264de3216cf6ed333f98eff95954d78e07/types_webencodings-0.5.0.20251108.tar.gz", hash = "sha256:2378e2ceccced3d41bb5e21387586e7b5305e11519fc6b0659c629f23b2e5de4", size = 7470, upload-time = "2025-11-08T02:56:00.132Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/45/4e/8fcf33e193ce4af03c19d0e08483cf5f0838e883f800909c6bc61cb361be/types_webencodings-0.5.0.20251108-py3-none-any.whl", hash = "sha256:e21f81ff750795faffddaffd70a3d8bfff77d006f22c27e393eb7812586249d8", size = 8715, upload-time = "2025-11-08T02:55:59.456Z" }, -] - [[package]] name = "typing-extensions" version = "4.15.0" @@ -5525,11 +5649,11 @@ wheels = [ [[package]] name = "urllib3" -version = "2.7.0" +version = "2.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +sdist = { url = "https://files.pythonhosted.org/packages/e3/05/b17359e1cefb4f909b5e40b1b90a496d987258916dbbf88e842c729f510e/urllib3-2.8.0.tar.gz", hash = "sha256:63bf2ead4c879426ebf22ef2a781eeb4aa3b4ae798a0435506f8687fd5bb9b63", size = 458972, upload-time = "2026-09-15T19:29:36.253Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, + { url = "https://files.pythonhosted.org/packages/92/9d/c4e665119135114480843e7ab388fa94d8480650450e6f8e26b70d323a4c/urllib3-2.8.0-py3-none-any.whl", hash = "sha256:0cf3cae568d36aa9576b28dfb35f11328f1cb974ca7647d9475ebb86c75ac6e3", size = 135717, upload-time = "2026-09-15T19:29:34.577Z" }, ] [[package]] @@ -5581,94 +5705,39 @@ wheels = [ [[package]] name = "watchfiles" -version = "1.2.0" +version = "1.3.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/41/5e1a4bb12aac5f1493fa1bdc11154eca3b258ca4eba65d39c473fe19d8e9/watchfiles-1.2.0.tar.gz", hash = "sha256:c995fba777f1ea992f090f9236e9284cf7a5d1a0130dd5a3d82c598cacd76838", size = 108252, upload-time = "2026-05-18T04:32:04.251Z" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/68/e6aa0b77d217b31f8f486ec0cdfe5e00e6e38dc0be657e7d85819b9faf0a/watchfiles-1.3.0.tar.gz", hash = "sha256:99aee4a07847c06820765fd7b1b49ceac4f3f711ccb7d104655a33231de1c207", size = 108119, upload-time = "2026-09-21T09:08:55.664Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fc/3d/8024c801df84d1587740d0359e7fdd80afeae3d159011f3d5376dd82f18e/watchfiles-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:704fd259e332e01f9b9c178f4bce9e49027e5587cc2600eeeaf8e76e1c846201", size = 400242, upload-time = "2026-05-18T04:31:19.014Z" }, - { url = "https://files.pythonhosted.org/packages/87/5b/f4dfd45323e949984a3a7f9dc31d1cbb049921e7d98253488dda72ccdaa9/watchfiles-1.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:6543cf55d170003296d185c0af981f3e1311564907e1f4e08671fc7693a890a5", size = 394562, upload-time = "2026-05-18T04:30:08.46Z" }, - { url = "https://files.pythonhosted.org/packages/98/d8/19483ef075d601c409bce8bcbb5c0f81a10876fff870400568f08ce484a1/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89d8c2394a065ca86f5d2910ff263ae67c127e1376ccc4f9fc35c71db879f80a", size = 456611, upload-time = "2026-05-18T04:30:45.723Z" }, - { url = "https://files.pythonhosted.org/packages/b1/6a/cc81fbe7ee42f2f22e661a6e12def7807e01b14b2f39e0ff83fd373fd307/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:772b80df316480d894a0e3165fdd19cf77f5d17f9a787f94029465ad0e3529d1", size = 461379, upload-time = "2026-05-18T04:31:29.292Z" }, - { url = "https://files.pythonhosted.org/packages/b1/57/7e669002082c0a0f4fb5113bb70125f7110124b846b0a11bc5ae8e90eac1/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d158cd89df6053823533e06fb1d73c549133bff5f0396170c0e53d9559340717", size = 493556, upload-time = "2026-05-18T04:30:05.44Z" }, - { url = "https://files.pythonhosted.org/packages/45/7d/f60a2b19807b21fe8281f3a8da4f59eef0d5f96825ac4680ba2d4f2ebf91/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d516b3283a758e087841aedb8031549fb41ced08f3db10aa6d2bf32dc042525b", size = 575255, upload-time = "2026-05-18T04:30:40.568Z" }, - { url = "https://files.pythonhosted.org/packages/bd/49/77f5b5e6efbcd57482f74948ebb1b97e5c0046d6b61475042d830c84b3ff/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:53b2290c92e0506d102cd448fbc610d87079553f86caa39d67440856a8b8bba5", size = 467052, upload-time = "2026-05-18T04:31:17.942Z" }, - { url = "https://files.pythonhosted.org/packages/ee/5a/73e2959af1b97fd5d556f9a8bdba017be23ceeef731869d5eaa0a753d5a3/watchfiles-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a711b51aec4370d0dcda5b6c09463206f133a5759341d7744b953a7b62e1100e", size = 456858, upload-time = "2026-05-18T04:30:30.182Z" }, - { url = "https://files.pythonhosted.org/packages/50/57/1bc8c27fad7e6c19bddee15d276dbb6ab72480ec01c127afff1673aee417/watchfiles-1.2.0-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:e2ca07fa7d89195ec0865d3d285666286740bfa83d83e5cee204043a31ecc165", size = 467579, upload-time = "2026-05-18T04:32:15.897Z" }, - { url = "https://files.pythonhosted.org/packages/09/6c/3c2e44edba3553c5e3c3b8c8a2a6dee6b9e12ae2cf4bd2378bebf9dc3038/watchfiles-1.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e0618518f282c4ebff60f5e5b1247b6d91bb8b9f4476947563a1e74acc66f3c6", size = 633253, upload-time = "2026-05-18T04:31:37.123Z" }, - { url = "https://files.pythonhosted.org/packages/30/c2/d8c84a882ab39bbefcc4915ab3e91830b7a7e990c5570b0b69075aba3faf/watchfiles-1.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0d191c054d0715c3c95c99df9b8dbf6fd096d8c1e021e8f212e1bd8bc444ccb5", size = 660713, upload-time = "2026-05-18T04:31:24.62Z" }, - { url = "https://files.pythonhosted.org/packages/b8/2f/e42c992d2afda3108ea1c02acecc991b9f31d05c14adc2a7cee9ee211fc4/watchfiles-1.2.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:bc13eb17538be00c874699dc0abe4ee2bc8d50bb1166a6b9e175ef3fd7eb8f26", size = 400115, upload-time = "2026-05-18T04:32:02.06Z" }, - { url = "https://files.pythonhosted.org/packages/5f/8f/6af2ea19065c91d8b0ea3516fdfc8c0d349f407e8e9fbf4e5a17360de8ad/watchfiles-1.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d95ddc1eb6914154253d239089900813f6a767e174b8e6a50e7fdacb7e4236c", size = 393659, upload-time = "2026-05-18T04:30:50.951Z" }, - { url = "https://files.pythonhosted.org/packages/13/01/b32a967c56fb3e3e5be3db52c3d3b87fa4513aa367d8ed1ad96d42952e5f/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f70d8b291ef6e88d19b1f297a6905ddb978888d9272b0d05e6f53309856bcfc", size = 453207, upload-time = "2026-05-18T04:31:04.231Z" }, - { url = "https://files.pythonhosted.org/packages/04/98/97557a812180338cb1abd32e1cffcc4588f59b5f23e0cb006b2ba95ba64a/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:56d8641cf834c2836922899105bd3ce3d0dfc69291d52edf0b4d0436829b34c0", size = 459273, upload-time = "2026-05-18T04:31:50.377Z" }, - { url = "https://files.pythonhosted.org/packages/e8/a8/b4b08dcb7653b8087c6586f7ce649505900e866bbcfe40dc9587af02e686/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2581a94056e55d7d0a31a823ea92bf73749c489ca2285bfdc0fbe6b2bb49d50c", size = 489927, upload-time = "2026-05-18T04:31:42.485Z" }, - { url = "https://files.pythonhosted.org/packages/50/94/3dceea03545d2e5ddfd839f0ddd5e1cecbf1697b5a428d5ba11cef6af95d/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41bc1199f7523b3f82843c88cbb979180c949caef0342cf90968f178e5d49b01", size = 570476, upload-time = "2026-05-18T04:31:03.071Z" }, - { url = "https://files.pythonhosted.org/packages/cc/f2/d39a5450c3532092b91f81d274360e613c2371bc874a89c7a1a3c5e8d138/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7571e4464cb6e434958f867f7f730b8ab0b75e3f8e5eac0499168486ab3c33a8", size = 465650, upload-time = "2026-05-18T04:30:12.701Z" }, - { url = "https://files.pythonhosted.org/packages/22/24/ed72f68cbc1333ca9b9f2200aa048bb6658ae41709bc1caad4310f4bdffd/watchfiles-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e53a384f76b631c3ae5334ce6a52f0baa3a911eb94a4eac7f160079868b716d5", size = 456398, upload-time = "2026-05-18T04:30:13.784Z" }, - { url = "https://files.pythonhosted.org/packages/0d/64/982ef4a4e5bab5b6e5b6becc8cd5e732f6130a78b855f0abec6439a9a135/watchfiles-1.2.0-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:d20029a60a71a052a24c4db7673bc4de39ab89adbaccbfb5d67987c5d73f424d", size = 465140, upload-time = "2026-05-18T04:31:52.111Z" }, - { url = "https://files.pythonhosted.org/packages/a0/0c/95282abf4ed680b6096010bcfc30c5fa7a041fc5aa5a2ad17a2cc6c75bba/watchfiles-1.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:2cb93af48550faf1cea04c303107c8b75833de7013e57ce27d3b8d21d8d0f58c", size = 630259, upload-time = "2026-05-18T04:31:25.676Z" }, - { url = "https://files.pythonhosted.org/packages/30/45/607c1de1530c4bdcf2cf1d1ecc2505ddba5d96bd43ba9f2b0e79876f850f/watchfiles-1.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2995c176de7692b86a2e4c58d9ec718f753150a979cb4a754e2b4ffa38e70906", size = 659859, upload-time = "2026-05-18T04:30:24.333Z" }, - { url = "https://files.pythonhosted.org/packages/d1/4d/70a7feced9f87e2ff26dba42667290f41694fc64646c67261fbb8cab5d5c/watchfiles-1.2.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:01ea8d66f0693b9b60a6541c8d10263091ca9a9060d242f3c1f3143f9aad2c98", size = 399730, upload-time = "2026-05-18T04:31:38.162Z" }, - { url = "https://files.pythonhosted.org/packages/31/3a/0da302f2307aee316922806ebd5726c542cbd787c938271cf14a074c7daf/watchfiles-1.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7ba0480b9a74af058f43b337e937a451e109295c420916d68ad24e3dc02f5e44", size = 392842, upload-time = "2026-05-18T04:30:27.051Z" }, - { url = "https://files.pythonhosted.org/packages/db/ef/d5bdb705c224dbc256aa0c1ec47bf4e61ec52558f2afb44a71a1fe4d7015/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f34e26a19f91f710c08e0183429f0d1d15df734e6bc78c31e77b9ea9c433658", size = 452989, upload-time = "2026-05-18T04:31:11.945Z" }, - { url = "https://files.pythonhosted.org/packages/71/29/5495f2c1661949ef7a35e4d71111d129cfe7606414a26887a919d0a55406/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b4e77f6a55f858504069abd35d336a637555c09bca453dde1ee1e5ada8a6a1fb", size = 458978, upload-time = "2026-05-18T04:30:52.606Z" }, - { url = "https://files.pythonhosted.org/packages/d5/8c/7f9c07c433811c2fffd93e13fdfb7135de9aab5f2ae41be08960fa0047dc/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0cb4d80e212f116474a545c21c912b445f16bb0cef9e6a73a498164223e14e2f", size = 490248, upload-time = "2026-05-18T04:31:36.003Z" }, - { url = "https://files.pythonhosted.org/packages/3c/11/d93632febc52fbc21be90231bb7c17fd5387f46c9076fd40a5f9c2ae6910/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b974946a10af379d425e2eef5b62f5c6ebeaccf91d45eaad6f5b27ecd4f91aa0", size = 571847, upload-time = "2026-05-18T04:31:10.862Z" }, - { url = "https://files.pythonhosted.org/packages/55/b4/383173e73aabb07ad1d9c7aa859d95437ac46a6d6a1e11005facda0c9d19/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86bc13c25a8d1fcd70b51d0ce7c9b65e90de5666fcbfd3e34957cc73ee19aeb5", size = 465974, upload-time = "2026-05-18T04:30:17.006Z" }, - { url = "https://files.pythonhosted.org/packages/a7/6c/89b1a230a78f57c52dd8893adb1f92f94411721b6ec12596c56d98c74356/watchfiles-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca148d73dea36c9763aaa351e4d7a51780ec1584217c45276f4fe8239c768b71", size = 454782, upload-time = "2026-05-18T04:30:35.656Z" }, - { url = "https://files.pythonhosted.org/packages/24/62/1732118367cfff0a9fce3bf62ff4bfded09ef5df21d9d446b858b3f70a96/watchfiles-1.2.0-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:c525543d91961c6955b2636b308569e84a1d1c5f5f2932041ab9ef46422f43e3", size = 465182, upload-time = "2026-05-18T04:30:20.846Z" }, - { url = "https://files.pythonhosted.org/packages/28/96/716f7e5f51339bf22963f3345f9f27d7f3b30e2eadc597e257c881dd3c53/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a204794696ffb8f9b10fba6f7cb5216d42f3b2b71860ccac6b6e42f5f10973b0", size = 629841, upload-time = "2026-05-18T04:31:05.397Z" }, - { url = "https://files.pythonhosted.org/packages/4c/fe/c40783950fd771ccf66ab3ec2722d188a9af1c7f96c6e811f36e40c6e03f/watchfiles-1.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:10d86db20695afe7997ac9e1717637d6714a8d0220458c33f3d2061f54cec427", size = 658028, upload-time = "2026-05-18T04:31:48.22Z" }, - { url = "https://files.pythonhosted.org/packages/37/68/36db056f1fdcc5f07302f56e631774d6835bcd6fa3ace402304621d5f9e5/watchfiles-1.2.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:faea288b6f0ab1902ef08f4ca6de005dccf856c4e0c4f21b8c5fce02d90a1b08", size = 399031, upload-time = "2026-05-18T04:30:44.576Z" }, - { url = "https://files.pythonhosted.org/packages/c1/64/01a9d6f66a82a5c101ce939274106cc72759d62427e153f01edd2b9f87c2/watchfiles-1.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:01859b11fd9fbca670f4d5da00fbac282cfea9bd67a2125d8b2833a3b5617ea9", size = 391205, upload-time = "2026-05-18T04:30:25.413Z" }, - { url = "https://files.pythonhosted.org/packages/84/2c/0a44fe058cb4bb7b8ede6b6670698bbb7c0400740e378d00022189b7b31d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fff610d7bb2256a317bb1e96f0d7862c7aa8076733ee5df0fd41bbe76a24a4f4", size = 451892, upload-time = "2026-05-18T04:32:14.005Z" }, - { url = "https://files.pythonhosted.org/packages/67/a1/351e0d56cd35e6488b5c8b4fb11a809a5bc923e8fe8fed9faf8920be0c89/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b141a4891c995a039cd89e9a49e62df1dc8a559a5d1a6e4c7106d16c12777a55", size = 458867, upload-time = "2026-05-18T04:31:22.279Z" }, - { url = "https://files.pythonhosted.org/packages/d5/7d/9d09605187f1b838998624049fcf8bf47b73c1a3b76901fcac1782f62277/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f22943b7770483f6ea0721c6b11d022947a98eb0acae14694de034f4d0d38925", size = 490217, upload-time = "2026-05-18T04:31:43.657Z" }, - { url = "https://files.pythonhosted.org/packages/60/5d/a17a16eccb182f04188cd308ec24b1a71a9b5c4e7098269cf35d9fa56d02/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1bc6195825b7dcd217968bb1f801a60fd4c16e8eeab5bedc7fe917d7d5995ab4", size = 571458, upload-time = "2026-05-18T04:32:11.875Z" }, - { url = "https://files.pythonhosted.org/packages/d3/3d/4dd457062083ab1938e5dfd45032eb425cee2ac817287ca8ff4356183e5d/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d4a4b147f5dca2a5d325a06a832fb43f345751adfbc63204aec30e0d9ca965a2", size = 464707, upload-time = "2026-05-18T04:30:43.492Z" }, - { url = "https://files.pythonhosted.org/packages/c6/71/ea8c57b128f5383de74d0c7d2d9c57ad7c9a65a930c451bd25d524b295b7/watchfiles-1.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4543579a9bdb0c9560039b4ffddbdb39545707659fbc430ce4c10f3f68d557f9", size = 454663, upload-time = "2026-05-18T04:30:16.061Z" }, - { url = "https://files.pythonhosted.org/packages/53/fd/2e812bf938406d7db351f0703ddd3fc6c061cf30d96153a77bc79a943a44/watchfiles-1.2.0-cp313-cp313t-manylinux_2_31_riscv64.whl", hash = "sha256:20aa0e708b920bde876a4aa82dc7dd6ebea228a63a67cda6632c2fc87b787efa", size = 463537, upload-time = "2026-05-18T04:31:44.9Z" }, - { url = "https://files.pythonhosted.org/packages/86/56/d17a7f1dd1bc3035f1072694a551301272f1739c2d8e319c927cb9e29b38/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:d413349d565dab74297f2a63e84a097936be69bf8f3b3801f27f380e32040f44", size = 629194, upload-time = "2026-05-18T04:31:14.141Z" }, - { url = "https://files.pythonhosted.org/packages/be/06/f1ff66bf5cae50aa4062779a0ecd0bbaf15e466195719074078947d9a17d/watchfiles-1.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:f28b2725eb8cce327b9b3ab02415c853011dc55c95832fe90de6bc56f5315f72", size = 656194, upload-time = "2026-05-18T04:31:47.14Z" }, - { url = "https://files.pythonhosted.org/packages/e7/54/a9c7ea9a82a4ac65e7004c0a03920b5cdd2f9c3b678757d9cd425aa51d53/watchfiles-1.2.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:b8c8358484d5fa12ef34f05b7f4168eaf1932f408725ff6d023c33ec17bd79d4", size = 400205, upload-time = "2026-05-18T04:32:05.153Z" }, - { url = "https://files.pythonhosted.org/packages/aa/5d/c9ab3534374a4a67450696905d6ef16a04405448b8dc52bd752ae50423d4/watchfiles-1.2.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:9f04b092229ad2c50126dd3c922c8822e51e605993764a33058d4a791ab42281", size = 392508, upload-time = "2026-05-18T04:30:54.849Z" }, - { url = "https://files.pythonhosted.org/packages/26/ca/1ad30103535cf0cecd7b993e8d50edc5351b1820e38f2d22e3df58962feb/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a7ce236284f002a156f70add88efe5c70879cccbb658be0822c54b1306fc09d", size = 452448, upload-time = "2026-05-18T04:30:53.727Z" }, - { url = "https://files.pythonhosted.org/packages/37/a1/ceee2cdf2afbd715fa07758d39c9859513eae411b23196f7fd039e5feedd/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b9909cc2b48468b575eefa944919e1fe8a36c5849d5c7c168f80a8c1db69398e", size = 459605, upload-time = "2026-05-18T04:30:23.312Z" }, - { url = "https://files.pythonhosted.org/packages/e8/f6/421e30fd1cb3907a84ed92ab3f1983e37ba2dca015e9a894a048418417a2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a37faaed405c67e28e6be45a1fa4f206ef5a2860f27c237db9fa30704c38242", size = 490757, upload-time = "2026-05-18T04:30:47.358Z" }, - { url = "https://files.pythonhosted.org/packages/41/b0/55ed1b97ed08be7bba6f9a541cac15f2a858e1d74d2b07b6da70a82aab00/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9649193aa27bd9ff2e80ff29bfaa93085496c7a3a377592823cc58b77ee88add", size = 568672, upload-time = "2026-05-18T04:30:38.915Z" }, - { url = "https://files.pythonhosted.org/packages/d1/cf/d8ae8a80dd7bafab395ea7681c10237311bbf34d37704a8c744e7cf31fc7/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4e4ff8e37f99cf1da89e255e07c9c4b37c214038c4283707bdec308cb1b0ea1f", size = 464197, upload-time = "2026-05-18T04:30:09.914Z" }, - { url = "https://files.pythonhosted.org/packages/7c/8a/3076c496ca8dafe0e8cd03fcebdfc47be4b1174b4e5b24ff6e396e6b3af2/watchfiles-1.2.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:054dc20fd2e3132b4c3883b4a00d72fd6e1f56fdaf89fccd12e8057d74cd74d7", size = 453181, upload-time = "2026-05-18T04:30:14.829Z" }, - { url = "https://files.pythonhosted.org/packages/e5/10/9745e17c98e7b8a86454df0a3c7b5686bd650383f1e9f26e4ebcbd6cc0c0/watchfiles-1.2.0-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:e140ed30ebde76796b686e67c182cff10ea2fbab186fafd1560f74bb5a473a6e", size = 465109, upload-time = "2026-05-18T04:30:28.123Z" }, - { url = "https://files.pythonhosted.org/packages/8f/95/8ef4a95481d3e0cb52d62a06fa6e972e81424be2d9698b91a2fecca9904c/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:bb7e52ecf68ba46d22df23467b87cffeb2146908aa523ebfe803019618cfda06", size = 630653, upload-time = "2026-05-18T04:31:49.304Z" }, - { url = "https://files.pythonhosted.org/packages/fd/e4/3b3bf36b0f829b50c6ebcb8d031583863c59f923d6a6af3d485e470d0fac/watchfiles-1.2.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:23282a321c8baf9b3a3c4afff673f9fe65eb7fdc2338d765ccad9d3d1916a5ba", size = 657838, upload-time = "2026-05-18T04:31:06.497Z" }, - { url = "https://files.pythonhosted.org/packages/b1/75/fb64e6c25d6b5ca636d03df34ffb1c6e9873303e76d27967e045f8df088f/watchfiles-1.2.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:d73a585accffa5ae39c17264c36ec3166d2fad7000c780f5ef83b2722afb9dd2", size = 398857, upload-time = "2026-05-18T04:32:17.108Z" }, - { url = "https://files.pythonhosted.org/packages/73/4e/9f7adf01754cbf81843722ccfec169d8f26c69778281a302855cecd2ee08/watchfiles-1.2.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ae99b14c5f21e026e0e9d96f40e07d8570ebee6cafd9d8fc318354606daa7a28", size = 392413, upload-time = "2026-05-18T04:31:07.911Z" }, - { url = "https://files.pythonhosted.org/packages/47/c8/bec626bcc2d69f44b9acb24ce7d60ed7b16b73628eea747fcbd169d8edda/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4429f3b105524a10b72c3a819b091c495d2811d419c1e1e8df773a5a5974f831", size = 452409, upload-time = "2026-05-18T04:31:20.142Z" }, - { url = "https://files.pythonhosted.org/packages/00/b7/b6362068e81e7c556d155a34c35d40ac3ef42d747b06d7f6e5bf58e359c2/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43d818978d06062d9b22c4fab2ebe44cf5213d42dc8e62bda8c2760cfa2eeb33", size = 458827, upload-time = "2026-05-18T04:32:06.219Z" }, - { url = "https://files.pythonhosted.org/packages/67/f8/9a813fa42afb1e0b4625e75f0479826644d3ee8dc287e093799bc01f390c/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b9f732dc58b2dbe69e464ccf8fff7a03b0dd0be439da4c0720d3558527d3d6b4", size = 490104, upload-time = "2026-05-18T04:31:56.034Z" }, - { url = "https://files.pythonhosted.org/packages/2f/bf/27dfb6094ca4c9aad21298b5525b6c53cb36121ee454331d05161e58d130/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f200104103feb097de4cab8fe4f5dd18a2026934c7dea98c55a2f5fd6d5a33b", size = 571360, upload-time = "2026-05-18T04:31:57.133Z" }, - { url = "https://files.pythonhosted.org/packages/fb/39/44a096d67270ea93df91d33877dbe91fbda3aa4f8ec2edf799d93eda8736/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63ac26eefbf4af1741247d6fb68b11c49a25b2f7413fbd318a83a12aaa9cf666", size = 464644, upload-time = "2026-05-18T04:30:57.33Z" }, - { url = "https://files.pythonhosted.org/packages/0e/80/c7472203bad6268e3ef1ad260739704847898938ad7ea8b63a5131f46b50/watchfiles-1.2.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c4997d4e4a55f0d02b6cde327322daf3a0400e5df6c6b15948994bf72497925", size = 454771, upload-time = "2026-05-18T04:30:48.736Z" }, - { url = "https://files.pythonhosted.org/packages/51/cf/3b10b268b4b7f0fc26e9debb5eef1998b515887840f444cd3ec80c688755/watchfiles-1.2.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:4c887eba18b7945ac73067a8b4a66f21cd46c2539b2bc68588f7be6c7eb6d26b", size = 463494, upload-time = "2026-05-18T04:31:33.826Z" }, - { url = "https://files.pythonhosted.org/packages/3d/3e/a4302545cd589262a0dc7d140e86f7688eba3f9c72776c27f7e23b8864c4/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:3416ff151bb6b5a8d8d11664974fbef4d9305b9b2957839ab5a270468fd8df30", size = 629383, upload-time = "2026-05-18T04:31:15.596Z" }, - { url = "https://files.pythonhosted.org/packages/db/99/d5649df0a9a410d45b7c882304d0b790903ac9b6e8f2cfd12114e0c6b9f2/watchfiles-1.2.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:0e831a271c035d89789cffc386b6aa1375f39f1cd25eb7ca0997e4970d152fc5", size = 656093, upload-time = "2026-05-18T04:31:58.707Z" }, - { url = "https://files.pythonhosted.org/packages/92/b9/362702539275019a54dd2e94511b31a9b89c5f9e6a21966de7eb692549fc/watchfiles-1.2.0-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:37a6721cdf3f65dbb13aa9503510ccb4451603ac837e44d265d7992a597e1374", size = 400109, upload-time = "2026-05-18T04:31:16.879Z" }, - { url = "https://files.pythonhosted.org/packages/8f/75/71d5ba62db781e5587bded1d944c675374bc4aa37ff33d5018d98e8b6538/watchfiles-1.2.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:2b37d10b5a63bd4d87e18472d80fa525bd670586fae62e5dd580452764879b65", size = 392167, upload-time = "2026-05-18T04:31:28.058Z" }, - { url = "https://files.pythonhosted.org/packages/3c/01/c66dd95d0423fe30d31820e2d1d5bda773764131bbb6ac0cb1cf303ac328/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a105bc2283f67e8fbec74253ec2d94925de92ed72c0393f1206bf326b7b7b69", size = 452372, upload-time = "2026-05-18T04:31:00.836Z" }, - { url = "https://files.pythonhosted.org/packages/91/15/2fe99557e72f85627c6a8eed50d889e8d101623e060a22ad75b875cb932d/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5327989a465505f05cfe06f04fa9d0c2fd5432bb243e10e6f012b1bdca3c8579", size = 459596, upload-time = "2026-05-18T04:31:34.96Z" }, - { url = "https://files.pythonhosted.org/packages/ed/23/d4acfa0023367428ed48351b3b9b267893037b6cadae55620c61c24bcfd4/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ecb47f183a8025b2aa18b546725c3657e542112ae9c0613a2af79b4fa8d04ad7", size = 490869, upload-time = "2026-05-18T04:31:59.923Z" }, - { url = "https://files.pythonhosted.org/packages/a4/5f/3164cbdce06c9fb95c4f7b9e2f9760b5e2797af43a9ecc317ef42a23a278/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8520a4ab0e37f770afc34459c4f8f7019e153f9124dc101c15538365875d1ab2", size = 571641, upload-time = "2026-05-18T04:32:00.948Z" }, - { url = "https://files.pythonhosted.org/packages/41/e6/85d3731c55e65cd7690f3f803d24c139588aaf863e4bf2148fe7a7fa1a19/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71cd71740ed2c15211ebb237ced4e39a1cdf6f80566e5fe95428da1626f4fde6", size = 464444, upload-time = "2026-05-18T04:30:34.298Z" }, - { url = "https://files.pythonhosted.org/packages/f4/7d/562641012b8b09872742c3b8adf9629ec479fd78f8d68ae4a0c13da8add6/watchfiles-1.2.0-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f88af53d6ddaf72179ef613ddc905e6f4785f712b49b80b3bef9f3525e6194b4", size = 453593, upload-time = "2026-05-18T04:31:23.464Z" }, - { url = "https://files.pythonhosted.org/packages/56/fe/cb8ef3d6f929d14158fdaaad9925985b7310abc9384dcd4d82dd0016fb59/watchfiles-1.2.0-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:cee9d5efd929efdac5f7e58f72b3376f676b64050a91c5b99a7094c5b2317488", size = 465096, upload-time = "2026-05-18T04:31:30.384Z" }, - { url = "https://files.pythonhosted.org/packages/25/91/80908e835e100527a9267147b08c0eee1fa6ab0ffec15edc04d1d44885f7/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_aarch64.whl", hash = "sha256:b718bf356bbc15e559bd8ef41782b573b8ae0e3f177ab244b440568d7ea02cfb", size = 630638, upload-time = "2026-05-18T04:30:49.89Z" }, - { url = "https://files.pythonhosted.org/packages/46/4b/95ab2f256bb4af3cb2eb23b9317bda984ee6e0f11733a5c004a6c95b06e3/watchfiles-1.2.0-cp315-cp315-musllinux_1_1_x86_64.whl", hash = "sha256:922c0e019fe68b3ae392965a766b02a71ba1168c932cebc3733cd52c5fe5b377", size = 657684, upload-time = "2026-05-18T04:31:32.027Z" }, - { url = "https://files.pythonhosted.org/packages/23/f4/7513ef1e85fc4c6331b59479d6d72661fc391fbe543678052ac72c8b6c19/watchfiles-1.2.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:4674d49eb94706dfe666c069fc0a1b646ffcf920473492e209f6d5f60d3f0cc2", size = 403050, upload-time = "2026-05-18T04:30:36.753Z" }, - { url = "https://files.pythonhosted.org/packages/27/0b/a54103cfd732bb703c7a749222011a0483ef3705948dae3b203158601119/watchfiles-1.2.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:094b9b70103d4e963499bdea001ee3c2697b144cd9ae6218a62c0f89ec9e31db", size = 396629, upload-time = "2026-05-18T04:32:03.268Z" }, - { url = "https://files.pythonhosted.org/packages/5e/2c/73f31a3b893886206c3f54d73e8ad8dee58cdb2f69ad2622e0a8a9e07f4e/watchfiles-1.2.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b0ef001f8c25ad0fa9529f914c1600647ecd0f542d11c19b7894768c67b6acb7", size = 457318, upload-time = "2026-05-18T04:31:01.932Z" }, - { url = "https://files.pythonhosted.org/packages/e9/f9/45d021e4a5cc7b9dd567f7cbb06d3b75f751a690063fb6cc7ec60f4e46b7/watchfiles-1.2.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a88fc94e647bc4eec523f1caa540258eb71d14278b9daf72fa1e2658a98df0f0", size = 457771, upload-time = "2026-05-18T04:30:56.331Z" }, + { url = "https://files.pythonhosted.org/packages/68/fa/c0b840d5d8bafe640925408ce11095948c8945bb61be1e67d0ab629b872a/watchfiles-1.3.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:000b9688fc8133037a8b075c8ebf98f32844ff8964dda61e85c1db547dafc441", size = 399703, upload-time = "2026-09-21T09:08:13.518Z" }, + { url = "https://files.pythonhosted.org/packages/c7/8a/894799b485fe9473ad10422a0d9668e53fb78e3a2b5cc6061159572844ad/watchfiles-1.3.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:bbc1198edfdc90fda0600f825aa94150f428dfcbf8138746f55998e0e660d64c", size = 397647, upload-time = "2026-09-21T09:08:15.16Z" }, + { url = "https://files.pythonhosted.org/packages/5a/61/f277cd5ead05f5d37b98b41fbdd0c943ee0c04d49738f62e902cb291cf43/watchfiles-1.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4af9c464d410e8c44b58ddf1cbec7c3a02c1cb2c6c80df9c74659ba2fbda0ab5", size = 454994, upload-time = "2026-09-21T09:08:16.587Z" }, + { url = "https://files.pythonhosted.org/packages/46/66/ea4c01382975e53b1ac1b0a0ea1b353416b8127fb6e04f5c1c313119aab6/watchfiles-1.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb94e40b9a0db19636b5e3fed0a9803452ecc7381df13b385272abb779ee83ca", size = 460105, upload-time = "2026-09-21T09:08:17.961Z" }, + { url = "https://files.pythonhosted.org/packages/31/c3/1a501b597817096c9831c255f6270c124ce0e2faeb74124be24dcc93b86d/watchfiles-1.3.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7398930a2b76b9dc67a4e6b8bfc7baf30946892a86f417a3920c07bdd6febc30", size = 493761, upload-time = "2026-09-21T09:08:19.327Z" }, + { url = "https://files.pythonhosted.org/packages/5a/16/77352d05e152c7786a016e9f1decdb4507e8aa5bcf3343c72142a0413d14/watchfiles-1.3.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:025b108f2d5cc2799cb941f79380df3e8b22bfb589c218e801767fe78d598c95", size = 577500, upload-time = "2026-09-21T09:08:20.723Z" }, + { url = "https://files.pythonhosted.org/packages/95/fe/81001c55b24466fe9911135e50269fd3a29f43e446627a92adfab54553b6/watchfiles-1.3.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:be9ef3cd403d756a304a0a08a112163c63da7ec72c8c9d083c98818291ff8f29", size = 469209, upload-time = "2026-09-21T09:08:22.346Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cf/e3ad894ed5909a7c44b0707e89bc25d19a3d78b3a7aec846119443b6ae56/watchfiles-1.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5768b49e426fd5b550b012c866db347cdf15c398ef98dc557b6e6b72fa74cd1", size = 458353, upload-time = "2026-09-21T09:08:23.7Z" }, + { url = "https://files.pythonhosted.org/packages/7f/f5/2f106829e6e2bc91ad74614730f6df484202b9a4d20d927dbf2f08d37d44/watchfiles-1.3.0-cp310-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:d36c72fcdc08f143d87316a4c4c3b064e340da2c7383d39803950740ed418935", size = 468707, upload-time = "2026-09-21T09:08:25.167Z" }, + { url = "https://files.pythonhosted.org/packages/15/37/2741ab776b978669c1f3bba1e573f1a184f727ab8b4d3a6d9c61090800ed/watchfiles-1.3.0-cp310-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:f0c9865240e065a2247f4b5248528ae3d01e0e8ae071462c250c884dc16e3ee3", size = 632510, upload-time = "2026-09-21T09:08:26.532Z" }, + { url = "https://files.pythonhosted.org/packages/48/64/db4a4684275fe9b696ee5118c194705c1423b3d42181c3f8ee70194d5c73/watchfiles-1.3.0-cp310-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:380f513d26cc2e598266b88d66456e07d67ef4be8f0f435a1154d9c44b43d509", size = 661723, upload-time = "2026-09-21T09:08:28.004Z" }, + { url = "https://files.pythonhosted.org/packages/4f/55/a122743607939429ab6a7272672f49303aa02bbd34c3f06676765a3861de/watchfiles-1.3.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:e0204f90677b7fb8d3a824279a71a01166bea9f6e53923b8056592d87b33b0b6", size = 395978, upload-time = "2026-09-21T09:08:32.747Z" }, + { url = "https://files.pythonhosted.org/packages/3e/9d/0ee1b0ea42acfe72afa2484f0222e2386dd09992e9034a81e63cc3cdab0a/watchfiles-1.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7c1125e99f84934a92996ae343501285617373acd66f16b59fd5654b27ad8d80", size = 387997, upload-time = "2026-09-21T09:08:33.953Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f2/4319c6b683e8bd28465dfc53c750617a2a07f072eb2e3ab0182ccf812229/watchfiles-1.3.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a85e243c87109d9f48a2e0d10d6abdee8768cc114848b32281ec83d7f81d86ef", size = 448067, upload-time = "2026-09-21T09:08:35.104Z" }, + { url = "https://files.pythonhosted.org/packages/b7/71/9f37ac192a51a24de3a2d7fe9aac1e99b2b2668300674ff7a9f85d95beb1/watchfiles-1.3.0-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dd538c71766c59c732e2c5cedc39323c99c11897b99f93eac773438e54af206a", size = 452881, upload-time = "2026-09-21T09:08:36.238Z" }, + { url = "https://files.pythonhosted.org/packages/34/07/1224667c32a4a96876ddd642da69733cbfe6a15897db0865aec5a882cebc/watchfiles-1.3.0-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da213822ec9082b62cadf3008e07a8c690ec7a3c89f6dc5e55a8cf07b56a1b26", size = 484802, upload-time = "2026-09-21T09:08:37.717Z" }, + { url = "https://files.pythonhosted.org/packages/bd/4d/7f29cd87e1f826df86fc0418d0b8f370ca0311c29c618406dc492aad9951/watchfiles-1.3.0-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4593392e87669836670f87d62fc754059eaeb0e6157af44060a46558cebe5a3", size = 567522, upload-time = "2026-09-21T09:08:38.94Z" }, + { url = "https://files.pythonhosted.org/packages/e3/ac/3aa1f84abd4dbbfbae99a817dd931f77b439261c911189cad4c30fdfd470/watchfiles-1.3.0-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26b81bc515a0f03f66a69a6fea86eea54c8eca4173c46dd7222569f79dd2f977", size = 461997, upload-time = "2026-09-21T09:08:40.142Z" }, + { url = "https://files.pythonhosted.org/packages/82/1c/27c66764d5b0dbb70a36770a32eca217eba739c28b24e8583a035087a3d7/watchfiles-1.3.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ca39661934749df580d89f3dde266f2af7c6968f4c21c72ce2dc387d299e6aa7", size = 451856, upload-time = "2026-09-21T09:08:41.305Z" }, + { url = "https://files.pythonhosted.org/packages/1e/b3/a45827084d953c1d0dd3d75abf85dcac26a0f5d115ad2fe0b7e9e931573b/watchfiles-1.3.0-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:04c5500faa725d69a99b0f63750e80795e455bb951849e9c98a811b4324997c4", size = 459889, upload-time = "2026-09-21T09:08:42.58Z" }, + { url = "https://files.pythonhosted.org/packages/7a/3d/07740d23ce2bb23419bb24055c435a9abe5fe03efdaea1ba0720b831aab6/watchfiles-1.3.0-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:ec3cd4bb181a7b6329134204c2277c7144ab5f62cce9c5335d6f901ee7ce8d6a", size = 624482, upload-time = "2026-09-21T09:08:44.064Z" }, + { url = "https://files.pythonhosted.org/packages/91/46/9540f8123eaec86df989f26d7704cad0448d9fb7271763a4f8f9fe23617d/watchfiles-1.3.0-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:e5871d4a7f788a9f64fb06f5793389d29d171e5c32d37c3ebfd520b017cc7694", size = 653724, upload-time = "2026-09-21T09:08:45.257Z" }, + { url = "https://files.pythonhosted.org/packages/cd/eb/289fec71eba51d6c3ef3a28c81f7213f4e860084ffae5abc866933c564f0/watchfiles-1.3.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:45726c6b5a8d67c8087eb2933c4398948546d04206ef40f629dc4881d65d23d1", size = 396932, upload-time = "2026-09-21T09:08:50.217Z" }, + { url = "https://files.pythonhosted.org/packages/92/cc/a3c3f557992a20a5bb24607f0da44d39cf6d6ba3f8f6ed7cb31f6c73371a/watchfiles-1.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:6398d250994baff581147ccba846223076fe6492ca93c0d1b3588fcf5355eb5c", size = 394852, upload-time = "2026-09-21T09:08:51.412Z" }, + { url = "https://files.pythonhosted.org/packages/55/65/d45763a5e1108a65af85a217af2930ebf1081c73fd8169d3f75e586992bb/watchfiles-1.3.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:591de392458bca26f6130fea4e667c06b657e873ad334ea06fad5a79f5086cef", size = 451789, upload-time = "2026-09-21T09:08:53.144Z" }, + { url = "https://files.pythonhosted.org/packages/02/96/165c6e540bf765ca1115062017adf861d0816525f02464ba71313fe7cf92/watchfiles-1.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5ec46a1ff4c1d81405a5fc645abdbff5e4e9388f7c9a6cdb392316a7c29b884f", size = 456919, upload-time = "2026-09-21T09:08:54.372Z" }, ] [[package]] @@ -5680,15 +5749,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f2/3e/45583b67c2ff08ad5a582d316fcb2f11d6cf0a50c7707ac09d212d25bc98/wcwidth-0.5.0-py3-none-any.whl", hash = "sha256:1efe1361b83b0ff7877b81ba57c8562c99cf812158b778988ce17ec061095695", size = 93772, upload-time = "2026-01-27T01:31:43.432Z" }, ] -[[package]] -name = "webencodings" -version = "0.5.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, -] - [[package]] name = "whitenoise" version = "6.12.0" @@ -5872,27 +5932,28 @@ wheels = [ [[package]] name = "zensical" -version = "0.0.60" +version = "0.0.65" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, { name = "deepmerge" }, { name = "jinja2" }, { name = "markdown" }, + { name = "pathspec" }, { name = "pygments" }, { name = "pymdown-extensions" }, { name = "pyyaml" }, { name = "tomli" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/86/49/4b0ae6d31ef1371a5a33e23e443dbc46d66e039f7dcc4337a251b3b586e7/zensical-0.0.60.tar.gz", hash = "sha256:f83cf6afb1388c3ebd377df0309bafbbdf39b6aff55276a75b161e817e72dd6c", size = 4122761, upload-time = "2026-09-08T13:56:34.768Z" } +sdist = { url = "https://files.pythonhosted.org/packages/69/c6/df2df4ae707e45318e7699b7a9341e9130a75c73b51536a9d319ab74de7f/zensical-0.0.65.tar.gz", hash = "sha256:35620265949eb426ebb4339bd091bed9a05648f28d52e61a79922ee1b109d9ab", size = 4228815, upload-time = "2026-09-24T18:07:43.828Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/0a/93/122b6cf3db52ac9375b570d0afcedb69ab624a84ef1e86da30d3464cf299/zensical-0.0.60-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:61348cf7491c6e0d7496828763aea58c3bf43c93153e49860e68d9b9897c3ff0", size = 14202456, upload-time = "2026-09-08T13:56:11.534Z" }, - { url = "https://files.pythonhosted.org/packages/dd/53/ca98938bf77fd6931fa1b56081d3c7c93ebac7c90f2ce761d5d33fddb3f8/zensical-0.0.60-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:2655d7f3d5ce3522791db6fe063876803edf8f119e5a24670649c3943d28f67e", size = 13951282, upload-time = "2026-09-08T13:56:14.42Z" }, - { url = "https://files.pythonhosted.org/packages/72/53/bdac9d90381c6c922bfe2589690d894b1a7c867bb677be6c6fc68f39b2ab/zensical-0.0.60-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:08eb76adb4d6cd902633f3db3aeb78e38693b91de7efa1a02d37cab8f03e7d1f", size = 14222451, upload-time = "2026-09-08T13:56:16.858Z" }, - { url = "https://files.pythonhosted.org/packages/62/6f/793dd1dc2905b199abac770e9c534a901c69d4a887148e2ba8deb44278ab/zensical-0.0.60-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:6bce6a25c9eee12be6c20a0b02d84c515dea37c41eabffd54b7c25ba53d219f6", size = 14244005, upload-time = "2026-09-08T13:56:19.538Z" }, - { url = "https://files.pythonhosted.org/packages/9c/8b/79d0be0cae79537f203cbdba78bbe1a286809b872d6b3bc3bc240df94c4d/zensical-0.0.60-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65aec11eaff5fa12bc548a16c8879856c66f549a2f8b1be5375d08e085899d7f", size = 14500231, upload-time = "2026-09-08T13:56:22.291Z" }, - { url = "https://files.pythonhosted.org/packages/11/ef/e8a067a968043c02ac18dc98ff28134f4bbcc89b28ebf79b5dc486b2e5e6/zensical-0.0.60-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:e41c1632e69a33d40dda2cb988478801c3fe9d8c9b415ef124b3e9fa3b541aa7", size = 14397275, upload-time = "2026-09-08T13:56:24.82Z" }, - { url = "https://files.pythonhosted.org/packages/a4/04/44c89ed5e6063685406e19a038d537d1a4e23827576855253aa6f325fcf0/zensical-0.0.60-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:db08984a78e3efccf44a94a9018b74822bacbe8d46acf6dbe1d70eba71dbf901", size = 14729268, upload-time = "2026-09-08T13:56:27.39Z" }, + { url = "https://files.pythonhosted.org/packages/2d/18/2cff20ec259ab7577ef17e51c67b63b0989e39b1a469ff4b8ea310f71805/zensical-0.0.65-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:62c3a61be738d147d27c499bd84ee2b9afe5c0b97ca072aad6de28e05122e9ee", size = 15334565, upload-time = "2026-09-24T18:07:17.099Z" }, + { url = "https://files.pythonhosted.org/packages/23/a7/3583b987894dbded915869c7df35016a0e256a7a48627ede009270a8549d/zensical-0.0.65-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:36ccd6f3e2c7e69d35015d4f4c4503146777a1c53d6bd9fbe7adbdc4cbd5a001", size = 15017811, upload-time = "2026-09-24T18:07:21.003Z" }, + { url = "https://files.pythonhosted.org/packages/77/7d/40912425a7a77ed929119768526209eb06792d3e0bd200bfd73c89b0ad6d/zensical-0.0.65-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab497d82ed535a04008f8d12e10f028ce8769f1bac34b19281fa5b99712e34e9", size = 15307106, upload-time = "2026-09-24T18:07:24.232Z" }, + { url = "https://files.pythonhosted.org/packages/05/e3/e65a583f0c7e849ce3298b7463fc4a607a3c242433e62b9bd14364272ddc/zensical-0.0.65-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:187f94c4cdfabad0afcec092af6d5944104efe48c6595ae057d54e3213892068", size = 15373933, upload-time = "2026-09-24T18:07:26.934Z" }, + { url = "https://files.pythonhosted.org/packages/b0/0e/55f64f4ac0d80fdb31a278a3b9434cf84742bfeff81ae9d121f1a35b3351/zensical-0.0.65-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64ff25ec94c16853ab0d9bd3cc4a0a569d1381a116a316bd10daab41ec26b3ff", size = 15646714, upload-time = "2026-09-24T18:07:29.649Z" }, + { url = "https://files.pythonhosted.org/packages/c4/fb/7e33ed0bafd8d2803b1bb66a540923a6020ac5dc0f4deee835215a5f3838/zensical-0.0.65-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:24f3d65ebdadc58519b0c72065777ed4767e9b4935a21f471798cdfe96fa948f", size = 15483203, upload-time = "2026-09-24T18:07:32.431Z" }, + { url = "https://files.pythonhosted.org/packages/b6/0f/7b1b9eb2f06ef5aba4efb5060a7289e2082ead11ed372ef10acdcfa5dad4/zensical-0.0.65-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:db9a1b36d08540072e3eb59841b0d6485de51d8c866fb6af8c4e5b771c6b681b", size = 15880927, upload-time = "2026-09-24T18:07:35.258Z" }, ] [[package]]