mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-10-12 19:17:13 +00:00
Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a2ead137a5 | ||
|
|
7a4ea36760 | ||
|
|
480fa42159 | ||
|
|
58e2a26215 | ||
|
|
a55869629d | ||
|
|
86750e2803 | ||
|
|
c5580b361f | ||
|
|
d642f02225 |
No files matched your search
@@ -66,7 +66,7 @@ services:
|
||||
command:
|
||||
- "gotenberg"
|
||||
- "--chromium-disable-javascript=true"
|
||||
- "--chromium-allow-list=^file:///tmp/.*"
|
||||
- "--chromium-allow-list=file:///tmp/.*"
|
||||
tika:
|
||||
image: docker.io/apache/tika:3.3.1.0
|
||||
restart: unless-stopped
|
||||
|
||||
@@ -38,6 +38,16 @@ jobs:
|
||||
uses: actions/labeler@bf12e9b00b37c5c0ca2b87b79b2daf7891dbda13 # v7.0.0
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Label by size
|
||||
uses: Gascon1/pr-size-labeler@deff8ed00a76639a7c0f197525bafa3350ba4c36 # v1.3.0
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
xs_label: 'small-change'
|
||||
xs_diff: '9'
|
||||
s_label: 'non-trivial'
|
||||
s_diff: '99999'
|
||||
fail_if_xl: 'false'
|
||||
excluded_files: /\.lock$/ /\.txt$/ ^src-ui/pnpm-lock\.yaml$ ^src-ui/messages\.xlf$ ^src/locale/en_US/LC_MESSAGES/django\.po$
|
||||
- name: Label by PR title
|
||||
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
|
||||
with:
|
||||
|
||||
+13
-4
@@ -43,17 +43,26 @@ Once you have submitted a **P**ull **R**equest it will be reviewed, approved, an
|
||||
|
||||
Important: Pull requests that implement a new feature or enhancement _should almost always target an existing feature request_ with evidence of community interest and discussion. This is in order to balance the work of implementing and maintaining new features / enhancements. Instead of opening a PR which does not meet this requirement, please open a feature request instead, to gather feedback from both users and the project maintainers.
|
||||
|
||||
## PR Review Process
|
||||
## Non-Trivial Requests
|
||||
|
||||
Our community review process for PRs is the following:
|
||||
PRs deemed `non-trivial` will go through a stricter review process before being merged into `dev`. This is to ensure code quality and complete functionality (free of side effects).
|
||||
|
||||
Examples of `non-trivial` PRs might include:
|
||||
|
||||
- Additional features
|
||||
- Large changes to many distinct files
|
||||
- Breaking or deprecation of existing features
|
||||
|
||||
Our community review process for `non-trivial` PRs is the following:
|
||||
|
||||
1. Must pass usual automated code tests and formatting checks.
|
||||
2. The PR will be assigned and pinged to the appropriately experienced team (i.e. @paperless-ngx/backend for backend changes).
|
||||
3. Development team will check and test code manually (possibly over several days).
|
||||
- You may be asked to make changes or rebase.
|
||||
4. One or more members of the team will approve and finally merge the request into `dev` 🎉.
|
||||
- The team may ask for additional testing done by @paperless-ngx/test
|
||||
4. **At least two** members of the team will approve and finally merge the request into `dev` 🎉.
|
||||
|
||||
This process might be slow as community members have different schedules and time to dedicate to the Paperless project. However it ensures community code reviews are thorough and of high quality.
|
||||
This process might be slow as community members have different schedules and time to dedicate to the Paperless project. However it ensures community code reviews are as brilliantly thorough as they once were with @jonaswinkler.
|
||||
|
||||
# Use of AI Tools
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ Paperless-ngx is a document management system that transforms your physical docu
|
||||
|
||||
Paperless-ngx is the official successor to the original [Paperless](https://github.com/the-paperless-project/paperless) & [Paperless-ng](https://github.com/jonaswinkler/paperless-ng) projects and is designed to distribute the responsibility of advancing and supporting the project among a team of people. [Consider joining us!](#community-support)
|
||||
|
||||
Thanks to the generous folks at [Fyra Stack](https://fyrastack.com), a demo is available at [demo.paperless-ngx.com](https://demo.paperless-ngx.com) using login `demo` / `demo`. _Note: demo content is reset frequently and confidential information should not be uploaded._
|
||||
Thanks to the generous folks at [DigitalOcean](https://m.do.co/c/8d70b916d462), a demo is available at [demo.paperless-ngx.com](https://demo.paperless-ngx.com) using login `demo` / `demo`. _Note: demo content is reset frequently and confidential information should not be uploaded._
|
||||
|
||||
- [Features](#features)
|
||||
- [Getting started](#getting-started)
|
||||
@@ -33,9 +33,13 @@ Thanks to the generous folks at [Fyra Stack](https://fyrastack.com), a demo is a
|
||||
- [Related Projects](#related-projects)
|
||||
- [Important Note](#important-note)
|
||||
|
||||
<p align="right">Demo hosting provided by:<br/>
|
||||
<a href="https://fyrastack.com">
|
||||
<img src="docs/assets/sponsors/fyra-stack.svg" alt="" width="28px" align="absmiddle"> Fyra Stack
|
||||
<p align="right">This project is supported by:<br/>
|
||||
<a href="https://m.do.co/c/8d70b916d462" style="padding-top: 4px; display: block;">
|
||||
<picture>
|
||||
<source media="(prefers-color-scheme: dark)" srcset="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_white.svg" width="140px">
|
||||
<source media="(prefers-color-scheme: light)" srcset="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_blue.svg" width="140px">
|
||||
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/SVG/DO_Logo_horizontal_black_.svg" width="140px">
|
||||
</picture>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ services:
|
||||
command:
|
||||
- "gotenberg"
|
||||
- "--chromium-disable-javascript=true"
|
||||
- "--chromium-allow-list=^file:///tmp/.*"
|
||||
- "--chromium-allow-list=file:///tmp/.*"
|
||||
- "--log-level=warn"
|
||||
- "--log-format=text"
|
||||
tika:
|
||||
|
||||
@@ -40,6 +40,7 @@ services:
|
||||
volumes:
|
||||
- dbdata:/var/lib/mysql
|
||||
environment:
|
||||
MARIADB_HOST: paperless
|
||||
MARIADB_DATABASE: paperless
|
||||
MARIADB_USER: paperless
|
||||
MARIADB_PASSWORD: paperless
|
||||
@@ -78,7 +79,7 @@ services:
|
||||
command:
|
||||
- "gotenberg"
|
||||
- "--chromium-disable-javascript=true"
|
||||
- "--chromium-allow-list=^file:///tmp/.*"
|
||||
- "--chromium-allow-list=file:///tmp/.*"
|
||||
tika:
|
||||
image: docker.io/apache/tika:3.3.1.0
|
||||
restart: unless-stopped
|
||||
|
||||
@@ -36,6 +36,7 @@ services:
|
||||
volumes:
|
||||
- dbdata:/var/lib/mysql
|
||||
environment:
|
||||
MARIADB_HOST: paperless
|
||||
MARIADB_DATABASE: paperless
|
||||
MARIADB_USER: paperless
|
||||
MARIADB_PASSWORD: paperless
|
||||
|
||||
@@ -74,7 +74,7 @@ services:
|
||||
command:
|
||||
- "gotenberg"
|
||||
- "--chromium-disable-javascript=true"
|
||||
- "--chromium-allow-list=^file:///tmp/.*"
|
||||
- "--chromium-allow-list=file:///tmp/.*"
|
||||
tika:
|
||||
image: docker.io/apache/tika:3.3.1.0
|
||||
restart: unless-stopped
|
||||
|
||||
@@ -63,7 +63,7 @@ services:
|
||||
command:
|
||||
- "gotenberg"
|
||||
- "--chromium-disable-javascript=true"
|
||||
- "--chromium-allow-list=^file:///tmp/.*"
|
||||
- "--chromium-allow-list=file:///tmp/.*"
|
||||
tika:
|
||||
image: docker.io/apache/tika:3.3.1.0
|
||||
restart: unless-stopped
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="666.667" height="666.667" viewBox="0 0 666.667 666.667"><g stroke-width="1.333"><path fill="#fef400" d="m332.66668 418.66668h-84.66667v-85.33334-85.33333h84.66667 84.66667v-85.33334-85.333334h85.33333 85.33334v85.333334 85.33334h-85.33334-85.33333v85.33333 85.33334z"/><path fill="#fe6565" d="m248.00001 589.33335h-170.666674v-170.66667-170.66667h85.333334 85.33334v-85.33334-85.333334h84.66667 84.66667v85.333334 85.33334h85.33333 85.33334v85.33333 85.33334h-84.66667-84.66667v85.33334 85.33333zm84.66667-170.66667h84.66667v-85.33334-85.33333h-84.66667-84.66667v85.33333 85.33334z"/></g></svg>
|
||||
|
Before Width: | Height: | Size: 641 B |
@@ -1,130 +1,5 @@
|
||||
# Changelog
|
||||
|
||||
## paperless-ngx 3.3.0
|
||||
|
||||
### Features / Enhancements
|
||||
|
||||
- Enhancement: more control over suggestion requests [@shamoon](https://github.com/shamoon) ([#14258](https://github.com/paperless-ngx/paperless-ngx/pull/14258))
|
||||
- Chorehancement: set manifest CORS for credentials [@shamoon](https://github.com/shamoon) ([#14307](https://github.com/paperless-ngx/paperless-ngx/pull/14307))
|
||||
- Enhancement: include Django admin with 2FA [@shamoon](https://github.com/shamoon) ([#14270](https://github.com/paperless-ngx/paperless-ngx/pull/14270))
|
||||
- Feature: propagate resolved secrets to interactive container shells [@stumpylog](https://github.com/stumpylog) ([#14254](https://github.com/paperless-ngx/paperless-ngx/pull/14254))
|
||||
- Enhancement: support separate embedding API key [@furkanural](https://github.com/furkanural) ([#14067](https://github.com/paperless-ngx/paperless-ngx/pull/14067))
|
||||
- Enhancement: support passthrough extra params for LLMs [@shamoon](https://github.com/shamoon) ([#14202](https://github.com/paperless-ngx/paperless-ngx/pull/14202))
|
||||
- Feature: store barcode contents, list and search them [@jurassicparkicecream](https://github.com/jurassicparkicecream) ([#14276](https://github.com/paperless-ngx/paperless-ngx/pull/14276))
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- Fix: Set the ProcessedMail owner based on the rule owner in all cases [@stumpylog](https://github.com/stumpylog) ([#14356](https://github.com/paperless-ngx/paperless-ngx/pull/14356))
|
||||
- Fix: Ensure log rotation settings are converted to integers [@stumpylog](https://github.com/stumpylog) ([#14343](https://github.com/paperless-ngx/paperless-ngx/pull/14343))
|
||||
- Fix: Wrap apt calls into a retry so we can ideally jump a slow mirror [@stumpylog](https://github.com/stumpylog) ([#14344](https://github.com/paperless-ngx/paperless-ngx/pull/14344))
|
||||
- Fix: ship pdf.js CMaps so CJK documents render in the viewer [@MrOggy85](https://github.com/MrOggy85) ([#14318](https://github.com/paperless-ngx/paperless-ngx/pull/14318))
|
||||
- Fix: use version page\_count for versioned document [@shamoon](https://github.com/shamoon) ([#14280](https://github.com/paperless-ngx/paperless-ngx/pull/14280))
|
||||
- Fix: allow pointer events for pdf links in pngx viewer [@shamoon](https://github.com/shamoon) ([#14264](https://github.com/paperless-ngx/paperless-ngx/pull/14264))
|
||||
- Fix: During a move to the trash directory, only attempt to copy metadata [@stumpylog](https://github.com/stumpylog) ([#14250](https://github.com/paperless-ngx/paperless-ngx/pull/14250))
|
||||
- Fix: convert file mtime to the configured time zone directly [@stumpylog](https://github.com/stumpylog) ([#14249](https://github.com/paperless-ngx/paperless-ngx/pull/14249))
|
||||
- Fix: ensure documentDeleted subscription is discarded [@shamoon](https://github.com/shamoon) ([#14247](https://github.com/paperless-ngx/paperless-ngx/pull/14247))
|
||||
- Chore: Fix bugs in the test suite [@stumpylog](https://github.com/stumpylog) ([#14244](https://github.com/paperless-ngx/paperless-ngx/pull/14244))
|
||||
- Fix: ensure bulk operations are checked against version root [@shamoon](https://github.com/shamoon) ([#14246](https://github.com/paperless-ngx/paperless-ngx/pull/14246))
|
||||
- Fix: indexing after document-added workflows signal [@shamoon](https://github.com/shamoon) ([#14242](https://github.com/paperless-ngx/paperless-ngx/pull/14242))
|
||||
- Fix: Record full tag and custom field lists in bulk edit audit log [@stumpylog](https://github.com/stumpylog) ([#14236](https://github.com/paperless-ngx/paperless-ngx/pull/14236))
|
||||
- Chore: update pikepdf for ocrmypdf requirement [@shamoon](https://github.com/shamoon) ([#14235](https://github.com/paperless-ngx/paperless-ngx/pull/14235))
|
||||
- Fix: handle legacy bulk edit split page range with missing page\_count [@shamoon](https://github.com/shamoon) ([#14212](https://github.com/paperless-ngx/paperless-ngx/pull/14212))
|
||||
- Fix: ignore invalid EXIF orientation when generating image archives [@zhzy0077](https://github.com/zhzy0077) ([#14203](https://github.com/paperless-ngx/paperless-ngx/pull/14203))
|
||||
|
||||
### Documentation
|
||||
|
||||
- Documentation: correct duplicates info [@shamoon](https://github.com/shamoon) ([#14243](https://github.com/paperless-ngx/paperless-ngx/pull/14243))
|
||||
|
||||
### Maintenance
|
||||
|
||||
- Chore(deps): Bump the actions group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14332](https://github.com/paperless-ngx/paperless-ngx/pull/14332))
|
||||
- Fix: Wrap apt calls into a retry so we can ideally jump a slow mirror [@stumpylog](https://github.com/stumpylog) ([#14344](https://github.com/paperless-ngx/paperless-ngx/pull/14344))
|
||||
- Chore(deps): Bump the actions group across 1 directory with 10 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14301](https://github.com/paperless-ngx/paperless-ngx/pull/14301))
|
||||
|
||||
### Dependencies
|
||||
|
||||
<details>
|
||||
<summary>27 changes</summary>
|
||||
|
||||
- Chore(deps): Bump django-filter from 25.2 to 26.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#14337](https://github.com/paperless-ngx/paperless-ngx/pull/14337))
|
||||
- Chore(deps): Bump the utilities-patch group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14338](https://github.com/paperless-ngx/paperless-ngx/pull/14338))
|
||||
- Chore(deps): Bump the pre-commit-dependencies group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14351](https://github.com/paperless-ngx/paperless-ngx/pull/14351))
|
||||
- Chore(deps-dev): Bump types-channels from 4.3.0.20260408 to 4.3.0.20260518 @[dependabot[bot]](https://github.com/apps/dependabot) ([#14335](https://github.com/paperless-ngx/paperless-ngx/pull/14335))
|
||||
- docker(deps): Bump astral-sh/uv from 0.12.20-python3.14-trixie-slim to 0.12.23-python3.14-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#14327](https://github.com/paperless-ngx/paperless-ngx/pull/14327))
|
||||
- Chore(deps): Bump the actions group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14332](https://github.com/paperless-ngx/paperless-ngx/pull/14332))
|
||||
- Chore(deps): Bump the uv group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14325](https://github.com/paperless-ngx/paperless-ngx/pull/14325))
|
||||
- Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 13 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14329](https://github.com/paperless-ngx/paperless-ngx/pull/14329))
|
||||
- Chore(deps-dev): Bump prettier from 3.9.8 to 3.9.9 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#14331](https://github.com/paperless-ngx/paperless-ngx/pull/14331))
|
||||
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14330](https://github.com/paperless-ngx/paperless-ngx/pull/14330))
|
||||
- Chore(deps-dev): Bump zensical from 0.0.64 to 0.0.65 in the development group @[dependabot[bot]](https://github.com/apps/dependabot) ([#14326](https://github.com/paperless-ngx/paperless-ngx/pull/14326))
|
||||
- Chore(deps): Bump the uv group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14314](https://github.com/paperless-ngx/paperless-ngx/pull/14314))
|
||||
- Chore(deps): Bump the utilities-minor group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14305](https://github.com/paperless-ngx/paperless-ngx/pull/14305))
|
||||
- docker-compose(deps): bump greenmail/standalone from 2.1.13 to 2.1.14 in /docker/compose @[dependabot[bot]](https://github.com/apps/dependabot) ([#14281](https://github.com/paperless-ngx/paperless-ngx/pull/14281))
|
||||
- docker(deps): Bump astral-sh/uv from 0.12.16-python3.14-trixie-slim to 0.12.20-python3.14-trixie-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#14282](https://github.com/paperless-ngx/paperless-ngx/pull/14282))
|
||||
- Chore(deps): Bump the pre-commit-dependencies group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14283](https://github.com/paperless-ngx/paperless-ngx/pull/14283))
|
||||
- Chore(deps): Bump the utilities-patch group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14297](https://github.com/paperless-ngx/paperless-ngx/pull/14297))
|
||||
- Chore(deps): Bump the actions group across 1 directory with 10 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14301](https://github.com/paperless-ngx/paperless-ngx/pull/14301))
|
||||
- Chore(deps-dev): Bump the frontend-jest-dependencies group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14286](https://github.com/paperless-ngx/paperless-ngx/pull/14286))
|
||||
- Chore(deps-dev): Bump eslint from 10.10.0 to 10.11.0 in /src-ui in the frontend-eslint-dependencies group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#14287](https://github.com/paperless-ngx/paperless-ngx/pull/14287))
|
||||
- Chore(deps-dev): Bump @types/node from 26.5.0 to 26.6.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#14288](https://github.com/paperless-ngx/paperless-ngx/pull/14288))
|
||||
- Chore(deps-dev): Bump prettier from 3.9.6 to 3.9.8 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#14289](https://github.com/paperless-ngx/paperless-ngx/pull/14289))
|
||||
- Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 10 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14285](https://github.com/paperless-ngx/paperless-ngx/pull/14285))
|
||||
- Chore: replace bleach with turbohtml [@gaborbernat](https://github.com/gaborbernat) ([#14269](https://github.com/paperless-ngx/paperless-ngx/pull/14269))
|
||||
- Chore(deps): Bump autobahn from 25.12.2 to 26.7.1 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#14231](https://github.com/paperless-ngx/paperless-ngx/pull/14231))
|
||||
- Chore: update pikepdf for ocrmypdf requirement [@shamoon](https://github.com/shamoon) ([#14235](https://github.com/paperless-ngx/paperless-ngx/pull/14235))
|
||||
- Chore(deps): Bump the pre-commit-dependencies group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14133](https://github.com/paperless-ngx/paperless-ngx/pull/14133))
|
||||
|
||||
</details>
|
||||
|
||||
### All App Changes
|
||||
|
||||
<details>
|
||||
<summary>41 changes</summary>
|
||||
|
||||
- Feature: store barcode contents, list and search them [@jurassicparkicecream](https://github.com/jurassicparkicecream) ([#14276](https://github.com/paperless-ngx/paperless-ngx/pull/14276))
|
||||
- Fix: Set the ProcessedMail owner based on the rule owner in all cases [@stumpylog](https://github.com/stumpylog) ([#14356](https://github.com/paperless-ngx/paperless-ngx/pull/14356))
|
||||
- Chore(deps): Bump django-filter from 25.2 to 26.1 @[dependabot[bot]](https://github.com/apps/dependabot) ([#14337](https://github.com/paperless-ngx/paperless-ngx/pull/14337))
|
||||
- Chore(deps): Bump the utilities-patch group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14338](https://github.com/paperless-ngx/paperless-ngx/pull/14338))
|
||||
- Chore(deps-dev): Bump types-channels from 4.3.0.20260408 to 4.3.0.20260518 @[dependabot[bot]](https://github.com/apps/dependabot) ([#14335](https://github.com/paperless-ngx/paperless-ngx/pull/14335))
|
||||
- Chore(deps): Bump the uv group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14325](https://github.com/paperless-ngx/paperless-ngx/pull/14325))
|
||||
- Fix: Ensure log rotation settings are converted to integers [@stumpylog](https://github.com/stumpylog) ([#14343](https://github.com/paperless-ngx/paperless-ngx/pull/14343))
|
||||
- Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 13 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14329](https://github.com/paperless-ngx/paperless-ngx/pull/14329))
|
||||
- Chore(deps-dev): Bump prettier from 3.9.8 to 3.9.9 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#14331](https://github.com/paperless-ngx/paperless-ngx/pull/14331))
|
||||
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14330](https://github.com/paperless-ngx/paperless-ngx/pull/14330))
|
||||
- Fix: ship pdf.js CMaps so CJK documents render in the viewer [@MrOggy85](https://github.com/MrOggy85) ([#14318](https://github.com/paperless-ngx/paperless-ngx/pull/14318))
|
||||
- Chore(deps-dev): Bump zensical from 0.0.64 to 0.0.65 in the development group @[dependabot[bot]](https://github.com/apps/dependabot) ([#14326](https://github.com/paperless-ngx/paperless-ngx/pull/14326))
|
||||
- Enhancement: more control over suggestion requests [@shamoon](https://github.com/shamoon) ([#14258](https://github.com/paperless-ngx/paperless-ngx/pull/14258))
|
||||
- Chore(deps): Bump the uv group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14314](https://github.com/paperless-ngx/paperless-ngx/pull/14314))
|
||||
- Chore: anchor admin url pattern [@shamoon](https://github.com/shamoon) ([#14316](https://github.com/paperless-ngx/paperless-ngx/pull/14316))
|
||||
- Chorehancement: set manifest CORS for credentials [@shamoon](https://github.com/shamoon) ([#14307](https://github.com/paperless-ngx/paperless-ngx/pull/14307))
|
||||
- Chore(deps): Bump the utilities-minor group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14305](https://github.com/paperless-ngx/paperless-ngx/pull/14305))
|
||||
- Chore(deps): Bump the utilities-patch group across 1 directory with 6 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14297](https://github.com/paperless-ngx/paperless-ngx/pull/14297))
|
||||
- Chore(deps-dev): Bump the frontend-jest-dependencies group across 1 directory with 2 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14286](https://github.com/paperless-ngx/paperless-ngx/pull/14286))
|
||||
- Chore(deps-dev): Bump eslint from 10.10.0 to 10.11.0 in /src-ui in the frontend-eslint-dependencies group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#14287](https://github.com/paperless-ngx/paperless-ngx/pull/14287))
|
||||
- Chore(deps-dev): Bump @types/node from 26.5.0 to 26.6.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#14288](https://github.com/paperless-ngx/paperless-ngx/pull/14288))
|
||||
- Chore(deps-dev): Bump prettier from 3.9.6 to 3.9.8 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#14289](https://github.com/paperless-ngx/paperless-ngx/pull/14289))
|
||||
- Chore(deps): Bump the frontend-angular-dependencies group across 1 directory with 10 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#14285](https://github.com/paperless-ngx/paperless-ngx/pull/14285))
|
||||
- Fix: use version page\_count for versioned document [@shamoon](https://github.com/shamoon) ([#14280](https://github.com/paperless-ngx/paperless-ngx/pull/14280))
|
||||
- Chore: replace bleach with turbohtml [@gaborbernat](https://github.com/gaborbernat) ([#14269](https://github.com/paperless-ngx/paperless-ngx/pull/14269))
|
||||
- Enhancement: include Django admin with 2FA [@shamoon](https://github.com/shamoon) ([#14270](https://github.com/paperless-ngx/paperless-ngx/pull/14270))
|
||||
- Fix: allow pointer events for pdf links in pngx viewer [@shamoon](https://github.com/shamoon) ([#14264](https://github.com/paperless-ngx/paperless-ngx/pull/14264))
|
||||
- Feature: propagate resolved secrets to interactive container shells [@stumpylog](https://github.com/stumpylog) ([#14254](https://github.com/paperless-ngx/paperless-ngx/pull/14254))
|
||||
- Fix: During a move to the trash directory, only attempt to copy metadata [@stumpylog](https://github.com/stumpylog) ([#14250](https://github.com/paperless-ngx/paperless-ngx/pull/14250))
|
||||
- Fix: convert file mtime to the configured time zone directly [@stumpylog](https://github.com/stumpylog) ([#14249](https://github.com/paperless-ngx/paperless-ngx/pull/14249))
|
||||
- Fix: ensure documentDeleted subscription is discarded [@shamoon](https://github.com/shamoon) ([#14247](https://github.com/paperless-ngx/paperless-ngx/pull/14247))
|
||||
- Chore: Fix bugs in the test suite [@stumpylog](https://github.com/stumpylog) ([#14244](https://github.com/paperless-ngx/paperless-ngx/pull/14244))
|
||||
- Fix: ensure bulk operations are checked against version root [@shamoon](https://github.com/shamoon) ([#14246](https://github.com/paperless-ngx/paperless-ngx/pull/14246))
|
||||
- Enhancement: support separate embedding API key [@furkanural](https://github.com/furkanural) ([#14067](https://github.com/paperless-ngx/paperless-ngx/pull/14067))
|
||||
- Enhancement: support passthrough extra params for LLMs [@shamoon](https://github.com/shamoon) ([#14202](https://github.com/paperless-ngx/paperless-ngx/pull/14202))
|
||||
- Chore(deps): Bump autobahn from 25.12.2 to 26.7.1 in the uv group across 1 directory @[dependabot[bot]](https://github.com/apps/dependabot) ([#14231](https://github.com/paperless-ngx/paperless-ngx/pull/14231))
|
||||
- Fix: indexing after document-added workflows signal [@shamoon](https://github.com/shamoon) ([#14242](https://github.com/paperless-ngx/paperless-ngx/pull/14242))
|
||||
- Fix: Record full tag and custom field lists in bulk edit audit log [@stumpylog](https://github.com/stumpylog) ([#14236](https://github.com/paperless-ngx/paperless-ngx/pull/14236))
|
||||
- Chore: update pikepdf for ocrmypdf requirement [@shamoon](https://github.com/shamoon) ([#14235](https://github.com/paperless-ngx/paperless-ngx/pull/14235))
|
||||
- Fix: handle legacy bulk edit split page range with missing page\_count [@shamoon](https://github.com/shamoon) ([#14212](https://github.com/paperless-ngx/paperless-ngx/pull/14212))
|
||||
- Fix: ignore invalid EXIF orientation when generating image archives [@zhzy0077](https://github.com/zhzy0077) ([#14203](https://github.com/paperless-ngx/paperless-ngx/pull/14203))
|
||||
|
||||
</details>
|
||||
|
||||
## paperless-ngx 3.2.1
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
+1
-3
@@ -76,9 +76,7 @@ is not supported by any of the available parsers.
|
||||
|
||||
**A:** Not by default. As of v3, a file whose contents match an existing document is still
|
||||
consumed, and the duplicate is flagged in the UI — open the document and check the
|
||||
**Duplicates** tab to review documents that share the same content, or filter the document
|
||||
list by **Duplicates** to find all of them (see
|
||||
[Duplicate documents](usage.md#duplicate-documents)). If you prefer the old
|
||||
**Duplicates** tab to review documents that share the same content. If you prefer the old
|
||||
behavior of rejecting duplicates during consumption, set
|
||||
[`PAPERLESS_CONSUMER_DELETE_DUPLICATES`](configuration.md#PAPERLESS_CONSUMER_DELETE_DUPLICATES)
|
||||
to `true`.
|
||||
|
||||
+3
-2
@@ -13,8 +13,9 @@ physical documents into a searchable online archive so you can keep, well, _less
|
||||
[Demo](https://demo.paperless-ngx.com){ .md-button .md-button--secondary target=\_blank }
|
||||
|
||||
<div style="display: flex; justify-content: end; margin-top: -1.5rem;">
|
||||
<a href="https://fyrastack.com" target="_blank" aria-label="Demo hosting provided by Fyra Stack">
|
||||
<img src="assets/sponsors/fyra-stack.svg" alt="" class="no-lightbox" width="28px" style="vertical-align: middle;"> Fyra Stack
|
||||
<a href="https://m.do.co/c/8d70b916d462" target="_blank">
|
||||
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_white.svg#only-dark" class="no-lightbox" width="150px">
|
||||
<img src="https://opensource.nyc3.cdn.digitaloceanspaces.com/attribution/assets/PoweredByDO/DO_Powered_by_Badge_black.svg#only-light" class="no-lightbox" width="150px">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
+1
-60
@@ -129,7 +129,7 @@ change in the `docker-compose.yml` file:
|
||||
command:
|
||||
- 'gotenberg'
|
||||
- '--chromium-disable-javascript=true'
|
||||
- '--chromium-allow-list=^file:///tmp/.*'
|
||||
- '--chromium-allow-list=file:///tmp/.*'
|
||||
- '--api-timeout=60s'
|
||||
```
|
||||
|
||||
@@ -272,65 +272,6 @@ This error can occur in installations which have upgraded from a version of Pape
|
||||
$ python3 manage.py convert_mariadb_uuid
|
||||
```
|
||||
|
||||
## MariaDB/MySQL error "Illegal mix of collations"
|
||||
|
||||
Consumption or other operations fail with an error like:
|
||||
|
||||
```
|
||||
(1267, "Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and
|
||||
(utf8mb4_unicode_ci,IMPLICIT) for operation '='")
|
||||
```
|
||||
|
||||
This happens when the tables in your database do not all use the same
|
||||
collation. It is most often seen on databases that existed before a
|
||||
MariaDB/MySQL upgrade: older tables keep their original collation, while
|
||||
tables created afterwards use the new server default.
|
||||
|
||||
To work around it, set the collation your existing tables use (the one in the error
|
||||
that is not `utf8mb4_unicode_ci`) with
|
||||
[`PAPERLESS_DB_OPTIONS`](configuration.md#PAPERLESS_DB_OPTIONS):
|
||||
|
||||
```bash
|
||||
PAPERLESS_DB_OPTIONS="collation=utf8mb4_general_ci"
|
||||
```
|
||||
|
||||
To fix it permanently, back up your database, then convert the database and
|
||||
each table to a single collation and remove the override:
|
||||
|
||||
```sql
|
||||
ALTER DATABASE paperless CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
ALTER TABLE <table_name> CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
```
|
||||
|
||||
## PostgreSQL warns about a "collation version mismatch"
|
||||
|
||||
The PostgreSQL log shows a warning like:
|
||||
|
||||
```
|
||||
WARNING: database "paperless" has a collation version mismatch
|
||||
DETAIL: The database was created using collation version 2.36, but the operating system provides version 2.41.
|
||||
HINT: Rebuild all objects in this database that use the default collation and run ALTER DATABASE paperless REFRESH COLLATION VERSION, or build PostgreSQL with the right library version.
|
||||
```
|
||||
|
||||
This comes from PostgreSQL, not Paperless-ngx. The `glibc` version that PostgreSQL
|
||||
runs against changed, and the existing database was created with an older one. With
|
||||
Docker, `glibc` comes from the PostgreSQL image's Debian base, not the host, so this
|
||||
commonly happens when a new image is pulled after its base Debian release changed.
|
||||
If PostgreSQL is installed directly on a host, it uses the host's `glibc` instead.
|
||||
|
||||
The warning is not an error and Paperless-ngx keeps working, but the database's text
|
||||
indexes may be built with outdated sorting rules. To resolve it, back up your
|
||||
database, then connect to it (for example with `psql -U paperless -d paperless`
|
||||
inside the database container) and run:
|
||||
|
||||
```sql
|
||||
REINDEX DATABASE paperless;
|
||||
ALTER DATABASE paperless REFRESH COLLATION VERSION;
|
||||
```
|
||||
|
||||
To avoid this in the future, pin your PostgreSQL image to a specific Debian release,
|
||||
for example `postgres:18-trixie`, rather than `postgres:18`.
|
||||
|
||||
## Platform-Specific Deployment Troubleshooting
|
||||
|
||||
A user-maintained wiki page is available to help troubleshoot issues that may arise when trying to deploy Paperless-ngx on specific platforms, for example SELinux. Please see [the wiki](https://github.com/paperless-ngx/paperless-ngx/wiki/Platform%E2%80%90Specific-Troubleshooting).
|
||||
+8
-7
@@ -299,18 +299,19 @@ for details.
|
||||
### Duplicate documents
|
||||
|
||||
By default, Paperless-ngx **does not reject duplicates**. If you consume a file whose
|
||||
contents match an existing document (same original or archive checksum), the new copy is
|
||||
still consumed and a warning is logged.
|
||||
contents exactly match an existing document (same checksum), the new copy is still
|
||||
consumed and a warning is logged. The task entry for the upload also flags that a
|
||||
duplicate was detected and links to the existing document(s).
|
||||
|
||||
When a document has duplicates, a **Duplicates** tab appears on its detail page, listing
|
||||
the other documents you can view that share the same content (including any in the trash).
|
||||
To find all documents with duplicates, choose **Duplicates** in the document list's text
|
||||
filter dropdown, or use `has_duplicates=true` in the REST API.
|
||||
To review duplicates, open a document and switch to the **Duplicates** tab on the
|
||||
document detail page. It lists other documents that share the same content, including any
|
||||
that are in the trash (shown with a badge), and links to each so you can decide which to
|
||||
keep.
|
||||
|
||||
If you would rather reject duplicates at consumption time (the pre-v3 behavior), set
|
||||
[`PAPERLESS_CONSUMER_DELETE_DUPLICATES`](configuration.md#PAPERLESS_CONSUMER_DELETE_DUPLICATES)
|
||||
to `true`. The duplicate file is then deleted instead of consumed, and the task fails with
|
||||
a "Document already exists" message linking to the existing document.
|
||||
a "document already exists" message.
|
||||
|
||||
## Document Suggestions
|
||||
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "paperless-ngx"
|
||||
version = "3.3.0"
|
||||
version = "3.2.1"
|
||||
description = """\
|
||||
A community-supported supercharged document management system: scan, index and archive all your physical documents\
|
||||
"""
|
||||
@@ -256,8 +256,8 @@ isort.force-single-line = true
|
||||
[tool.codespell]
|
||||
ignore-words-list = "criterias,afterall,valeu,ureue,equest,ure,assertIn,Oktober,commitish,NIN,nin,reprot"
|
||||
skip = """\
|
||||
src-ui/src/locale/*,src-ui/pnpm-lock.yaml,src-ui/e2e/*,src/paperless_mail/tests/samples/*,src/paperless/tests/samples\
|
||||
/mail/*,src/documents/tests/samples/*,*.po,*.json\
|
||||
src-ui/src/locale/*,src-ui/pnpm-lock.yaml,src-ui/e2e/*,src/paperless/tests/samples/mail/*,src/documents/tests/samples\
|
||||
/*,src/paperless_testing/sample_files/*,*.po,*.json\
|
||||
"""
|
||||
write-changes = true
|
||||
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
|
||||
docker run -p 5432:5432 -e POSTGRES_PASSWORD=password -v paperless_pgdata:/var/lib/postgresql/data -d postgres:15
|
||||
docker run -d -p 6379:6379 redis:latest
|
||||
docker run -p 3000:3000 -d gotenberg/gotenberg:7.8 gotenberg --chromium-disable-javascript=true --chromium-allow-list="^file:///tmp/.*"
|
||||
docker run -p 3000:3000 -d gotenberg/gotenberg:7.8 gotenberg --chromium-disable-javascript=true --chromium-allow-list="file:///tmp/.*"
|
||||
docker run -p 9998:9998 -d docker.io/apache/tika:latest
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "paperless-ngx-ui",
|
||||
"version": "3.3.0",
|
||||
"version": "3.2.1",
|
||||
"scripts": {
|
||||
"preinstall": "npx only-allow pnpm",
|
||||
"ng": "ng",
|
||||
|
||||
@@ -8,7 +8,7 @@ export const environment = {
|
||||
apiVersion: '10', // match src/paperless/settings.py
|
||||
appTitle: DEFAULT_APP_TITLE,
|
||||
tag: 'prod',
|
||||
version: '3.3.0',
|
||||
version: '3.2.1',
|
||||
webSocketHost: window.location.host,
|
||||
webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:',
|
||||
webSocketBaseUrl: base_url.pathname + 'ws/',
|
||||
|
||||
@@ -8525,7 +8525,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
</context-group>
|
||||
<target state="translated">{VAR_PLURAL, plural, =1 {1 Vorschlag unten verfügbar} other {<x id="INTERPOLATION"/> Vorschläge unten verfügbar}}</target>
|
||||
<target state="needs-translation">{VAR_PLURAL, plural, =1 {1 suggestion available below} other {<x id="INTERPOLATION"/> suggestions available below}}</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4169875112244042673" datatype="html" approved="yes">
|
||||
<source>Suggestion options</source>
|
||||
|
||||
@@ -8525,7 +8525,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
</context-group>
|
||||
<target state="translated">{VAR_PLURAL, plural, one {<x id="INTERPOLATION"/> suggerimenti disponibili sotto} =1 {1 suggerimento disponibile sotto} other {<x id="INTERPOLATION"/> suggerimenti disponibili sotto}}</target>
|
||||
<target state="needs-translation">{VAR_PLURAL, plural, =1 {1 suggestion available below} other {<x id="INTERPOLATION"/> suggestions available below}}</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4169875112244042673" datatype="html">
|
||||
<source>Suggestion options</source>
|
||||
@@ -9219,7 +9219,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-barcodes/document-barcodes.component.html</context>
|
||||
<context context-type="linenumber">40,41</context>
|
||||
</context-group>
|
||||
<target state="translated">Copia contenuto</target>
|
||||
<target state="needs-translation">Copy content</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2266163016683537825" datatype="html">
|
||||
<source>of <x id="INTERPOLATION" equiv-text="{{previewNumPages()}}"/></source>
|
||||
@@ -9479,7 +9479,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
|
||||
<context context-type="linenumber">360,361</context>
|
||||
</context-group>
|
||||
<target state="translated">Codici a barre</target>
|
||||
<target state="needs-translation">Barcodes</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6992781481378431874" datatype="html" approved="yes">
|
||||
<source>Original document metadata</source>
|
||||
@@ -13376,7 +13376,7 @@
|
||||
<context context-type="sourcefile">src/app/data/paperless-config.ts</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<target state="translated">Contenuti Codice a Barre</target>
|
||||
<target state="needs-translation">Store Barcode Contents</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7011909364081812031" datatype="html">
|
||||
<source>AI Enabled</source>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<context context-type="linenumber">386,393</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Currently selected slide number read by screen reader</note>
|
||||
<target state="translated"> Slajd <x id="INTERPOLATION" equiv-text="xt(source?: Ngb"/> z <x id="INTERPOLATION_1" equiv-text="this._cycleToSe"/> </target>
|
||||
<target state="needs-translation"> Slide <x id="INTERPOLATION" equiv-text="xt(source?: Ngb"/> of <x id="INTERPOLATION_1" equiv-text="this._cycleToSe"/> </target>
|
||||
</trans-unit>
|
||||
<trans-unit id="ngb.carousel.previous" datatype="html">
|
||||
<source>Previous</source>
|
||||
@@ -507,7 +507,7 @@
|
||||
<context context-type="sourcefile">src/app/app.component.ts</context>
|
||||
<context context-type="linenumber">225</context>
|
||||
</context-group>
|
||||
<target state="translated">Zadania pomagają śledzić pracę w tle, to, co wymaga uwagi i co zostało ostatnio ukończone.</target>
|
||||
<target state="needs-translation">Tasks helps you track background work, what needs attention, and what recently completed.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2755033621682206902" datatype="html">
|
||||
<source>Check out the settings for various tweaks to the web app.</source>
|
||||
@@ -571,7 +571,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.html</context>
|
||||
<context context-type="linenumber">35</context>
|
||||
</context-group>
|
||||
<target state="translated">Ta wartość zastępuje <x id="INTERPOLATION" equiv-text="{{option.config_key}}"/>, która jest ustawiona poza Paperless.</target>
|
||||
<target state="needs-translation">This value overrides <x id="INTERPOLATION" equiv-text="{{option.config_key}}"/>, which is set outside Paperless.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7221396516204435584" datatype="html">
|
||||
<source><x id="INTERPOLATION" equiv-text="{{option.config_key}}"/> is set outside Paperless. Enter a value here to override it.</source>
|
||||
@@ -579,7 +579,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.html</context>
|
||||
<context context-type="linenumber">37</context>
|
||||
</context-group>
|
||||
<target state="translated"><x id="INTERPOLATION" equiv-text="{{option.config_key}}"/> jest ustawiony poza Paperless. Wpisz tutaj wartość, aby go zastąpić.</target>
|
||||
<target state="needs-translation"><x id="INTERPOLATION" equiv-text="{{option.config_key}}"/> is set outside Paperless. Enter a value here to override it.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8318849619178340389" datatype="html">
|
||||
<source>Use the externally configured value</source>
|
||||
@@ -587,7 +587,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.html</context>
|
||||
<context context-type="linenumber">42</context>
|
||||
</context-group>
|
||||
<target state="translated">Użyj wartości skonfigurowanej zewnętrznie</target>
|
||||
<target state="needs-translation">Use the externally configured value</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6032629623003430385" datatype="html">
|
||||
<source>Reset to external</source>
|
||||
@@ -595,7 +595,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
<target state="translated">Zresetuj na zewnętrzny</target>
|
||||
<target state="needs-translation">Reset to external</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7808756054397155068" datatype="html">
|
||||
<source>Reset</source>
|
||||
@@ -1411,7 +1411,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
</context-group>
|
||||
<target state="translated">Obydwa</target>
|
||||
<target state="needs-translation">Both</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8967224283122923634" datatype="html">
|
||||
<source>ML only</source>
|
||||
@@ -1419,7 +1419,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">266</context>
|
||||
</context-group>
|
||||
<target state="translated">Tylko ML</target>
|
||||
<target state="needs-translation">ML only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6418969597665857901" datatype="html">
|
||||
<source>AI only</source>
|
||||
@@ -1427,7 +1427,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
<target state="translated">Tylko SI</target>
|
||||
<target state="needs-translation">AI only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="1043449647727456069" datatype="html">
|
||||
<source>Automatically request suggestions for inbox documents</source>
|
||||
@@ -2211,7 +2211,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.html</context>
|
||||
<context context-type="linenumber">4,5</context>
|
||||
</context-group>
|
||||
<target state="translated">Zadania zawierają szczegóły dotyczące przetwarzania dokumentów i zadań systemowych.</target>
|
||||
<target state="needs-translation">Tasks shows detailed information about document consumption and system tasks.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="103921551219467537" datatype="html">
|
||||
<source>Clear selection</source>
|
||||
@@ -2327,7 +2327,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.html</context>
|
||||
<context context-type="linenumber">92,93</context>
|
||||
</context-group>
|
||||
<target state="translated">Szukaj w zadaniach</target>
|
||||
<target state="needs-translation">Search tasks</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6849725902312323996" datatype="html" approved="yes">
|
||||
<source>Reset filters</source>
|
||||
@@ -2651,7 +2651,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.html</context>
|
||||
<context context-type="linenumber">207</context>
|
||||
</context-group>
|
||||
<target state="translated">Wyświetl szczegóły zadania</target>
|
||||
<target state="needs-translation">View task details</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="1536087519743707362" datatype="html">
|
||||
<source>Dismiss</source>
|
||||
@@ -4555,7 +4555,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/confirm-dialog/rotate-confirm-dialog/rotate-confirm-dialog.component.html</context>
|
||||
<context context-type="linenumber">9</context>
|
||||
</context-group>
|
||||
<target state="translated">Obróć w lewo</target>
|
||||
<target state="needs-translation">Rotate counterclockwise</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="631338357809243389" datatype="html">
|
||||
<source>Rotate clockwise</source>
|
||||
@@ -4563,7 +4563,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/confirm-dialog/rotate-confirm-dialog/rotate-confirm-dialog.component.html</context>
|
||||
<context context-type="linenumber">19</context>
|
||||
</context-group>
|
||||
<target state="translated">Obróć w prawo</target>
|
||||
<target state="needs-translation">Rotate clockwise</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8157388568390631653" datatype="html">
|
||||
<source>Note that only PDFs will be rotated.</source>
|
||||
@@ -7641,7 +7641,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
||||
<context context-type="linenumber">17</context>
|
||||
</context-group>
|
||||
<target state="translated">Obróć zaznaczone strony w lewo</target>
|
||||
<target state="translated">Obróć wybrane strony przeciwnie do ruchu wskazówek zegara</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4787219034890830544" datatype="html">
|
||||
<source>Rotate selected pages clockwise</source>
|
||||
@@ -7649,7 +7649,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
||||
<context context-type="linenumber">20</context>
|
||||
</context-group>
|
||||
<target state="translated">Obróć zaznaczone strony w prawo</target>
|
||||
<target state="translated">Obróć wybrane strony zgodnie z ruchem wskazówek zegara</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3441043765105475130" datatype="html">
|
||||
<source>Delete selected pages</source>
|
||||
@@ -7665,7 +7665,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
||||
<context context-type="linenumber">33</context>
|
||||
</context-group>
|
||||
<target state="translated">Obróć stronę w lewo</target>
|
||||
<target state="translated">Obróć stronę przeciwnie do ruchu wskazówek zegara</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3450236521040548507" datatype="html">
|
||||
<source>Rotate page clockwise</source>
|
||||
@@ -7673,7 +7673,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
|
||||
<context context-type="linenumber">36</context>
|
||||
</context-group>
|
||||
<target state="translated">Obróć stronę w prawo</target>
|
||||
<target state="translated">Obróć stronę zgodnie z ruchem wskazówek zegara</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7647925464077975347" datatype="html">
|
||||
<source>Delete page</source>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<context context-type="linenumber">386,393</context>
|
||||
</context-group>
|
||||
<note priority="1" from="description">Currently selected slide number read by screen reader</note>
|
||||
<target state="translated"> Слайд <x id="INTERPOLATION" equiv-text="xt(source?: Ngb"/> из <x id="INTERPOLATION_1" equiv-text="this._cycleToSe"/> </target>
|
||||
<target state="needs-translation"> Slide <x id="INTERPOLATION" equiv-text="xt(source?: Ngb"/> of <x id="INTERPOLATION_1" equiv-text="this._cycleToSe"/> </target>
|
||||
</trans-unit>
|
||||
<trans-unit id="ngb.carousel.previous" datatype="html">
|
||||
<source>Previous</source>
|
||||
@@ -1403,7 +1403,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">259,260</context>
|
||||
</context-group>
|
||||
<target state="translated">Предложения по умолчанию для</target>
|
||||
<target state="needs-translation">Suggestions default to</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6251586038459969294" datatype="html">
|
||||
<source>Both</source>
|
||||
@@ -1411,7 +1411,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">264</context>
|
||||
</context-group>
|
||||
<target state="translated">Оба</target>
|
||||
<target state="needs-translation">Both</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8967224283122923634" datatype="html">
|
||||
<source>ML only</source>
|
||||
@@ -1419,7 +1419,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">266</context>
|
||||
</context-group>
|
||||
<target state="translated">Только ML</target>
|
||||
<target state="needs-translation">ML only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6418969597665857901" datatype="html">
|
||||
<source>AI only</source>
|
||||
@@ -1427,7 +1427,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
<target state="translated">Только ИИ</target>
|
||||
<target state="needs-translation">AI only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="1043449647727456069" datatype="html">
|
||||
<source>Automatically request suggestions for inbox documents</source>
|
||||
@@ -8525,7 +8525,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
</context-group>
|
||||
<target state="translated">{VAR_PLURAL, plural, =1 {1 совет} other {<x id="INTERPOLATION"/> советов}}</target>
|
||||
<target state="needs-translation">{VAR_PLURAL, plural, =1 {1 suggestion available below} other {<x id="INTERPOLATION"/> suggestions available below}}</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4169875112244042673" datatype="html">
|
||||
<source>Suggestion options</source>
|
||||
@@ -8533,7 +8533,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">65,66</context>
|
||||
</context-group>
|
||||
<target state="translated">Настройки советов</target>
|
||||
<target state="needs-translation">Suggestion options</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3145824396228856507" datatype="html">
|
||||
<source>Not using default</source>
|
||||
@@ -8541,7 +8541,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">69,70</context>
|
||||
</context-group>
|
||||
<target state="translated">Не использует по умолчанию</target>
|
||||
<target state="needs-translation">Not using default</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8102623853570619759" datatype="html">
|
||||
<source>Suggest using:</source>
|
||||
@@ -8549,7 +8549,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">74,75</context>
|
||||
</context-group>
|
||||
<target state="translated">Предложить используя:</target>
|
||||
<target state="needs-translation">Suggest using:</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="5799391967036896978" datatype="html">
|
||||
<source>ML</source>
|
||||
@@ -8557,7 +8557,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<target state="translated">ML</target>
|
||||
<target state="needs-translation">ML</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3484984238852181071" datatype="html">
|
||||
<source>AI</source>
|
||||
@@ -8565,7 +8565,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
<target state="translated">ИИ</target>
|
||||
<target state="needs-translation">AI</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="9180110319941008393" datatype="html">
|
||||
<source>Environment</source>
|
||||
@@ -9219,7 +9219,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-barcodes/document-barcodes.component.html</context>
|
||||
<context context-type="linenumber">40,41</context>
|
||||
</context-group>
|
||||
<target state="translated">Скопировать содержимое</target>
|
||||
<target state="needs-translation">Copy content</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2266163016683537825" datatype="html">
|
||||
<source>of <x id="INTERPOLATION" equiv-text="{{previewNumPages()}}"/></source>
|
||||
@@ -9479,7 +9479,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
|
||||
<context context-type="linenumber">360,361</context>
|
||||
</context-group>
|
||||
<target state="translated">Штрихкоды</target>
|
||||
<target state="needs-translation">Barcodes</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6992781481378431874" datatype="html" approved="yes">
|
||||
<source>Original document metadata</source>
|
||||
@@ -13375,7 +13375,7 @@
|
||||
<context context-type="sourcefile">src/app/data/paperless-config.ts</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<target state="translated">Сохранить содержимое штрихкодов</target>
|
||||
<target state="needs-translation">Store Barcode Contents</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7011909364081812031" datatype="html">
|
||||
<source>AI Enabled</source>
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
@@ -595,7 +595,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/config/config.component.html</context>
|
||||
<context context-type="linenumber">43</context>
|
||||
</context-group>
|
||||
<target state="translated">重置为外部</target>
|
||||
<target state="needs-translation">Reset to external</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7808756054397155068" datatype="html">
|
||||
<source>Reset</source>
|
||||
@@ -1135,7 +1135,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">115,116</context>
|
||||
</context-group>
|
||||
<target state="translated">侧边栏显示项:</target>
|
||||
<target state="needs-translation">Sidebar items to show:</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="1356890996281769972" datatype="html">
|
||||
<source>Dark mode</source>
|
||||
@@ -1419,7 +1419,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">266</context>
|
||||
</context-group>
|
||||
<target state="translated">仅限 ML</target>
|
||||
<target state="needs-translation">ML only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6418969597665857901" datatype="html">
|
||||
<source>AI only</source>
|
||||
@@ -1427,7 +1427,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
|
||||
<context context-type="linenumber">268</context>
|
||||
</context-group>
|
||||
<target state="translated">仅限 AI</target>
|
||||
<target state="needs-translation">AI only</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="1043449647727456069" datatype="html">
|
||||
<source>Automatically request suggestions for inbox documents</source>
|
||||
@@ -2887,7 +2887,7 @@
|
||||
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.ts</context>
|
||||
<context context-type="linenumber">104</context>
|
||||
</context-group>
|
||||
<target state="translated">应用 AI 建议</target>
|
||||
<target state="needs-translation">Apply AI Suggestions</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="9172233176401579786" datatype="html">
|
||||
<source>Scheduled</source>
|
||||
@@ -3939,7 +3939,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-links.component.html</context>
|
||||
<context context-type="linenumber">2,3</context>
|
||||
</context-group>
|
||||
<target state="translated">分享链接</target>
|
||||
<target state="needs-translation">Share links</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7844706011418789951" datatype="html">
|
||||
<source>Administration</source>
|
||||
@@ -4259,7 +4259,7 @@
|
||||
<context context-type="sourcefile">src/app/data/saved-view-icons.ts</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
<target state="translated">聊天</target>
|
||||
<target state="needs-translation">Chat</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8066608938393600549" datatype="html">
|
||||
<source>Message</source>
|
||||
@@ -4539,7 +4539,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/confirm-dialog/reprocess-confirm-dialog/reprocess-confirm-dialog.component.html</context>
|
||||
<context context-type="linenumber">16,17</context>
|
||||
</context-group>
|
||||
<target state="translated">使用远程 OCR</target>
|
||||
<target state="needs-translation">Use remote OCR</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6733578401091585663" datatype="html">
|
||||
<source>Sends the document to the configured remote OCR service, which may incur costs.</source>
|
||||
@@ -4547,7 +4547,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/confirm-dialog/reprocess-confirm-dialog/reprocess-confirm-dialog.component.html</context>
|
||||
<context context-type="linenumber">17,18</context>
|
||||
</context-group>
|
||||
<target state="translated">将文档发送到已配置的远程 OCR 服务,可能会产生费用。</target>
|
||||
<target state="needs-translation">Sends the document to the configured remote OCR service, which may incur costs.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3883144805282469432" datatype="html">
|
||||
<source>Rotate counterclockwise</source>
|
||||
@@ -4655,7 +4655,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/input/date/date.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<target state="translated">打开日期选择器</target>
|
||||
<target state="needs-translation">Open date picker</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6048892649018070225" datatype="html">
|
||||
<source>Today</source>
|
||||
@@ -4779,7 +4779,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
</context-group>
|
||||
<target state="translated">移除查询</target>
|
||||
<target state="needs-translation">Remove query</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3184700926171002527" datatype="html">
|
||||
<source>Any</source>
|
||||
@@ -4823,7 +4823,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||
<context context-type="linenumber">196</context>
|
||||
</context-group>
|
||||
<target state="translated">移除表达式</target>
|
||||
<target state="needs-translation">Remove expression</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6630533861307510614" datatype="html">
|
||||
<source>Clear created relative date</source>
|
||||
@@ -6931,7 +6931,7 @@
|
||||
<context context-type="sourcefile">src/app/data/paperless-config.ts</context>
|
||||
<context context-type="linenumber">58</context>
|
||||
</context-group>
|
||||
<target state="translated">远程 OCR</target>
|
||||
<target state="needs-translation">Remote OCR</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4101630920511881483" datatype="html">
|
||||
<source>Apply AI suggestions</source>
|
||||
@@ -6939,7 +6939,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts</context>
|
||||
<context context-type="linenumber">159</context>
|
||||
</context-group>
|
||||
<target state="translated">应用 AI 建议</target>
|
||||
<target state="needs-translation">Apply AI suggestions</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="5701618810648052610" datatype="html">
|
||||
<source>Title</source>
|
||||
@@ -6975,7 +6975,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.ts</context>
|
||||
<context context-type="linenumber">186</context>
|
||||
</context-group>
|
||||
<target state="translated">创建日期</target>
|
||||
<target state="needs-translation">Created date</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4522609911791833187" datatype="html">
|
||||
<source>Has any of these tags</source>
|
||||
@@ -7396,7 +7396,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/input/document-link/document-link.component.html</context>
|
||||
<context context-type="linenumber">52,53</context>
|
||||
</context-group>
|
||||
<target state="translated">不可用</target>
|
||||
<target state="needs-translation">Unavailable</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="5676637575587497817" datatype="html">
|
||||
<source>Search for documents</source>
|
||||
@@ -7440,7 +7440,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/input/entries/entries.component.html</context>
|
||||
<context context-type="linenumber">16</context>
|
||||
</context-group>
|
||||
<target state="translated">移除条目</target>
|
||||
<target state="needs-translation">Remove entry</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6932865105766151309" datatype="html">
|
||||
<source>Upload</source>
|
||||
@@ -7493,7 +7493,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
|
||||
<context context-type="linenumber">41</context>
|
||||
</context-group>
|
||||
<target state="translated">移除项目</target>
|
||||
<target state="needs-translation">Remove item</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3686284950598311784" datatype="html">
|
||||
<source>Private</source>
|
||||
@@ -7769,7 +7769,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/permissions-filter-dropdown/permissions-filter-dropdown.component.html</context>
|
||||
<context context-type="linenumber">61</context>
|
||||
</context-group>
|
||||
<target state="translated">清除选中的用户</target>
|
||||
<target state="needs-translation">Clear selected users</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8999708063434507268" datatype="html">
|
||||
<source>Hide unowned</source>
|
||||
@@ -8481,7 +8481,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">12,13</context>
|
||||
</context-group>
|
||||
<target state="translated">无建议</target>
|
||||
<target state="needs-translation">No suggestions</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="5320136382998259826" datatype="html">
|
||||
<source>Suggest</source>
|
||||
@@ -8533,7 +8533,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">65,66</context>
|
||||
</context-group>
|
||||
<target state="translated">建议选项</target>
|
||||
<target state="needs-translation">Suggestion options</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3145824396228856507" datatype="html">
|
||||
<source>Not using default</source>
|
||||
@@ -8541,7 +8541,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">69,70</context>
|
||||
</context-group>
|
||||
<target state="translated">不使用默认值</target>
|
||||
<target state="needs-translation">Not using default</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8102623853570619759" datatype="html">
|
||||
<source>Suggest using:</source>
|
||||
@@ -8549,7 +8549,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">74,75</context>
|
||||
</context-group>
|
||||
<target state="translated">建议使用:</target>
|
||||
<target state="needs-translation">Suggest using:</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="5799391967036896978" datatype="html">
|
||||
<source>ML</source>
|
||||
@@ -8557,7 +8557,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">77</context>
|
||||
</context-group>
|
||||
<target state="translated">ML</target>
|
||||
<target state="needs-translation">ML</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3484984238852181071" datatype="html">
|
||||
<source>AI</source>
|
||||
@@ -8565,7 +8565,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">81</context>
|
||||
</context-group>
|
||||
<target state="translated">AI</target>
|
||||
<target state="needs-translation">AI</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="9180110319941008393" datatype="html">
|
||||
<source>Environment</source>
|
||||
@@ -9219,7 +9219,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-barcodes/document-barcodes.component.html</context>
|
||||
<context context-type="linenumber">40,41</context>
|
||||
</context-group>
|
||||
<target state="translated">复制内容</target>
|
||||
<target state="needs-translation">Copy content</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2266163016683537825" datatype="html">
|
||||
<source>of <x id="INTERPOLATION" equiv-text="{{previewNumPages()}}"/></source>
|
||||
@@ -9255,7 +9255,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.html</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
</context-group>
|
||||
<target state="translated">下载选项</target>
|
||||
<target state="needs-translation">Download options</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8659635229098859487" datatype="html">
|
||||
<source>Download original</source>
|
||||
@@ -9479,7 +9479,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
|
||||
<context context-type="linenumber">360,361</context>
|
||||
</context-group>
|
||||
<target state="translated">条形码</target>
|
||||
<target state="needs-translation">Barcodes</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6992781481378431874" datatype="html">
|
||||
<source>Original document metadata</source>
|
||||
@@ -9727,7 +9727,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
||||
<context context-type="linenumber">1074</context>
|
||||
</context-group>
|
||||
<target state="translated">此版本的内容有未保存的更改。</target>
|
||||
<target state="needs-translation">You have unsaved changes to the content of this version.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="85184271222513014" datatype="html">
|
||||
<source>Switching versions will discard them.</source>
|
||||
@@ -9735,7 +9735,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
||||
<context context-type="linenumber">1075</context>
|
||||
</context-group>
|
||||
<target state="translated">切换版本将丢弃这些更改。</target>
|
||||
<target state="needs-translation">Switching versions will discard them.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2565707334844767610" datatype="html">
|
||||
<source>Discard and switch</source>
|
||||
@@ -9743,7 +9743,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
||||
<context context-type="linenumber">1077</context>
|
||||
</context-group>
|
||||
<target state="translated">丢弃并切换</target>
|
||||
<target state="needs-translation">Discard and switch</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2109314380040637387" datatype="html">
|
||||
<source>Save and switch</source>
|
||||
@@ -9751,7 +9751,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
|
||||
<context context-type="linenumber">1079</context>
|
||||
</context-group>
|
||||
<target state="translated">保存并切换</target>
|
||||
<target state="needs-translation">Save and switch</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3456881259945295697" datatype="html">
|
||||
<source>Error retrieving suggestions.</source>
|
||||
@@ -9967,7 +9967,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-version-dropdown/add-existing-document-version-dialog/add-existing-document-version-dialog.component.html</context>
|
||||
<context context-type="linenumber">13,14</context>
|
||||
</context-group>
|
||||
<target state="translated">请选择一份文档,将其添加为新版本。</target>
|
||||
<target state="needs-translation">Select one document to add as a version.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="337558081609002420" datatype="html">
|
||||
<source>Add version</source>
|
||||
@@ -10011,7 +10011,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html</context>
|
||||
<context context-type="linenumber">35,36</context>
|
||||
</context-group>
|
||||
<target state="translated">上传新版本</target>
|
||||
<target state="needs-translation">Upload a new version</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="278763911843514709" datatype="html">
|
||||
<source>Use an existing document</source>
|
||||
@@ -10019,7 +10019,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html</context>
|
||||
<context context-type="linenumber">44,45</context>
|
||||
</context-group>
|
||||
<target state="translated">使用现有文档</target>
|
||||
<target state="needs-translation">Use an existing document</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="1906507263389090131" datatype="html">
|
||||
<source>Existing</source>
|
||||
@@ -10027,7 +10027,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-version-dropdown/document-version-dropdown.component.html</context>
|
||||
<context context-type="linenumber">47,48</context>
|
||||
</context-group>
|
||||
<target state="translated">已有的</target>
|
||||
<target state="needs-translation">Existing</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3119565892291077820" datatype="html">
|
||||
<source>Uploading version...</source>
|
||||
@@ -11234,7 +11234,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
||||
<context context-type="linenumber">208</context>
|
||||
</context-group>
|
||||
<target state="translated">创建副本</target>
|
||||
<target state="needs-translation">Duplicates</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8492379284173601938" datatype="html">
|
||||
<source>Custom fields (Deprecated)</source>
|
||||
@@ -11298,7 +11298,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
||||
<context context-type="linenumber">252</context>
|
||||
</context-group>
|
||||
<target state="translated">存在</target>
|
||||
<target state="needs-translation">exist</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4528435301189613620" datatype="html">
|
||||
<source>do not exist</source>
|
||||
@@ -11306,7 +11306,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
||||
<context context-type="linenumber">256</context>
|
||||
</context-group>
|
||||
<target state="translated">不存在</target>
|
||||
<target state="needs-translation">do not exist</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="5195932016807797291" datatype="html">
|
||||
<source>Correspondent: <x id="PH" equiv-text="this.correspondentSelectionModel.items.find( (c) => c.id == +rule.value )?.name"/></source>
|
||||
@@ -11378,7 +11378,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
||||
<context context-type="linenumber">343</context>
|
||||
</context-group>
|
||||
<target state="translated">无重复项</target>
|
||||
<target state="needs-translation">Without duplicates</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8448347828886552444" datatype="html">
|
||||
<source>With duplicates</source>
|
||||
@@ -11386,7 +11386,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
|
||||
<context context-type="linenumber">344</context>
|
||||
</context-group>
|
||||
<target state="translated">带重复项</target>
|
||||
<target state="needs-translation">With duplicates</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8644099678903817943" datatype="html">
|
||||
<source>Custom fields query</source>
|
||||
@@ -11462,7 +11462,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.html</context>
|
||||
<context context-type="linenumber">21</context>
|
||||
</context-group>
|
||||
<target state="translated">图标</target>
|
||||
<target state="needs-translation">Icon</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8689274715612276035" datatype="html">
|
||||
<source>Show in sidebar</source>
|
||||
@@ -12515,7 +12515,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-link-list/share-link-list.component.html</context>
|
||||
<context context-type="linenumber">40,41</context>
|
||||
</context-group>
|
||||
<target state="translated">已过期</target>
|
||||
<target state="needs-translation">Expired</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2057574872309338088" datatype="html">
|
||||
<source>Copy share link</source>
|
||||
@@ -12559,7 +12559,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-link-bundle-list/share-link-bundle-list.component.html</context>
|
||||
<context context-type="linenumber">164,165</context>
|
||||
</context-group>
|
||||
<target state="translated">分享链接合集分页</target>
|
||||
<target state="needs-translation">Share link bundles pagination</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="1541995860059283227" datatype="html">
|
||||
<source>Failed to load share link bundles.</source>
|
||||
@@ -12623,7 +12623,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-link-list/share-link-list.component.html</context>
|
||||
<context context-type="linenumber">15,16</context>
|
||||
</context-group>
|
||||
<target state="translated">文档</target>
|
||||
<target state="needs-translation">Document</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7420713064779772535" datatype="html">
|
||||
<source>Delete share link</source>
|
||||
@@ -12631,7 +12631,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-link-list/share-link-list.component.html</context>
|
||||
<context context-type="linenumber">75,76</context>
|
||||
</context-group>
|
||||
<target state="translated">删除分享链接</target>
|
||||
<target state="needs-translation">Delete share link</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="5198271726831144068" datatype="html">
|
||||
<source>Share links pagination</source>
|
||||
@@ -12647,7 +12647,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-link-list/share-link-list.component.ts</context>
|
||||
<context context-type="linenumber">105</context>
|
||||
</context-group>
|
||||
<target state="translated">加载分享链接失败。</target>
|
||||
<target state="needs-translation">Failed to load share links.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4100863040928608880" datatype="html">
|
||||
<source>Error retrieving share links.</source>
|
||||
@@ -12655,7 +12655,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-link-list/share-link-list.component.ts</context>
|
||||
<context context-type="linenumber">107</context>
|
||||
</context-group>
|
||||
<target state="translated">获取分享链接失败。</target>
|
||||
<target state="needs-translation">Error retrieving share links.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="326120283142363299" datatype="html">
|
||||
<source>Share link deleted.</source>
|
||||
@@ -12663,7 +12663,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-link-list/share-link-list.component.ts</context>
|
||||
<context context-type="linenumber">154</context>
|
||||
</context-group>
|
||||
<target state="translated">分享链接已删除。</target>
|
||||
<target state="needs-translation">Share link deleted.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4964931417181298145" datatype="html">
|
||||
<source>Error deleting share link.</source>
|
||||
@@ -12671,7 +12671,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-link-list/share-link-list.component.ts</context>
|
||||
<context context-type="linenumber">159</context>
|
||||
</context-group>
|
||||
<target state="translated">删除分享链接失败。</target>
|
||||
<target state="needs-translation">Error deleting share link.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3439104787814858626" datatype="html">
|
||||
<source>Manage public links to individual documents and document bundles.</source>
|
||||
@@ -12679,7 +12679,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-links.component.html</context>
|
||||
<context context-type="linenumber">4,5</context>
|
||||
</context-group>
|
||||
<target state="translated">管理单个文档和文档合集的公开分享链接。</target>
|
||||
<target state="needs-translation">Manage public links to individual documents and document bundles.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="3740311348735113099" datatype="html">
|
||||
<source>Document links</source>
|
||||
@@ -12687,7 +12687,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-links.component.html</context>
|
||||
<context context-type="linenumber">18,19</context>
|
||||
</context-group>
|
||||
<target state="translated">文档链接</target>
|
||||
<target state="needs-translation">Document links</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8216780576869093031" datatype="html">
|
||||
<source>Bundles</source>
|
||||
@@ -12695,7 +12695,7 @@
|
||||
<context context-type="sourcefile">src/app/components/manage/share-links/share-links.component.html</context>
|
||||
<context context-type="linenumber">26,27</context>
|
||||
</context-group>
|
||||
<target state="translated">捆绑包</target>
|
||||
<target state="needs-translation">Bundles</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="1229748338333965418" datatype="html">
|
||||
<source>Use workflows to customize the behavior of Paperless-ngx when events 'trigger' a workflow.</source>
|
||||
@@ -13208,7 +13208,7 @@
|
||||
<context context-type="sourcefile">src/app/data/paperless-config.ts</context>
|
||||
<context context-type="linenumber">200</context>
|
||||
</context-group>
|
||||
<target state="translated">远程 OCR 引擎</target>
|
||||
<target state="needs-translation">Remote OCR Engine</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2892372808177591734" datatype="html">
|
||||
<source>Enabling remote OCR sends documents to a third-party service for processing. Consider the privacy implications as well as potential costs before enabling.</source>
|
||||
@@ -13224,7 +13224,7 @@
|
||||
<context context-type="sourcefile">src/app/data/paperless-config.ts</context>
|
||||
<context context-type="linenumber">210</context>
|
||||
</context-group>
|
||||
<target state="translated">远程 OCR API 密钥</target>
|
||||
<target state="needs-translation">Remote OCR API Key</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="8592973963881683840" datatype="html">
|
||||
<source>Remote OCR Endpoint</source>
|
||||
@@ -13232,7 +13232,7 @@
|
||||
<context context-type="sourcefile">src/app/data/paperless-config.ts</context>
|
||||
<context context-type="linenumber">218</context>
|
||||
</context-group>
|
||||
<target state="translated">远程 OCR 端点</target>
|
||||
<target state="needs-translation">Remote OCR Endpoint</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2477780225973884032" datatype="html">
|
||||
<source>Required when using the Azure AI engine.</source>
|
||||
@@ -13240,7 +13240,7 @@
|
||||
<context context-type="sourcefile">src/app/data/paperless-config.ts</context>
|
||||
<context context-type="linenumber">223</context>
|
||||
</context-group>
|
||||
<target state="translated">使用 Azure AI 引擎时必填。</target>
|
||||
<target state="needs-translation">Required when using the Azure AI engine.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2908398258708722139" datatype="html">
|
||||
<source>Remote OCR Mode</source>
|
||||
@@ -13248,7 +13248,7 @@
|
||||
<context context-type="sourcefile">src/app/data/paperless-config.ts</context>
|
||||
<context context-type="linenumber">227</context>
|
||||
</context-group>
|
||||
<target state="translated">远程 OCR 模式</target>
|
||||
<target state="needs-translation">Remote OCR Mode</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4022045371405916558" datatype="html">
|
||||
<source>Which documents are sent to the remote engine. Use 'workflow_only' to keep remote OCR off unless a workflow enables it for a document.</source>
|
||||
|
||||
@@ -479,7 +479,7 @@
|
||||
<context context-type="sourcefile">src/app/app.component.ts</context>
|
||||
<context context-type="linenumber">201</context>
|
||||
</context-group>
|
||||
<target state="translated">標籤、關聯方、文件類型、儲存路徑與自訂欄位等文件屬性皆可在此處管理,亦可在「文件編輯」檢視中建立。</target>
|
||||
<target state="translated">標籤、關聯方、文件類型、儲存路徑與自訂欄位等屬性皆可在此處管理,亦可在「文件編輯」檢視中建立。</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7851939076947092983" datatype="html">
|
||||
<source>Manage e-mail accounts and rules for automatically importing documents.</source>
|
||||
@@ -3859,7 +3859,7 @@
|
||||
<context context-type="sourcefile">src/app/components/app-frame/app-frame.component.html</context>
|
||||
<context context-type="linenumber">195</context>
|
||||
</context-group>
|
||||
<target state="translated">文件屬性</target>
|
||||
<target state="translated">屬性</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7437910965833684826" datatype="html">
|
||||
<source>Correspondents</source>
|
||||
@@ -8525,7 +8525,7 @@
|
||||
<context context-type="sourcefile">src/app/components/common/suggestions-dropdown/suggestions-dropdown.component.html</context>
|
||||
<context context-type="linenumber">54</context>
|
||||
</context-group>
|
||||
<target state="translated">{VAR_PLURAL, plural, =1 {以下有 1 個可用建議} other {以下有 <x id="INTERPOLATION"/> 個可用建議}}</target>
|
||||
<target state="needs-translation">{VAR_PLURAL, plural, =1 {1 suggestion available below} other {<x id="INTERPOLATION"/> suggestions available below}}</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="4169875112244042673" datatype="html">
|
||||
<source>Suggestion options</source>
|
||||
@@ -9219,7 +9219,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-barcodes/document-barcodes.component.html</context>
|
||||
<context context-type="linenumber">40,41</context>
|
||||
</context-group>
|
||||
<target state="translated">拷貝內容</target>
|
||||
<target state="needs-translation">Copy content</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="2266163016683537825" datatype="html">
|
||||
<source>of <x id="INTERPOLATION" equiv-text="{{previewNumPages()}}"/></source>
|
||||
@@ -9479,7 +9479,7 @@
|
||||
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
|
||||
<context context-type="linenumber">360,361</context>
|
||||
</context-group>
|
||||
<target state="translated">條碼</target>
|
||||
<target state="needs-translation">Barcodes</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="6992781481378431874" datatype="html">
|
||||
<source>Original document metadata</source>
|
||||
@@ -13376,7 +13376,7 @@
|
||||
<context context-type="sourcefile">src/app/data/paperless-config.ts</context>
|
||||
<context context-type="linenumber">335</context>
|
||||
</context-group>
|
||||
<target state="translated">儲存條碼內容</target>
|
||||
<target state="needs-translation">Store Barcode Contents</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="7011909364081812031" datatype="html">
|
||||
<source>AI Enabled</source>
|
||||
|
||||
@@ -11,6 +11,8 @@ from typing import TYPE_CHECKING
|
||||
|
||||
import pytest
|
||||
|
||||
from paperless_testing import samples
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import Generator
|
||||
from pathlib import Path
|
||||
@@ -149,3 +151,39 @@ def fake_progress_manager(
|
||||
|
||||
monkeypatch.setattr("documents.tasks.ProgressManager", FakeProgressManager)
|
||||
return FakeProgressManager
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def shared_samples_dir() -> Path:
|
||||
"""Directory of sample files used by more than one app's tests."""
|
||||
return samples.SHARED_SAMPLES_DIR
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def simple_digital_pdf_file() -> Path:
|
||||
"""One-page PDF with a text layer."""
|
||||
return samples.SIMPLE_DIGITAL_PDF
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def multi_page_digital_pdf_file() -> Path:
|
||||
"""Three-page PDF with a text layer."""
|
||||
return samples.MULTI_PAGE_DIGITAL_PDF
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def with_form_pdf_file() -> Path:
|
||||
"""PDF containing a fillable form."""
|
||||
return samples.WITH_FORM_PDF
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def multi_page_images_pdf_file() -> Path:
|
||||
"""Multi-page PDF of scanned images, no text layer."""
|
||||
return samples.MULTI_PAGE_IMAGES_PDF
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def thumbnail_webp_file() -> Path:
|
||||
"""Small WebP thumbnail."""
|
||||
return samples.THUMBNAIL_WEBP
|
||||
@@ -50,7 +50,6 @@ from documents.models import ShareLink
|
||||
from documents.models import ShareLinkBundle
|
||||
from documents.models import StoragePath
|
||||
from documents.models import Tag
|
||||
from documents.permissions import annotate_authorizing_fields
|
||||
from documents.permissions import permitted_document_ids
|
||||
from documents.permissions import permitted_object_ids
|
||||
from documents.versioning import annotate_effective_content
|
||||
@@ -1076,9 +1075,6 @@ class PermittedObjectsFilter(BaseFilterBackend):
|
||||
|
||||
include_granted: bool = True
|
||||
perm_codename: str | None = None
|
||||
# A self-referencing foreign key whose target authorizes a row, so a row is
|
||||
# judged by its parent's owner and grants (``Document.root_document``).
|
||||
parent_field: str | None = None
|
||||
|
||||
def filter_queryset(self, request, queryset, view):
|
||||
# Before the superuser and owner-only paths, neither of which consults
|
||||
@@ -1090,23 +1086,11 @@ class PermittedObjectsFilter(BaseFilterBackend):
|
||||
if request.user.is_superuser:
|
||||
return queryset
|
||||
if not self.include_granted:
|
||||
owner_field = "owner"
|
||||
if self.parent_field is not None:
|
||||
queryset = annotate_authorizing_fields(queryset, self.parent_field)
|
||||
owner_field = "authorizing_owner"
|
||||
return queryset.filter(
|
||||
Q(**{owner_field: request.user.pk})
|
||||
| Q(**{f"{owner_field}__isnull": True}),
|
||||
)
|
||||
return queryset.filter(Q(owner=request.user) | Q(owner__isnull=True))
|
||||
model = queryset.model
|
||||
perm = self.perm_codename or f"view_{model._meta.model_name}"
|
||||
return queryset.filter(
|
||||
id__in=permitted_object_ids(
|
||||
request.user,
|
||||
model,
|
||||
perm,
|
||||
parent_field=self.parent_field,
|
||||
),
|
||||
id__in=permitted_object_ids(request.user, model, perm),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -67,22 +67,18 @@ class Command(PaperlessCommand):
|
||||
if options.get("recreate"):
|
||||
wipe_index(settings.INDEX_DIR)
|
||||
|
||||
documents = (
|
||||
Document.objects.filter(root_document__isnull=True)
|
||||
.select_related(
|
||||
"correspondent",
|
||||
"document_type",
|
||||
"storage_path",
|
||||
"owner",
|
||||
)
|
||||
.prefetch_related(
|
||||
"tags",
|
||||
"notes__user",
|
||||
"custom_fields__field",
|
||||
"versions",
|
||||
"barcodes",
|
||||
"versions__barcodes",
|
||||
)
|
||||
documents = Document.objects.select_related(
|
||||
"correspondent",
|
||||
"document_type",
|
||||
"storage_path",
|
||||
"owner",
|
||||
).prefetch_related(
|
||||
"tags",
|
||||
"notes__user",
|
||||
"custom_fields__field",
|
||||
"versions",
|
||||
"barcodes",
|
||||
"versions__barcodes",
|
||||
)
|
||||
total = documents.count()
|
||||
rebuild_kwargs = {}
|
||||
|
||||
@@ -28,7 +28,6 @@ from rest_framework.permissions import BasePermission
|
||||
from rest_framework.permissions import DjangoObjectPermissions
|
||||
|
||||
from documents.models import Document
|
||||
from documents.versioning import get_root_document
|
||||
|
||||
|
||||
class PaperlessObjectPermissions(DjangoObjectPermissions):
|
||||
@@ -389,7 +388,14 @@ def permitted_object_ids(
|
||||
owner_field, key_field = "owner", "pk"
|
||||
if parent_field is not None:
|
||||
owner_field, key_field = "authorizing_owner", "authorizing_id"
|
||||
base_qs = annotate_authorizing_fields(base_qs, parent_field)
|
||||
base_qs = base_qs.annotate(
|
||||
authorizing_id=Coalesce(f"{parent_field}_id", "id"),
|
||||
authorizing_owner=Case(
|
||||
When(**{f"{parent_field}_id__isnull": True}, then=F("owner_id")),
|
||||
default=F(f"{parent_field}__owner_id"),
|
||||
output_field=IntegerField(),
|
||||
),
|
||||
)
|
||||
unowned = Q(**{f"{owner_field}__isnull": True})
|
||||
|
||||
if user is None or not getattr(user, "is_authenticated", False):
|
||||
@@ -442,26 +448,6 @@ def permitted_object_ids(
|
||||
ModelT = TypeVar("ModelT", bound=Model)
|
||||
|
||||
|
||||
def annotate_authorizing_fields(
|
||||
queryset: QuerySet[ModelT],
|
||||
parent_field: str,
|
||||
) -> QuerySet[ModelT]:
|
||||
"""
|
||||
Annotate each row with ``authorizing_id`` and ``authorizing_owner``: the id
|
||||
and owner of the row that authorizes it. A row with a parent (the
|
||||
self-referencing foreign key ``parent_field``) is authorized by its parent,
|
||||
any other row by itself.
|
||||
"""
|
||||
return queryset.annotate(
|
||||
authorizing_id=Coalesce(f"{parent_field}_id", "id"),
|
||||
authorizing_owner=Case(
|
||||
When(**{f"{parent_field}_id__isnull": True}, then=F("owner_id")),
|
||||
default=F(f"{parent_field}__owner_id"),
|
||||
output_field=IntegerField(),
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def user_is_unrestricted(user: User | None) -> bool:
|
||||
"""
|
||||
True when ``user`` means "no restriction at all" (an absent user, or an
|
||||
@@ -693,14 +679,7 @@ def has_perms_owner_aware(user, perms, obj):
|
||||
single-object check still has many production callers. Several callers
|
||||
remain across ``documents/``, ``paperless_mail/``, and ``paperless_ai/``
|
||||
-- grep for this function name before removing it.
|
||||
|
||||
A document version is authorized by its root document, like in
|
||||
``permitted_document_ids``, so a version's own owner and grants never
|
||||
matter. Fetch the root with ``select_related("root_document__owner")`` to
|
||||
avoid extra queries.
|
||||
"""
|
||||
if isinstance(obj, Document):
|
||||
obj = get_root_document(obj)
|
||||
checker = ObjectPermissionChecker(user)
|
||||
return obj.owner is None or obj.owner == user or checker.has_perm(perms, obj)
|
||||
|
||||
|
||||
@@ -284,14 +284,9 @@ class WriteBatch:
|
||||
and adding the new version. This ensures stale document data (e.g., after
|
||||
permission changes) doesn't persist in the index.
|
||||
|
||||
Only root documents are indexed, with their effective content, so a
|
||||
version is indexed as its root document.
|
||||
|
||||
Args:
|
||||
document: Django Document instance to index
|
||||
"""
|
||||
if document.root_document_id is not None:
|
||||
document = document.root_document
|
||||
self.remove(document.pk)
|
||||
doc = self._backend._build_tantivy_doc(document)
|
||||
self._writer.add_document(doc)
|
||||
@@ -316,22 +311,20 @@ class WriteBatch:
|
||||
An id with no matching document (e.g. deleted between the caller
|
||||
collecting ids and the batch running) is silently skipped, matching
|
||||
``add_or_update()``'s existing single-document deferred-task behavior
|
||||
rather than erroring or leaving a stale index entry. The id of a
|
||||
version stands for its root document.
|
||||
rather than erroring or leaving a stale index entry.
|
||||
|
||||
Args:
|
||||
ids: Primary keys of Document instances to index
|
||||
"""
|
||||
from documents.models import Document
|
||||
from documents.versioning import annotate_effective_content
|
||||
from documents.versioning import root_document_ids
|
||||
|
||||
ids = list(ids)
|
||||
if not ids:
|
||||
return
|
||||
|
||||
queryset = annotate_effective_content(
|
||||
Document.objects.filter(pk__in=root_document_ids(ids))
|
||||
Document.objects.filter(pk__in=ids)
|
||||
.select_related("correspondent", "document_type", "storage_path", "owner")
|
||||
.prefetch_related(
|
||||
"tags",
|
||||
@@ -1043,21 +1036,16 @@ class TantivyBackend:
|
||||
excluded from results.
|
||||
|
||||
Args:
|
||||
doc_id: Primary key of the reference document, or of one of its
|
||||
versions
|
||||
doc_id: Primary key of the reference document
|
||||
user: User for permission filtering (None for no filtering)
|
||||
limit: Maximum number of IDs to return (None = all matching docs)
|
||||
|
||||
Returns:
|
||||
List of similar document IDs (excluding the original)
|
||||
"""
|
||||
from documents.versioning import root_document_ids
|
||||
|
||||
self._ensure_open()
|
||||
searcher = self._index.searcher()
|
||||
|
||||
# Only root documents are indexed, so a version stands for its root
|
||||
doc_id = next(iter(root_document_ids([doc_id])), doc_id)
|
||||
id_query = tantivy.Query.term_query(self._schema, "id", doc_id)
|
||||
results = searcher.search(id_query, limit=1)
|
||||
|
||||
|
||||
@@ -28,9 +28,7 @@ logger = logging.getLogger("paperless.search")
|
||||
# columns dropped. tantivy compares schemas by ordered field list, so an
|
||||
# index built by v1 rejects every write against the v2 schema.
|
||||
# v3 - barcodes JSON field for stored barcode contents
|
||||
# v4 - root documents only. Earlier indexes may hold document versions under
|
||||
# their own id and metadata, so they are rebuilt without them.
|
||||
SCHEMA_VERSION: Final[int] = 4
|
||||
SCHEMA_VERSION: Final[int] = 3
|
||||
|
||||
# Present in the index directory from the moment a full rebuild starts until it
|
||||
# finishes. If a rebuild is interrupted it is left behind, so the half-built
|
||||
|
||||
@@ -90,6 +90,7 @@ from documents.templating.utils import convert_format_str_to_template_format
|
||||
from documents.templating.workflows import validate_workflow_template
|
||||
from documents.validators import uri_validator
|
||||
from documents.validators import url_validator
|
||||
from documents.versioning import get_root_document
|
||||
from documents.versioning import has_prefetched_effective_content
|
||||
from documents.versioning import sort_versions_newest_first
|
||||
|
||||
@@ -2894,7 +2895,7 @@ class ShareLinkSerializer(OwnedObjectSerializer):
|
||||
and has_perms_owner_aware(
|
||||
self.user,
|
||||
"view_document",
|
||||
document,
|
||||
get_root_document(document),
|
||||
)
|
||||
):
|
||||
return document
|
||||
|
||||
@@ -490,20 +490,23 @@ def update_document_content_maybe_archive_file(
|
||||
shutil.move(thumbnail, document.thumbnail_path)
|
||||
|
||||
document.refresh_from_db()
|
||||
root_document = (
|
||||
document.root_document if document.root_document_id else document
|
||||
)
|
||||
logger.info(
|
||||
f"Updating index for document {document_id} ({document.archive_checksum})",
|
||||
f"Updating index for document {root_document.pk} ({document.archive_checksum})",
|
||||
)
|
||||
from documents.search import get_backend
|
||||
|
||||
get_backend().add_or_update(document)
|
||||
get_backend().add_or_update(root_document)
|
||||
|
||||
ai_config = AIConfig()
|
||||
if ai_config.llm_index_enabled:
|
||||
llm_index_add_or_update_document(document)
|
||||
llm_index_add_or_update_document(root_document)
|
||||
|
||||
clear_document_caches(document.pk)
|
||||
if document.root_document_id is not None:
|
||||
clear_document_caches(document.root_document_id)
|
||||
if root_document.pk != document.pk:
|
||||
clear_document_caches(root_document.pk)
|
||||
|
||||
except Exception:
|
||||
logger.exception(
|
||||
|
||||
@@ -12,29 +12,25 @@ if TYPE_CHECKING:
|
||||
from paperless_testing.dirs import PaperlessDirs
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def document_samples_dir() -> Path:
|
||||
"""Path to the shared test sample documents."""
|
||||
return Path(__file__).parent / "samples" / "documents"
|
||||
|
||||
|
||||
@pytest.fixture()
|
||||
def sample_doc(
|
||||
paperless_dirs: "PaperlessDirs",
|
||||
document_samples_dir: Path,
|
||||
simple_digital_pdf_file: Path,
|
||||
multi_page_images_pdf_file: Path,
|
||||
thumbnail_webp_file: Path,
|
||||
) -> "Document":
|
||||
"""Create a document with valid files and matching checksums."""
|
||||
with filelock.FileLock(paperless_dirs.media_lock):
|
||||
shutil.copy(
|
||||
document_samples_dir / "originals" / "0000001.pdf",
|
||||
simple_digital_pdf_file,
|
||||
paperless_dirs.originals_dir / "0000001.pdf",
|
||||
)
|
||||
shutil.copy(
|
||||
document_samples_dir / "archive" / "0000001.pdf",
|
||||
multi_page_images_pdf_file,
|
||||
paperless_dirs.archive_dir / "0000001.pdf",
|
||||
)
|
||||
shutil.copy(
|
||||
document_samples_dir / "thumbnails" / "0000001.webp",
|
||||
thumbnail_webp_file,
|
||||
paperless_dirs.thumbnail_dir / "0000001.webp",
|
||||
)
|
||||
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 32 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
Before Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
@@ -1 +0,0 @@
|
||||
This is a test file.
|
||||
@@ -293,80 +293,6 @@ class TestAddOrUpdateIds:
|
||||
assert backend.search_ids("updated", user=None) == [doc.pk]
|
||||
|
||||
|
||||
class TestVersionsAreIndexedAsTheirRoot:
|
||||
"""Only root documents are indexed, with their effective content, so
|
||||
every write path that is handed a version indexes its root instead."""
|
||||
|
||||
@staticmethod
|
||||
def _root_with_version() -> tuple[Document, Document]:
|
||||
root = DocumentFactory(title="Statement", content="stale text")
|
||||
version = DocumentFactory(
|
||||
title="Statement",
|
||||
content="latest text",
|
||||
root_document=root,
|
||||
version_index=1,
|
||||
)
|
||||
return root, version
|
||||
|
||||
def test_add_or_update_indexes_the_root_of_a_version(
|
||||
self,
|
||||
backend: TantivyBackend,
|
||||
) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
- A root document with a version
|
||||
WHEN:
|
||||
- The version is passed to add_or_update
|
||||
THEN:
|
||||
- The root is indexed with the version's text, and the version is not
|
||||
"""
|
||||
root, version = self._root_with_version()
|
||||
|
||||
backend.add_or_update(version)
|
||||
|
||||
assert backend.search_ids("latest", user=None) == [root.pk]
|
||||
assert backend.search_ids("stale", user=None) == []
|
||||
|
||||
def test_add_or_update_ids_indexes_each_root_once(
|
||||
self,
|
||||
backend: TantivyBackend,
|
||||
) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
- A root document with a version
|
||||
WHEN:
|
||||
- Both ids are passed to add_or_update_ids
|
||||
THEN:
|
||||
- The root is indexed once and the version is not indexed
|
||||
"""
|
||||
root, version = self._root_with_version()
|
||||
|
||||
with backend.batch_update() as batch:
|
||||
batch.add_or_update_ids([version.pk, root.pk])
|
||||
|
||||
assert backend.search_ids("Statement", user=None) == [root.pk]
|
||||
assert backend.search_ids("latest", user=None) == [root.pk]
|
||||
|
||||
def test_add_or_update_ids_resolves_a_lone_version(
|
||||
self,
|
||||
backend: TantivyBackend,
|
||||
) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
- A root document with a version
|
||||
WHEN:
|
||||
- Only the version's id is passed to add_or_update_ids
|
||||
THEN:
|
||||
- The root is indexed
|
||||
"""
|
||||
root, version = self._root_with_version()
|
||||
|
||||
with backend.batch_update() as batch:
|
||||
batch.add_or_update_ids([version.pk])
|
||||
|
||||
assert backend.search_ids("latest", user=None) == [root.pk]
|
||||
|
||||
|
||||
class TestSearch:
|
||||
"""Test search query parsing and matching via search_ids."""
|
||||
|
||||
@@ -1136,34 +1062,6 @@ class TestMoreLikeThis:
|
||||
assert 150 not in ids
|
||||
assert 151 in ids
|
||||
|
||||
def test_more_like_this_ids_seeded_by_version_uses_root(
|
||||
self,
|
||||
backend: TantivyBackend,
|
||||
) -> None:
|
||||
"""A version is not indexed, so it must be looked up as its root."""
|
||||
root = DocumentFactory.create(
|
||||
title="Important document",
|
||||
content="financial information report",
|
||||
)
|
||||
version = DocumentFactory.create(
|
||||
title="Important document",
|
||||
content="financial information report",
|
||||
root_document=root,
|
||||
version_index=1,
|
||||
)
|
||||
other = DocumentFactory.create(
|
||||
title="Another document",
|
||||
content="financial information report",
|
||||
)
|
||||
backend.add_or_update(root)
|
||||
backend.add_or_update(other)
|
||||
|
||||
ids = backend.more_like_this_ids(doc_id=version.pk, user=None)
|
||||
|
||||
assert other.pk in ids
|
||||
assert root.pk not in ids
|
||||
assert version.pk not in ids
|
||||
|
||||
|
||||
class TestSingleton:
|
||||
"""Test get_backend() and reset_backend() singleton lifecycle."""
|
||||
|
||||
@@ -53,7 +53,7 @@ class TestBulkDownload(DirectoriesMixin, SampleDirMixin, APITestCase):
|
||||
archive_checksum="D",
|
||||
)
|
||||
|
||||
shutil.copy(self.SAMPLE_DIR / "simple.pdf", self.doc2.source_path)
|
||||
shutil.copy(self.SIMPLE_PDF, self.doc2.source_path)
|
||||
shutil.copy(self.SAMPLE_DIR / "simple.png", self.doc2b.source_path)
|
||||
shutil.copy(self.SAMPLE_DIR / "simple.jpg", self.doc3.source_path)
|
||||
shutil.copy(self.SAMPLE_DIR / "test_with_bom.pdf", self.doc3.archive_path)
|
||||
|
||||
@@ -56,6 +56,8 @@ 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
|
||||
from paperless_testing.samples import SIMPLE_DIGITAL_PDF
|
||||
from paperless_testing.samples import THUMBNAIL_WEBP
|
||||
|
||||
|
||||
class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
@@ -1852,7 +1854,11 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SimpleUploadedFile(
|
||||
"simple.pdf",
|
||||
SIMPLE_DIGITAL_PDF.read_bytes(),
|
||||
content_type="application/pdf",
|
||||
) as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f},
|
||||
@@ -1880,7 +1886,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
|
||||
payload = SimpleUploadedFile(
|
||||
"../../outside.pdf",
|
||||
(Path(__file__).parent / "samples" / "simple.pdf").read_bytes(),
|
||||
SIMPLE_DIGITAL_PDF.read_bytes(),
|
||||
content_type="application/pdf",
|
||||
)
|
||||
|
||||
@@ -1909,7 +1915,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
pdf_bytes = (Path(__file__).parent / "samples" / "simple.pdf").read_bytes()
|
||||
pdf_bytes = SIMPLE_DIGITAL_PDF.read_bytes()
|
||||
boundary = "paperless-boundary"
|
||||
payload = (
|
||||
(
|
||||
@@ -1985,7 +1991,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
def test_upload_insufficient_permissions(self) -> None:
|
||||
self.client.force_authenticate(user=UserFactory(username="testuser2"))
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f},
|
||||
@@ -1998,7 +2004,11 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SimpleUploadedFile(
|
||||
"simple.pdf",
|
||||
SIMPLE_DIGITAL_PDF.read_bytes(),
|
||||
content_type="application/pdf",
|
||||
) as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{
|
||||
@@ -2031,7 +2041,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"documenst": f},
|
||||
@@ -2057,7 +2067,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "title": "my custom title"},
|
||||
@@ -2077,7 +2087,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
)
|
||||
|
||||
c = Correspondent.objects.create(name="test-corres")
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "correspondent": c.id},
|
||||
@@ -2096,7 +2106,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "correspondent": 3456},
|
||||
@@ -2111,7 +2121,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
)
|
||||
|
||||
dt = DocumentType.objects.create(name="invoice")
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "document_type": dt.id},
|
||||
@@ -2130,7 +2140,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "document_type": 34578},
|
||||
@@ -2145,7 +2155,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
)
|
||||
|
||||
sp = StoragePath.objects.create(name="invoices")
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "storage_path": sp.id},
|
||||
@@ -2164,7 +2174,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "storage_path": 34578},
|
||||
@@ -2180,7 +2190,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
|
||||
t1 = Tag.objects.create(name="tag1")
|
||||
t2 = Tag.objects.create(name="tag2")
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "tags": [t2.id, t1.id]},
|
||||
@@ -2201,7 +2211,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
|
||||
t1 = Tag.objects.create(name="tag1")
|
||||
t2 = Tag.objects.create(name="tag2")
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "tags": [t2.id, t1.id, 734563]},
|
||||
@@ -2225,7 +2235,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
0,
|
||||
tzinfo=zoneinfo.ZoneInfo("America/Los_Angeles"),
|
||||
)
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "created": created},
|
||||
@@ -2241,7 +2251,11 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SimpleUploadedFile(
|
||||
"simple.pdf",
|
||||
SIMPLE_DIGITAL_PDF.read_bytes(),
|
||||
content_type="application/pdf",
|
||||
) as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "archive_serial_number": 500},
|
||||
@@ -2268,7 +2282,11 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
data_type=CustomField.FieldDataType.STRING,
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SimpleUploadedFile(
|
||||
"simple.pdf",
|
||||
SIMPLE_DIGITAL_PDF.read_bytes(),
|
||||
content_type="application/pdf",
|
||||
) as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{
|
||||
@@ -2323,7 +2341,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
w1.actions.add(action1)
|
||||
w1.save()
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{
|
||||
@@ -2364,7 +2382,11 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
data_type=CustomField.FieldDataType.INT,
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SimpleUploadedFile(
|
||||
"simple.pdf",
|
||||
SIMPLE_DIGITAL_PDF.read_bytes(),
|
||||
content_type="application/pdf",
|
||||
) as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{
|
||||
@@ -2413,7 +2435,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
]
|
||||
|
||||
for payload in error_payloads:
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
data = {"document": f, **payload}
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
@@ -2471,7 +2493,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
id=str(uuid.uuid4()),
|
||||
)
|
||||
|
||||
with (Path(__file__).parent / "samples" / "simple.pdf").open("rb") as f:
|
||||
with SIMPLE_DIGITAL_PDF.open("rb") as f:
|
||||
response = self.client.post(
|
||||
"/api/documents/post_document/",
|
||||
{"document": f, "from_webui": True},
|
||||
@@ -2510,14 +2532,8 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
archive_filename="archive.pdf",
|
||||
)
|
||||
|
||||
source_file: Path = (
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "thumbnails"
|
||||
/ "0000001.webp"
|
||||
)
|
||||
archive_file: Path = Path(__file__).parent / "samples" / "simple.pdf"
|
||||
source_file: Path = THUMBNAIL_WEBP
|
||||
archive_file: Path = SIMPLE_DIGITAL_PDF
|
||||
|
||||
shutil.copy(source_file, doc.source_path)
|
||||
shutil.copy(archive_file, doc.archive_path)
|
||||
@@ -2550,7 +2566,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
mime_type="application/pdf",
|
||||
)
|
||||
|
||||
shutil.copy(Path(__file__).parent / "samples" / "simple.pdf", doc.source_path)
|
||||
shutil.copy(SIMPLE_DIGITAL_PDF, doc.source_path)
|
||||
|
||||
response = self.client.get(f"/api/documents/{doc.pk}/metadata/")
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
@@ -4288,8 +4304,8 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
||||
filename="test2.pdf",
|
||||
)
|
||||
|
||||
archive_file = Path(__file__).parent / "samples" / "simple.pdf"
|
||||
source_file = Path(__file__).parent / "samples" / "simple.pdf"
|
||||
archive_file = SIMPLE_DIGITAL_PDF
|
||||
source_file = SIMPLE_DIGITAL_PDF
|
||||
|
||||
shutil.copy(archive_file, doc.archive_path)
|
||||
shutil.copy(source_file, doc2.source_path)
|
||||
|
||||
@@ -12,6 +12,9 @@ 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
|
||||
from paperless_testing.samples import MULTI_PAGE_DIGITAL_PDF
|
||||
from paperless_testing.samples import SIMPLE_DIGITAL_PDF
|
||||
from paperless_testing.samples import WITH_FORM_PDF
|
||||
|
||||
|
||||
class TestEmail(DirectoriesMixin, SampleDirMixin, APITestCase):
|
||||
@@ -42,15 +45,15 @@ class TestEmail(DirectoriesMixin, SampleDirMixin, APITestCase):
|
||||
|
||||
# Copy sample files to document paths (using different files to distinguish versions)
|
||||
shutil.copy(
|
||||
self.SAMPLE_DIR / "documents" / "originals" / "0000001.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
self.doc1.archive_path,
|
||||
)
|
||||
shutil.copy(
|
||||
self.SAMPLE_DIR / "documents" / "originals" / "0000002.pdf",
|
||||
MULTI_PAGE_DIGITAL_PDF,
|
||||
self.doc1.source_path,
|
||||
)
|
||||
shutil.copy(
|
||||
self.SAMPLE_DIR / "documents" / "originals" / "0000003.pdf",
|
||||
WITH_FORM_PDF,
|
||||
self.doc2.source_path,
|
||||
)
|
||||
|
||||
@@ -377,7 +380,7 @@ class TestEmail(DirectoriesMixin, SampleDirMixin, APITestCase):
|
||||
checksum="3",
|
||||
filename="test3.pdf",
|
||||
)
|
||||
shutil.copy(self.SAMPLE_DIR / "simple.pdf", doc3.source_path)
|
||||
shutil.copy(self.SIMPLE_PDF, doc3.source_path)
|
||||
|
||||
doc4 = Document.objects.create(
|
||||
title="test1",
|
||||
@@ -386,7 +389,7 @@ class TestEmail(DirectoriesMixin, SampleDirMixin, APITestCase):
|
||||
checksum="4",
|
||||
filename="test4.pdf",
|
||||
)
|
||||
shutil.copy(self.SAMPLE_DIR / "simple.pdf", doc4.source_path)
|
||||
shutil.copy(self.SIMPLE_PDF, doc4.source_path)
|
||||
|
||||
response = self.client.post(
|
||||
self.ENDPOINT,
|
||||
|
||||
@@ -1196,59 +1196,6 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase):
|
||||
self.assertIn(d3.id, result_ids)
|
||||
self.assertNotIn(d4.id, result_ids)
|
||||
|
||||
def test_search_more_like_version_uses_its_root(self) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
- A document similar in content to a root document, and one that is not
|
||||
- A version of the root document, which is never indexed
|
||||
WHEN:
|
||||
- API request for more like the version
|
||||
THEN:
|
||||
- The documents similar to the root are returned, not the version
|
||||
"""
|
||||
indexed = {}
|
||||
for name, title, content, day in (
|
||||
("root", "bank statement 1", "things i paid for in august", (2019, 3, 4)),
|
||||
(
|
||||
"similar",
|
||||
"bank statement 3",
|
||||
"things i paid for in september",
|
||||
(2020, 7, 9),
|
||||
),
|
||||
(
|
||||
"other",
|
||||
"Quarterly Report",
|
||||
"quarterly revenue profit margin",
|
||||
(2021, 11, 30),
|
||||
),
|
||||
):
|
||||
with time_machine.travel(
|
||||
timezone.make_aware(datetime.datetime(*day)),
|
||||
tick=False,
|
||||
):
|
||||
indexed[name] = DocumentFactory(
|
||||
title=title,
|
||||
content=content,
|
||||
created=datetime.date(*day),
|
||||
added=timezone.make_aware(datetime.datetime(*day)),
|
||||
)
|
||||
version = DocumentFactory(
|
||||
root_document=indexed["root"],
|
||||
version_index=1,
|
||||
content="things i paid for in august",
|
||||
)
|
||||
backend = get_backend()
|
||||
for document in indexed.values():
|
||||
backend.add_or_update(document)
|
||||
|
||||
response = self.client.get(f"/api/documents/?more_like_id={version.id}")
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
||||
result_ids = [r["id"] for r in response.data["results"]]
|
||||
self.assertIn(indexed["similar"].id, result_ids)
|
||||
self.assertNotIn(indexed["other"].id, result_ids)
|
||||
self.assertNotIn(version.id, result_ids)
|
||||
|
||||
def test_more_like_requires_id_of_existing_document(self) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
@@ -1314,39 +1261,6 @@ class TestDocumentSearchApi(DirectoriesMixin, APITestCase):
|
||||
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
|
||||
self.assertEqual(response.content, b"Insufficient permissions.")
|
||||
|
||||
def test_search_more_like_version_requires_view_permission_on_its_root(
|
||||
self,
|
||||
) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
- Another user's private root document with an unowned version
|
||||
WHEN:
|
||||
- A user without access requests more-like-this for the version
|
||||
THEN:
|
||||
- The request is rejected, the version's missing owner grants nothing
|
||||
"""
|
||||
owner = UserFactory(username="owner")
|
||||
attacker = UserFactory(username="attacker")
|
||||
grant_global(attacker, "view_document")
|
||||
private_root = DocumentFactory(
|
||||
title="private bank statement",
|
||||
content="quarterly treasury bank statement wire transfer",
|
||||
owner=owner,
|
||||
)
|
||||
version = DocumentFactory(
|
||||
root_document=private_root,
|
||||
version_index=1,
|
||||
owner=None,
|
||||
)
|
||||
get_backend().add_or_update(private_root)
|
||||
|
||||
self.client.force_authenticate(user=attacker)
|
||||
|
||||
response = self.client.get(f"/api/documents/?more_like_id={version.id}")
|
||||
|
||||
self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
|
||||
self.assertEqual(response.content, b"Insufficient permissions.")
|
||||
|
||||
def test_search_filtering(self) -> None:
|
||||
t = Tag.objects.create(name="tag")
|
||||
t2 = Tag.objects.create(name="tag2")
|
||||
|
||||
@@ -167,7 +167,7 @@ class TestBarcode(
|
||||
- No barcodes detected
|
||||
- No pages to split on
|
||||
"""
|
||||
test_file = self.SAMPLE_DIR / "simple.pdf"
|
||||
test_file = self.SIMPLE_PDF
|
||||
with self.get_reader(test_file) as reader:
|
||||
reader.detect()
|
||||
separator_page_numbers = reader.get_separation_pages()
|
||||
@@ -459,7 +459,7 @@ class TestBarcode(
|
||||
THEN:
|
||||
- Nothing happens
|
||||
"""
|
||||
test_file = self.SAMPLE_DIR / "simple.pdf"
|
||||
test_file = self.SIMPLE_PDF
|
||||
|
||||
with self.get_reader(test_file) as reader:
|
||||
try:
|
||||
|
||||
@@ -27,6 +27,9 @@ from documents.permissions import set_permissions_for_objects
|
||||
from paperless_testing.dirs import DirectoriesMixin
|
||||
from paperless_testing.factories import DocumentFactory
|
||||
from paperless_testing.permissions import grant_object
|
||||
from paperless_testing.samples import MULTI_PAGE_DIGITAL_PDF
|
||||
from paperless_testing.samples import SIMPLE_DIGITAL_PDF
|
||||
from paperless_testing.samples import WITH_FORM_PDF
|
||||
|
||||
|
||||
class TestBulkEdit(DirectoriesMixin, TestCase):
|
||||
@@ -704,47 +707,27 @@ class TestPDFActions(DirectoriesMixin, TestCase):
|
||||
super().setUp()
|
||||
sample1 = self.dirs.scratch_dir / "sample.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000001.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
sample1,
|
||||
)
|
||||
sample1_archive = self.dirs.archive_dir / "sample_archive.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000001.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
sample1_archive,
|
||||
)
|
||||
sample2 = self.dirs.scratch_dir / "sample2.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000002.pdf",
|
||||
MULTI_PAGE_DIGITAL_PDF,
|
||||
sample2,
|
||||
)
|
||||
sample2_archive = self.dirs.archive_dir / "sample2_archive.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000002.pdf",
|
||||
MULTI_PAGE_DIGITAL_PDF,
|
||||
sample2_archive,
|
||||
)
|
||||
sample3 = self.dirs.scratch_dir / "sample3.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000003.pdf",
|
||||
WITH_FORM_PDF,
|
||||
sample3,
|
||||
)
|
||||
self.doc1 = Document.objects.create(
|
||||
@@ -778,11 +761,7 @@ class TestPDFActions(DirectoriesMixin, TestCase):
|
||||
)
|
||||
img_doc_archive = self.dirs.archive_dir / "sample_image.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000001.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
img_doc_archive,
|
||||
)
|
||||
self.img_doc = Document.objects.create(
|
||||
|
||||
@@ -36,6 +36,9 @@ 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
|
||||
from paperless_testing.samples import MULTI_PAGE_DIGITAL_PDF
|
||||
from paperless_testing.samples import MULTI_PAGE_IMAGES_PDF
|
||||
from paperless_testing.samples import SIMPLE_DIGITAL_PDF
|
||||
|
||||
|
||||
class _BaseNewStyleParser:
|
||||
@@ -112,9 +115,7 @@ class _BaseNewStyleParser:
|
||||
|
||||
|
||||
class DummyParser(_BaseNewStyleParser):
|
||||
_ARCHIVE_SRC = (
|
||||
Path(__file__).parent / "samples" / "documents" / "archive" / "0000001.pdf"
|
||||
)
|
||||
_ARCHIVE_SRC = MULTI_PAGE_IMAGES_PDF
|
||||
|
||||
def parse(self, document_path, mime_type, *, produce_archive: bool = True) -> None:
|
||||
self._text = "The Text"
|
||||
@@ -200,33 +201,19 @@ class TestConsumer(
|
||||
self.addCleanup(patcher.stop)
|
||||
|
||||
def get_test_file(self):
|
||||
src = (
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000001.pdf"
|
||||
)
|
||||
src = SIMPLE_DIGITAL_PDF
|
||||
dst = self.dirs.scratch_dir / "sample.pdf"
|
||||
shutil.copy(src, dst)
|
||||
return dst
|
||||
|
||||
def get_test_file2(self):
|
||||
src = (
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000002.pdf"
|
||||
)
|
||||
src = MULTI_PAGE_DIGITAL_PDF
|
||||
dst = self.dirs.scratch_dir / "sample2.pdf"
|
||||
shutil.copy(src, dst)
|
||||
return dst
|
||||
|
||||
def get_test_archive_file(self):
|
||||
src = (
|
||||
Path(__file__).parent / "samples" / "documents" / "archive" / "0000001.pdf"
|
||||
)
|
||||
src = MULTI_PAGE_IMAGES_PDF
|
||||
dst = self.dirs.scratch_dir / "sample_archive.pdf"
|
||||
shutil.copy(src, dst)
|
||||
return dst
|
||||
@@ -1062,7 +1049,7 @@ class TestConsumer(
|
||||
@mock.patch("documents.consumer.get_parser_registry")
|
||||
def test_similar_filenames(self, m) -> None:
|
||||
shutil.copy(
|
||||
Path(__file__).parent / "samples" / "simple.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
settings.CONSUMPTION_DIR / "simple.pdf",
|
||||
)
|
||||
shutil.copy(
|
||||
@@ -1603,13 +1590,7 @@ class TestConsumerRemoteOCR(
|
||||
self.addCleanup(patcher.stop)
|
||||
|
||||
def _consume(self, *, overrides: DocumentMetadataOverrides | None = None) -> bool:
|
||||
src = (
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000001.pdf"
|
||||
)
|
||||
src = SIMPLE_DIGITAL_PDF
|
||||
dst = self.dirs.scratch_dir / "sample.pdf"
|
||||
shutil.copy(src, dst)
|
||||
|
||||
|
||||
@@ -37,12 +37,15 @@ class TestDoubleSided(
|
||||
self.double_sided_dir.mkdir()
|
||||
self.staging_file = self.dirs.scratch_dir / STAGING_FILE_NAME
|
||||
|
||||
def _sample(self, name: str) -> Path:
|
||||
return self.SIMPLE_PDF if name == "simple.pdf" else self.SAMPLE_DIR / name
|
||||
|
||||
def consume_file(self, srcname, dstname: str | Path = "foo.pdf"):
|
||||
"""
|
||||
Starts the consume process and also ensures the
|
||||
destination file does not exist afterwards
|
||||
"""
|
||||
src = self.SAMPLE_DIR / srcname
|
||||
src = self._sample(srcname)
|
||||
dst = self.double_sided_dir / dstname
|
||||
dst.parent.mkdir(parents=True, exist_ok=True)
|
||||
shutil.copy(src, dst)
|
||||
@@ -57,7 +60,7 @@ class TestDoubleSided(
|
||||
return msg
|
||||
|
||||
def create_staging_file(self, src="double-sided-odd.pdf", datetime=None) -> None:
|
||||
shutil.copy(self.SAMPLE_DIR / src, self.staging_file)
|
||||
shutil.copy(self._sample(src), self.staging_file)
|
||||
if datetime is None:
|
||||
datetime = dt.datetime.now()
|
||||
os.utime(str(self.staging_file), (datetime.timestamp(),) * 2)
|
||||
|
||||
@@ -22,9 +22,9 @@ from documents.models import Document
|
||||
from documents.tasks import update_document_content_maybe_archive_file
|
||||
from paperless_testing.assertions import FileSystemAssertsMixin
|
||||
from paperless_testing.dirs import DirectoriesMixin
|
||||
from paperless_testing.factories import DocumentFactory
|
||||
from paperless_testing.samples import SIMPLE_DIGITAL_PDF
|
||||
|
||||
sample_file: Path = Path(__file__).parent / "samples" / "simple.pdf"
|
||||
sample_file: Path = SIMPLE_DIGITAL_PDF
|
||||
|
||||
|
||||
@pytest.mark.management
|
||||
@@ -117,27 +117,6 @@ class TestMakeIndex:
|
||||
call_command("document_index", "reindex", skip_checks=True)
|
||||
mock_get_backend.return_value.rebuild.assert_called_once()
|
||||
|
||||
def test_reindex_skips_versions(self, mocker: MockerFixture) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
- A root document with a version
|
||||
WHEN:
|
||||
- The reindex command runs
|
||||
THEN:
|
||||
- Only the root document is handed to the rebuild, since a version
|
||||
is indexed as its root
|
||||
"""
|
||||
root = DocumentFactory()
|
||||
DocumentFactory(root_document=root, version_index=1)
|
||||
mock_get_backend = mocker.patch(
|
||||
"documents.management.commands.document_index.get_backend",
|
||||
)
|
||||
|
||||
call_command("document_index", "reindex", skip_checks=True)
|
||||
|
||||
documents = mock_get_backend.return_value.rebuild.call_args.args[0]
|
||||
assert list(documents.values_list("pk", flat=True)) == [root.pk]
|
||||
|
||||
def test_optimize(self) -> None:
|
||||
"""Optimize command must execute without error (Tantivy handles optimization automatically)."""
|
||||
call_command("document_index", "optimize", skip_checks=True)
|
||||
|
||||
@@ -53,6 +53,7 @@ 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
|
||||
from paperless_testing.samples import install_document_samples
|
||||
|
||||
|
||||
@pytest.mark.management
|
||||
@@ -198,10 +199,7 @@ class TestExportImport(
|
||||
|
||||
def test_exporter(self, *, use_filename_format=False) -> None:
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
num_permission_objects = Permission.objects.count()
|
||||
|
||||
@@ -305,10 +303,7 @@ class TestExportImport(
|
||||
|
||||
def test_exporter_with_filename_format(self) -> None:
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
with override_settings(
|
||||
FILENAME_FORMAT="{created_year}/{correspondent}/{title}",
|
||||
@@ -317,10 +312,7 @@ class TestExportImport(
|
||||
|
||||
def test_exporter_includes_share_links_and_bundles(self) -> None:
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
share_link = ShareLink.objects.create(
|
||||
slug="share-link-slug",
|
||||
@@ -419,10 +411,7 @@ class TestExportImport(
|
||||
|
||||
def test_update_export_changed_time(self) -> None:
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
self._do_export()
|
||||
self.assertIsFile(self.target / "manifest.json")
|
||||
@@ -458,10 +447,7 @@ class TestExportImport(
|
||||
|
||||
def test_update_export_changed_checksum(self) -> None:
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
self._do_export()
|
||||
|
||||
@@ -488,10 +474,7 @@ class TestExportImport(
|
||||
|
||||
def test_update_export_deleted_document(self) -> None:
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
manifest = self._do_export()
|
||||
|
||||
@@ -523,10 +506,7 @@ class TestExportImport(
|
||||
@override_settings(FILENAME_FORMAT="{title}/{correspondent}")
|
||||
def test_update_export_changed_location(self) -> None:
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
self._do_export(use_filename_format=True)
|
||||
self.assertIsFile(self.target / "wow1" / "c.pdf")
|
||||
@@ -568,10 +548,7 @@ class TestExportImport(
|
||||
- Zipfile contains exported files
|
||||
"""
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
args = ["document_exporter", self.target, "--zip"]
|
||||
|
||||
@@ -600,10 +577,7 @@ class TestExportImport(
|
||||
- Zipfile contains exported files
|
||||
"""
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
args = ["document_exporter", self.target, "--zip", "--use-filename-format"]
|
||||
|
||||
@@ -639,10 +613,7 @@ class TestExportImport(
|
||||
- The existing file and directory in target are removed
|
||||
"""
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
# Create stuff in target directory
|
||||
existing_file = self.target / "test.txt"
|
||||
@@ -738,10 +709,7 @@ class TestExportImport(
|
||||
- Documents can be imported again
|
||||
"""
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
manifest = self._do_export()
|
||||
has_archive = False
|
||||
@@ -784,10 +752,7 @@ class TestExportImport(
|
||||
- Documents can be imported again
|
||||
"""
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
manifest = self._do_export()
|
||||
has_thumbnail = False
|
||||
@@ -832,10 +797,7 @@ class TestExportImport(
|
||||
- Documents can be imported again
|
||||
"""
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
manifest = self._do_export(split_manifest=True)
|
||||
has_document = False
|
||||
@@ -860,10 +822,7 @@ class TestExportImport(
|
||||
|
||||
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",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
DocumentBarcodeFactory(document=self.d1, value="https://example.com")
|
||||
DocumentBarcodeFactory(document=self.d2, page=2, value="DE8937")
|
||||
|
||||
@@ -899,10 +858,7 @@ class TestExportImport(
|
||||
- Documents can be imported again
|
||||
"""
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
self._do_export(use_folder_prefix=True)
|
||||
|
||||
@@ -929,10 +885,7 @@ class TestExportImport(
|
||||
- Documents can be imported again
|
||||
"""
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
self._do_export(use_folder_prefix=True, split_manifest=True)
|
||||
|
||||
@@ -959,10 +912,7 @@ class TestExportImport(
|
||||
"""
|
||||
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
num_content_type_objects = ContentType.objects.count()
|
||||
num_permission_objects = Permission.objects.count()
|
||||
@@ -999,10 +949,7 @@ class TestExportImport(
|
||||
|
||||
def test_exporter_with_auditlog_disabled(self) -> None:
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
with override_settings(
|
||||
AUDIT_LOG_ENABLED=False,
|
||||
@@ -1022,10 +969,7 @@ class TestExportImport(
|
||||
survive the round-trip with deleted_at preserved
|
||||
"""
|
||||
shutil.rmtree(Path(self.dirs.media_dir) / "documents")
|
||||
shutil.copytree(
|
||||
Path(__file__).parent / "samples" / "documents",
|
||||
Path(self.dirs.media_dir) / "documents",
|
||||
)
|
||||
install_document_samples(Path(self.dirs.media_dir) / "documents")
|
||||
|
||||
# d1 has self.note and self.cfi1 attached via setUp
|
||||
self.d1.delete()
|
||||
@@ -1069,10 +1013,7 @@ class TestExportImport(
|
||||
"""
|
||||
|
||||
shutil.rmtree(self.dirs.media_dir / "documents")
|
||||
shutil.copytree(
|
||||
self.SAMPLE_DIR / "documents",
|
||||
self.dirs.media_dir / "documents",
|
||||
)
|
||||
install_document_samples(self.dirs.media_dir / "documents")
|
||||
|
||||
_ = self._do_export(data_only=True)
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ from documents.models import Document
|
||||
from documents.parsers import get_default_thumbnail
|
||||
from paperless_testing.assertions import FileSystemAssertsMixin
|
||||
from paperless_testing.dirs import DirectoriesMixin
|
||||
from paperless_testing.samples import SIMPLE_DIGITAL_PDF
|
||||
|
||||
|
||||
@pytest.mark.management
|
||||
@@ -24,7 +25,7 @@ class TestMakeThumbnails(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
|
||||
filename="test.pdf",
|
||||
)
|
||||
shutil.copy(
|
||||
Path(__file__).parent / "samples" / "simple.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
self.d1.source_path,
|
||||
)
|
||||
|
||||
@@ -36,7 +37,7 @@ class TestMakeThumbnails(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
|
||||
filename="test2.pdf",
|
||||
)
|
||||
shutil.copy(
|
||||
Path(__file__).parent / "samples" / "simple.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
self.d2.source_path,
|
||||
)
|
||||
|
||||
|
||||
@@ -18,7 +18,6 @@ from documents.models import Correspondent
|
||||
from documents.models import DocumentType
|
||||
from documents.models import StoragePath
|
||||
from documents.models import Tag
|
||||
from documents.permissions import has_perms_owner_aware
|
||||
from documents.permissions import permitted_document_ids
|
||||
from documents.permissions import permitted_object_ids
|
||||
from documents.permissions import restrict_queryset_to_visible
|
||||
@@ -471,92 +470,6 @@ class TestPermittedDocumentIdsVersions:
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
class TestHasPermsOwnerAwareVersions:
|
||||
"""
|
||||
The single-object check agrees with permitted_document_ids: a version is
|
||||
authorized by its root document.
|
||||
"""
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("root_owner", "version_owner", "expected"),
|
||||
[
|
||||
pytest.param(
|
||||
"other",
|
||||
"nobody",
|
||||
False,
|
||||
id="unowned-version-of-private-root",
|
||||
),
|
||||
pytest.param("other", "user", False, id="own-version-of-private-root"),
|
||||
pytest.param("user", "other", True, id="foreign-version-of-own-root"),
|
||||
pytest.param("nobody", "other", True, id="private-version-of-unowned-root"),
|
||||
],
|
||||
)
|
||||
def test_version_follows_root_owner(
|
||||
self,
|
||||
root_owner: str,
|
||||
version_owner: str,
|
||||
*,
|
||||
expected: bool,
|
||||
) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
- A root document and a version with differing owners
|
||||
WHEN:
|
||||
- The single-object check runs for the version
|
||||
THEN:
|
||||
- The version is allowed exactly when its root is
|
||||
"""
|
||||
user = UserFactory()
|
||||
owners = {"user": user, "other": UserFactory(), "nobody": None}
|
||||
root = DocumentFactory(owner=owners[root_owner])
|
||||
version = DocumentFactory(root_document=root, owner=owners[version_owner])
|
||||
|
||||
assert has_perms_owner_aware(user, "view_document", version) is expected
|
||||
assert has_perms_owner_aware(user, "view_document", root) is expected
|
||||
|
||||
def test_grant_on_root_applies_and_grant_on_version_does_not(self) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
- A private root with a version, and a second private root with a version
|
||||
- The user may change only the first root, and was granted the second
|
||||
root's version directly
|
||||
WHEN:
|
||||
- The single-object check runs for each version
|
||||
THEN:
|
||||
- Only the first root's version is allowed
|
||||
"""
|
||||
user = UserFactory()
|
||||
shared_root = DocumentFactory(owner=UserFactory())
|
||||
shared_version = DocumentFactory(root_document=shared_root, owner=UserFactory())
|
||||
private_root = DocumentFactory(owner=UserFactory())
|
||||
private_version = DocumentFactory(
|
||||
root_document=private_root,
|
||||
owner=UserFactory(),
|
||||
)
|
||||
grant_object(user, shared_root, "change_document")
|
||||
grant_object(user, private_version, "change_document")
|
||||
|
||||
assert has_perms_owner_aware(user, "change_document", shared_version)
|
||||
assert not has_perms_owner_aware(user, "change_document", private_version)
|
||||
|
||||
def test_other_models_use_their_own_owner(self) -> None:
|
||||
"""
|
||||
GIVEN:
|
||||
- A tag owned by someone else, and one owned by the user
|
||||
WHEN:
|
||||
- The single-object check runs for each
|
||||
THEN:
|
||||
- Only the user's own tag is allowed without a grant
|
||||
"""
|
||||
user = UserFactory()
|
||||
mine = TagFactory(owner=user)
|
||||
theirs = TagFactory(owner=UserFactory())
|
||||
|
||||
assert has_perms_owner_aware(user, "view_tag", mine)
|
||||
assert not has_perms_owner_aware(user, "view_tag", theirs)
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
class TestAiChatAllDocumentsPermissionBoundary:
|
||||
"""
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
import hashlib
|
||||
from collections import defaultdict
|
||||
from pathlib import Path
|
||||
|
||||
from paperless_testing.samples import SHARED_SAMPLES_DIR
|
||||
from paperless_testing.samples import SIMPLE_DIGITAL_PDF
|
||||
from paperless_testing.samples import install_document_samples
|
||||
|
||||
EXPECTED_MEDIA_FILES = [
|
||||
"originals/0000001.pdf",
|
||||
"originals/0000002.pdf",
|
||||
"originals/0000003.pdf",
|
||||
"originals/0000004.pdf",
|
||||
"originals/0000005.pdf",
|
||||
"originals/0000006.pdf",
|
||||
"archive/0000001.pdf",
|
||||
"thumbnails/0000001.webp",
|
||||
"thumbnails/0000002.webp",
|
||||
"thumbnails/0000003.webp",
|
||||
"thumbnails/0000004.webp",
|
||||
]
|
||||
|
||||
|
||||
def _sha(path: Path) -> str:
|
||||
return hashlib.sha256(path.read_bytes()).hexdigest()
|
||||
|
||||
|
||||
def test_install_recreates_every_historical_opaque_name(tmp_path: Path) -> None:
|
||||
install_document_samples(tmp_path)
|
||||
for relpath in EXPECTED_MEDIA_FILES:
|
||||
assert (tmp_path / relpath).is_file(), relpath
|
||||
|
||||
|
||||
def test_install_uses_the_shared_bytes(tmp_path: Path) -> None:
|
||||
install_document_samples(tmp_path)
|
||||
assert _sha(tmp_path / "originals" / "0000001.pdf") == _sha(SIMPLE_DIGITAL_PDF)
|
||||
|
||||
|
||||
APP_SAMPLE_TREES = [
|
||||
Path(__file__).parent / "samples",
|
||||
Path(__file__).parents[2] / "paperless" / "tests" / "samples",
|
||||
SHARED_SAMPLES_DIR,
|
||||
]
|
||||
|
||||
|
||||
def test_no_two_sample_files_have_identical_bytes() -> None:
|
||||
by_hash: dict[str, list[Path]] = defaultdict(list)
|
||||
for tree in APP_SAMPLE_TREES:
|
||||
assert tree.is_dir(), f"Sample tree does not exist: {tree}"
|
||||
for path in tree.rglob("*"):
|
||||
# Skip empty placeholders, which would all hash identically
|
||||
if path.is_file() and path.stat().st_size > 0:
|
||||
by_hash[_sha(path)].append(path)
|
||||
assert by_hash, "No sample files were found to compare"
|
||||
duplicates = {h: ps for h, ps in by_hash.items() if len(ps) > 1}
|
||||
lines = [" " + ", ".join(str(p) for p in ps) for ps in duplicates.values()]
|
||||
message = (
|
||||
"Duplicate sample files, move one to paperless_testing/sample_files:\n"
|
||||
+ "\n".join(lines)
|
||||
)
|
||||
assert not duplicates, message
|
||||
@@ -21,6 +21,7 @@ from documents.tests.helpers import dummy_preprocess
|
||||
from paperless_testing.assertions import FileSystemAssertsMixin
|
||||
from paperless_testing.dirs import DirectoriesMixin
|
||||
from paperless_testing.factories import DocumentFactory
|
||||
from paperless_testing.samples import SIMPLE_DIGITAL_PDF
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
@@ -229,20 +230,12 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
|
||||
"""
|
||||
sample1 = self.dirs.scratch_dir / "sample.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000001.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
sample1,
|
||||
)
|
||||
sample1_archive = self.dirs.archive_dir / "sample_archive.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000001.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
sample1_archive,
|
||||
)
|
||||
doc = Document.objects.create(
|
||||
@@ -270,11 +263,7 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
|
||||
"""
|
||||
sample1 = self.dirs.scratch_dir / "sample.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000001.pdf",
|
||||
SIMPLE_DIGITAL_PDF,
|
||||
sample1,
|
||||
)
|
||||
doc = Document.objects.create(
|
||||
@@ -290,14 +279,7 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
|
||||
|
||||
def _create_root_with_version(self) -> tuple[Document, Document]:
|
||||
sample1 = self.dirs.scratch_dir / "sample.pdf"
|
||||
shutil.copy(
|
||||
Path(__file__).parent
|
||||
/ "samples"
|
||||
/ "documents"
|
||||
/ "originals"
|
||||
/ "0000001.pdf",
|
||||
sample1,
|
||||
)
|
||||
shutil.copy(SIMPLE_DIGITAL_PDF, sample1)
|
||||
root = DocumentFactory(content="root content", mime_type="application/pdf")
|
||||
version = DocumentFactory(
|
||||
content="my document",
|
||||
@@ -310,7 +292,7 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
|
||||
|
||||
@mock.patch("documents.tasks.clear_document_caches")
|
||||
@mock.patch("documents.search.get_backend")
|
||||
def test_update_content_version_clears_caches_for_root(
|
||||
def test_update_content_version_indexes_root(
|
||||
self,
|
||||
mock_get_backend: mock.Mock,
|
||||
mock_clear_caches: mock.Mock,
|
||||
@@ -321,8 +303,8 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
|
||||
WHEN:
|
||||
- Update content task is called for the version
|
||||
THEN:
|
||||
- The version's content is updated, not the root's
|
||||
- The document is indexed
|
||||
- The version's content is updated
|
||||
- The root document is indexed rather than the version
|
||||
- Caches are cleared for both
|
||||
"""
|
||||
root, version = self._create_root_with_version()
|
||||
@@ -334,7 +316,8 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
|
||||
"my document",
|
||||
)
|
||||
self.assertEqual(Document.objects.get(pk=root.pk).content, "root content")
|
||||
mock_get_backend.return_value.add_or_update.assert_called_once()
|
||||
indexed = mock_get_backend.return_value.add_or_update.call_args.args[0]
|
||||
self.assertEqual(indexed.pk, root.pk)
|
||||
mock_clear_caches.assert_has_calls(
|
||||
[mock.call(version.pk), mock.call(root.pk)],
|
||||
)
|
||||
@@ -342,7 +325,7 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
|
||||
@override_settings(AI_ENABLED=True, LLM_EMBEDDING_BACKEND="huggingface")
|
||||
@mock.patch("documents.tasks.llm_index_add_or_update_document")
|
||||
@mock.patch("documents.search.get_backend")
|
||||
def test_update_content_version_updates_llm_index(
|
||||
def test_update_content_version_updates_llm_index_for_root(
|
||||
self,
|
||||
mock_get_backend: mock.Mock,
|
||||
mock_llm_index: mock.Mock,
|
||||
@@ -354,13 +337,14 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
|
||||
WHEN:
|
||||
- Update content task is called for the version
|
||||
THEN:
|
||||
- The LLM index is updated
|
||||
- The LLM index is updated for the root document, not the version
|
||||
"""
|
||||
_, version = self._create_root_with_version()
|
||||
root, version = self._create_root_with_version()
|
||||
|
||||
tasks.update_document_content_maybe_archive_file(version.pk)
|
||||
|
||||
mock_llm_index.assert_called_once()
|
||||
self.assertEqual(mock_llm_index.call_args.args[0].pk, root.pk)
|
||||
|
||||
|
||||
class TestUpdateContentRemoteOCR(DirectoriesMixin, TestCase):
|
||||
|
||||
@@ -178,7 +178,7 @@ class TestWorkflows(
|
||||
self.assertEqual(action.__str__(), "WorkflowAction 1")
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -290,7 +290,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -409,7 +409,7 @@ class TestWorkflows(
|
||||
w2.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -478,7 +478,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -531,7 +531,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -608,7 +608,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -687,7 +687,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -765,7 +765,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -876,7 +876,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -928,7 +928,7 @@ class TestWorkflows(
|
||||
generated = generate_unique_filename(doc)
|
||||
destination = (settings.ORIGINALS_DIR / generated).resolve()
|
||||
create_source_path_directory(destination)
|
||||
shutil.copy(self.SAMPLE_DIR / "simple.pdf", destination)
|
||||
shutil.copy(self.SIMPLE_PDF, destination)
|
||||
Document.objects.filter(pk=doc.pk).update(filename=generated.as_posix())
|
||||
doc.refresh_from_db()
|
||||
|
||||
@@ -2023,7 +2023,7 @@ class TestWorkflows(
|
||||
superuser = UserFactory(username="superuser", superuser=True)
|
||||
self.client.force_authenticate(user=superuser)
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
tasks.consume_file(
|
||||
@@ -3009,7 +3009,7 @@ class TestWorkflows(
|
||||
generated = generate_unique_filename(doc)
|
||||
destination = (settings.ORIGINALS_DIR / generated).resolve()
|
||||
create_source_path_directory(destination)
|
||||
shutil.copy(self.SAMPLE_DIR / "simple.pdf", destination)
|
||||
shutil.copy(self.SIMPLE_PDF, destination)
|
||||
Document.objects.filter(pk=doc.pk).update(filename=generated.as_posix())
|
||||
doc.refresh_from_db()
|
||||
doc.tags.set([self.t1, self.t2])
|
||||
@@ -3073,7 +3073,7 @@ class TestWorkflows(
|
||||
generated = generate_unique_filename(doc)
|
||||
destination = (settings.ORIGINALS_DIR / generated).resolve()
|
||||
create_source_path_directory(destination)
|
||||
shutil.copy(self.SAMPLE_DIR / "simple.pdf", destination)
|
||||
shutil.copy(self.SIMPLE_PDF, destination)
|
||||
Document.objects.filter(pk=doc.pk).update(filename=generated.as_posix())
|
||||
doc.refresh_from_db()
|
||||
doc.tags.set([self.t1])
|
||||
@@ -3222,7 +3222,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -3346,7 +3346,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -3496,7 +3496,7 @@ class TestWorkflows(
|
||||
workflow.actions.set([assignment_action, email_action])
|
||||
|
||||
temp_working_copy = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "working-copy.pdf",
|
||||
)
|
||||
|
||||
@@ -3596,7 +3596,7 @@ class TestWorkflows(
|
||||
|
||||
# move the file
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -3704,7 +3704,7 @@ class TestWorkflows(
|
||||
generated = generate_unique_filename(doc)
|
||||
destination = (settings.ORIGINALS_DIR / generated).resolve()
|
||||
create_source_path_directory(destination)
|
||||
shutil.copy(self.SAMPLE_DIR / "simple.pdf", destination)
|
||||
shutil.copy(self.SIMPLE_PDF, destination)
|
||||
Document.objects.filter(pk=doc.pk).update(filename=generated.as_posix())
|
||||
|
||||
run_workflows(WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED, doc)
|
||||
@@ -3915,7 +3915,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -4036,7 +4036,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -4387,7 +4387,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -4835,7 +4835,7 @@ class TestWorkflows(
|
||||
w.save()
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -5027,7 +5027,7 @@ class TestWorkflows(
|
||||
|
||||
# Create a test file to be consumed
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
test_file_path = Path(test_file)
|
||||
@@ -5091,7 +5091,7 @@ class TestWorkflows(
|
||||
|
||||
# Create a test file to be consumed
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple2.pdf",
|
||||
)
|
||||
test_file_path = Path(test_file)
|
||||
@@ -5529,7 +5529,7 @@ class TestDateWorkflowLocalization(
|
||||
)
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
tmp_path / "simple.pdf",
|
||||
)
|
||||
|
||||
@@ -5596,7 +5596,7 @@ class TestRemoteOCRWorkflowAction(DirectoriesMixin, SampleDirMixin, APITestCase)
|
||||
self._make_workflow(WorkflowTrigger.WorkflowTriggerType.CONSUMPTION)
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
overrides = DocumentMetadataOverrides()
|
||||
@@ -5814,7 +5814,7 @@ class TestApplyAISuggestionsWorkflowAction(
|
||||
)
|
||||
|
||||
test_file = shutil.copy(
|
||||
self.SAMPLE_DIR / "simple.pdf",
|
||||
self.SIMPLE_PDF,
|
||||
self.dirs.scratch_dir / "simple.pdf",
|
||||
)
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ from documents.data_models import ConsumableDocument
|
||||
from documents.data_models import DocumentMetadataOverrides
|
||||
from documents.data_models import DocumentSource
|
||||
from paperless_testing.fakes.progress import FakeProgressManager
|
||||
from paperless_testing.samples import SIMPLE_DIGITAL_PDF
|
||||
|
||||
|
||||
class ConsumeTaskMixin:
|
||||
@@ -53,6 +54,8 @@ class SampleDirMixin:
|
||||
|
||||
BARCODE_SAMPLE_DIR = SAMPLE_DIR / "barcodes"
|
||||
|
||||
SIMPLE_PDF = SIMPLE_DIGITAL_PDF
|
||||
|
||||
|
||||
class GetConsumerMixin:
|
||||
@contextmanager
|
||||
|
||||
@@ -17,26 +17,9 @@ from django.db.models.functions import RowNumber
|
||||
from documents.models import Document
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import Iterable
|
||||
|
||||
from rest_framework.request import Request
|
||||
|
||||
|
||||
def root_document_ids(ids: Iterable[int]) -> QuerySet[int]:
|
||||
"""
|
||||
The ids of the root documents of the given documents: a root stands for
|
||||
itself and a version for its root. Only the indexes' bookkeeping needs
|
||||
this, since they hold root documents only.
|
||||
"""
|
||||
return (
|
||||
Document.objects.filter(pk__in=ids)
|
||||
.annotate(root_id=Coalesce("root_document_id", "id"))
|
||||
.order_by()
|
||||
.values_list("root_id", flat=True)
|
||||
.distinct()
|
||||
)
|
||||
|
||||
|
||||
def versions_newest_first(documents: QuerySet[Document]) -> QuerySet[Document]:
|
||||
"""
|
||||
Sorts versions so the newest one comes first using version_index and not on id,
|
||||
|
||||
+28
-14
@@ -329,10 +329,9 @@ def _get_tantivy_query_and_mode(params):
|
||||
def _get_more_like_id(query_params: dict[str, Any], user: User | None) -> int:
|
||||
try:
|
||||
more_like_doc_id = int(query_params["more_like_id"])
|
||||
more_like_doc = Document.objects.select_related(
|
||||
"owner",
|
||||
"root_document__owner",
|
||||
).get(pk=more_like_doc_id)
|
||||
more_like_doc = Document.objects.select_related("owner").get(
|
||||
pk=more_like_doc_id,
|
||||
)
|
||||
except (TypeError, ValueError, Document.DoesNotExist):
|
||||
raise PermissionDenied(_("Invalid more_like_id"))
|
||||
|
||||
@@ -343,8 +342,7 @@ def _get_more_like_id(query_params: dict[str, Any], user: User | None) -> int:
|
||||
):
|
||||
raise PermissionDenied(_("Insufficient permissions."))
|
||||
|
||||
# Only root documents are indexed, a version stands for its root
|
||||
return more_like_doc.root_document_id or more_like_doc.pk
|
||||
return more_like_doc_id
|
||||
|
||||
|
||||
class SearchParams(NamedTuple):
|
||||
@@ -1561,7 +1559,7 @@ class DocumentViewSet(
|
||||
if request.user is not None and not has_perms_owner_aware(
|
||||
request.user,
|
||||
"change_document",
|
||||
doc,
|
||||
get_root_document(doc),
|
||||
):
|
||||
return HttpResponseForbidden("Insufficient permissions")
|
||||
|
||||
@@ -1624,7 +1622,7 @@ class DocumentViewSet(
|
||||
if request.user is not None and not has_perms_owner_aware(
|
||||
request.user,
|
||||
"change_document",
|
||||
doc,
|
||||
get_root_document(doc),
|
||||
):
|
||||
return HttpResponseForbidden("Insufficient permissions")
|
||||
|
||||
@@ -1877,7 +1875,7 @@ class DocumentViewSet(
|
||||
if currentUser is not None and not has_perms_owner_aware(
|
||||
currentUser,
|
||||
"view_document",
|
||||
doc,
|
||||
get_root_document(doc),
|
||||
):
|
||||
return HttpResponseForbidden("Insufficient permissions to view notes")
|
||||
except Document.DoesNotExist:
|
||||
@@ -1899,7 +1897,7 @@ class DocumentViewSet(
|
||||
if currentUser is not None and not has_perms_owner_aware(
|
||||
currentUser,
|
||||
"change_document",
|
||||
doc,
|
||||
get_root_document(doc),
|
||||
):
|
||||
return HttpResponseForbidden(
|
||||
"Insufficient permissions to create notes",
|
||||
@@ -1942,7 +1940,7 @@ class DocumentViewSet(
|
||||
if currentUser is not None and not has_perms_owner_aware(
|
||||
currentUser,
|
||||
"change_document",
|
||||
doc,
|
||||
get_root_document(doc),
|
||||
):
|
||||
return HttpResponseForbidden("Insufficient permissions to delete notes")
|
||||
|
||||
@@ -1992,7 +1990,7 @@ class DocumentViewSet(
|
||||
if currentUser is not None and not has_perms_owner_aware(
|
||||
currentUser,
|
||||
"change_document",
|
||||
doc,
|
||||
get_root_document(doc),
|
||||
):
|
||||
return HttpResponseForbidden(
|
||||
"Insufficient permissions to add share link",
|
||||
@@ -2453,7 +2451,7 @@ class ChatStreamingView(GenericAPIView[Any]):
|
||||
if not has_perms_owner_aware(
|
||||
request.user,
|
||||
"view_document",
|
||||
document,
|
||||
get_root_document(document),
|
||||
):
|
||||
return HttpResponseForbidden("Insufficient permissions")
|
||||
|
||||
@@ -5602,7 +5600,23 @@ class TrashView(ListModelMixin, PassUserMixin):
|
||||
|
||||
class _TrashPermittedObjectsFilter(PermittedObjectsFilter):
|
||||
include_granted = False
|
||||
parent_field = "root_document"
|
||||
|
||||
def filter_queryset(self, request, queryset, view):
|
||||
if request.user.is_superuser or not request.user.is_active:
|
||||
return super().filter_queryset(request, queryset, view)
|
||||
|
||||
# A version belongs to whoever owns its root
|
||||
def owned_or_unowned(prefix: str) -> Q:
|
||||
return Q(**{f"{prefix}owner": request.user}) | Q(
|
||||
**{f"{prefix}owner__isnull": True},
|
||||
)
|
||||
|
||||
return queryset.filter(
|
||||
(Q(root_document__isnull=True) & owned_or_unowned(""))
|
||||
| (
|
||||
Q(root_document__isnull=False) & owned_or_unowned("root_document__")
|
||||
),
|
||||
)
|
||||
|
||||
filter_backends = (_TrashPermittedObjectsFilter,)
|
||||
pagination_class = StandardPagination
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumente"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Waarde moet geldige JSON wees."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Ongeldige gepasmaakte veldnavraaguitdrukking"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Ongeldige uitdrukking lys. Moet nie leeg wees nie."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Ongeldige logiese uitdrukking {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr ""
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Ongeldige veranderlike bespeur."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Engels (VS)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arabies"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Belorussies"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Katalaans"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tsjeggies"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Deens"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Duits"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Engels (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spaans"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Fins"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Frans"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italiaans"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburgs"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Nederlands"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Pools"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugees (Brasilië)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugees"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Roemeens"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russies"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Sloweens"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serwies"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Sweeds"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turks"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Vereenvoudigde Sjinees"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "መዝገባት"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "የሚሰራው እሴት \"JSON\" መሆን አለበት"
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "ልክ ያልሆነ የተወሰነ የቦታ መጠይቅ አገላለጽ"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "ልክ ያልሆነ የመግለጫ ዝርዝር። ባዶ መሆን የለበትም።"
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "ልክ ያልሆነ የሎጂክ ኦፕሬተር {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "ከፍተኛው የጥያቄ ሁኔታዎች/መጠን ብዛት አልፏል።"
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} ይሄ ታዐማኒነት ያለው ልማድ አይደለም።"
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "ጥያቄን አይደግፍም expr {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "ከፍተኛው የጥገኝነት ጥልቀት አልፏል።"
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "ይህ ልማድ አልተገኘም"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr ""
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "المستندات"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "يجب أن تكون القيمة JSON."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "تعبير استعلام غير صالح للحقول المخصصة"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "قائمة عبارة خاطئة."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "تجاوز الحد الأقصى لعدد شروط الاستعلام."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} حقل مخصص غير صالح."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} لا يدعم تعبير الاستعلام {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "لم يتم العثور على حقل مخصص"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "اكتشاف متغير خاطئ."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,59 @@ msgstr "أنت على وشك استعمال حسابك في %(provider_name)s ل
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "كخطوة أخيرة، يرجى ملء النموذج التالي:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "إعدادات التطبيق paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "الإنجليزية (الولايات المتحدة)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "العربية"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "اللغة الأفريقانية"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "البيلاروسية"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "البلغارية"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "اللغة الكتالونية"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "التشيكية"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "الدانماركية"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "الألمانية"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "اليونانية"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "الإنجليزية (المملكة المتحدة)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "الإسبانية"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "الفنلندية"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "الفرنسية"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "المجرية"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "الإيطالية"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "اليابانية"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "اللوكسمبرجية"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "النرويجية"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "الهولندية"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "البولندية"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "البرتغالية (البرازيل)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "البرتغالية"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "الرومانية"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "الروسية"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "السلوفاكية"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "السلوفانية"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "الصربية"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "السويدية"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "التركية"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "الأوكرانية"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "الصينية المبسطة"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Дакументы"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr ""
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Выяўлена няправільная зменная."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Англійская (ЗША)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Беларуская"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Чэшская"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Дацкая"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Нямецкая"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Англійская (Вялікабрытанія)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Іспанская"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Французская"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Італьянская"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Люксембургская"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Нідэрландская"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Польская"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Партугальская (Бразілія)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Партугальская"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Румынская"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Руская"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Славенская"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Сербская"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Шведская"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Турэцкая"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Кітайская спрошчаная"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Документи"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Стойността трябва да е валидна JSON."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Невалидна заявка на персонализираното полето"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Списък с невалиден израз. Не може да е празно."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Невалиден логически оператор {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Надвишен е максимален брой за заявки."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} не е валидно персонализирано поле."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} не поддържа заявка expr {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Надвишена е максималната дълбочина на вмъкване."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Персонализирано поле не е намерено"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "стартиране на работните процеси"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Засечена е невалидна променлива."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,59 @@ msgstr "На път сте да използвате профила си в %(pr
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Като последна стъпка, моля, попълнете следната форма:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "настройки на софтуера"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Английски (САЩ)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Арабски"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Африканс"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Беларуски"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Български"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Каталунски"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Чешки"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Датски"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Немски"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Гръцки"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Английски (Великобритания)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Испански"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Финландски"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Френски"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Унгарски"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Италиански"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Японски"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Корейски"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Люксембургски"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Норвежки"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Холандски"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Полски"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Португалски (Бразилия)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Португалски"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Румънски"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Руски"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Словашки"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Словенски"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Сръбски"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Шведски"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Турски"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Украински"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Китайски опростен"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Китайски традиционен"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Documents "
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Valor ha de ser un JSON valid."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Expressió de camp de consulta invàlid"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Expressió de llista invàlida. No ha d'estar buida."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Invàlid operand lògic {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Condicions de consulta excedits."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} no és un camp personalitzat vàlid."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} no suporta expressió de consulta {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Màxima profunditat anidada excedida."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Camp personalitzat no trobat"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "flux corrents"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Permisos insuficients."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Variable detectada invàlida."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Duplicat d'identificadors de documents no permès."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Documents no trobats: %(ids)s"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Estàs a punt d'emprar el teu %(provider_name)s compte per a fer login."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Com a pas final, completa el següent formulari:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "No es pot analitzar l'URI {value}, falta l'esquema"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "No es pot analitzar l'URI {value}, falta la ubicació de xarxa o la ruta"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "L'esquema d'URI '{parts.scheme}' no està permès. Esquemes permesos: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "No s'ha pogut analitzar l'URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "Invalid more_like_id"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Configuració AI invàlida."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Paquet ja s'està processant."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "El paquet d'enllaç no està disponible."
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr "Estableix temps d'espera en segons"
|
||||
msgid "paperless application settings"
|
||||
msgstr "configuració de l'aplicació paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Anglès (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Àrab"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Africà"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Bielorús"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Búlgar"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Català"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Txec"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Danès"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Alemany"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Grec"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Anglès (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Espanyol"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persa"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finès"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Francès"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Hongarès"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesi"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italià"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japonès"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Coreà"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburguès"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Noruec"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Holandès"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polonès"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portuguès (Brasil)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portuguès"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Romanès"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Rus"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Eslovac"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Eslovè"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbi"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Suec"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turc"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ucranià"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamita"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Xinès Simplificat"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Xinès tradicional"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumenty"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Hodnota musí být platný JSON."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Neplatný výraz dotazu na vlastní pole"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Neplatný seznam výrazů. Nesmí být prázdný."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Neplatný logický operátor {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Překročen maximální počet podmínek dotazu."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} není platné vlastní pole."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} nepodporuje výraz dotazu {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Překročena maximální hloubka větvení."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Vlastní pole nebylo nalezeno"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "spuštění pracovních postupů"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: 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í."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Zjištěna neplatná proměnná."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,60 @@ msgstr "Chystáte se použít svůj účet %(provider_name)s k přihlášení."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Jako poslední krok vyplňte následující formulář:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Nelze analyzovat URI {value}, chybí schéma"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "Nelze analyzovat URI {value}, chybí síťové umístění nebo cesta"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "URI schéma '{parts.scheme}' není povoleno. Povolená schémata: {',\n"
|
||||
"'.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Nelze zpracovat URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2258,151 @@ msgstr "Nastaví časový limit LLM v sekundách"
|
||||
msgid "paperless application settings"
|
||||
msgstr "nastavení aplikace paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Angličtina (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arabština"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikánština"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Běloruština"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bulharština"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Katalánština"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Čeština"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dánština"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Němčina"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Řečtina"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Angličtina (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Španělština"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Perština"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finština"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Francouzština"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Maďarština"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonéština"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italština"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japonština"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Korejština"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Lucemburština"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norština"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Holandština"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polština"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugalština (Brazílie)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugalština"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumunština"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Ruština"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slovenština"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slovinština"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Srbština"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Švédština"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turečtina"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukrajinština"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamština"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Čínština (zjednodušená)"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Čínština (tradiční)"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumenter"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Værdien skal være gyldig JSON."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Ugyldigt tilpasset feltforespørgselsudtryk"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Ugyldig udtryksliste. Må ikke være tom."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Ugyldig logisk operatør {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Maksimalt antal forespørgselsbetingelser overskredet."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} er ikke et gyldigt tilpasset felt."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} understøtter ikke forespørgsel expr {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Maksimal indlejringsdybde overskredet."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Tilpasset felt ikke fundet"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "workflow-kørsler"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Ugyldig variabel fundet."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,59 @@ msgstr "En %(provider_name)s-konto er ved at blive brugt til indlogning."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Som sidste trin, udfyld venligst flg. formular:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "paperless-applikationsindstillinger"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Engelsk (USA)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Hviderussisk"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bulgarsk"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Katalansk"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tjekkisk"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dansk"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Tysk"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Græsk"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Engelsk (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spansk"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finsk"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Fransk"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Ungarsk"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italiensk"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japansk"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Koreansk"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburgsk"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norsk"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Hollandsk"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polsk"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugisisk (Brasilien)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugisisk"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Romansk"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russisk"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slovakisk"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slovensk"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbisk"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Svensk"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Tyrkisk"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukrainsk"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Kinesisk, forenklet"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Kinesisk, traditionelt"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumente"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Wert muss gültiges JSON sein."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Ungültiger benutzerdefinierter Feldabfrageausdruck"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Ungültige Ausdrucksliste. Darf nicht leer sein."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Ungültiger logischer Operator {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Maximale Anzahl an Abfragebedingungen überschritten."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} ist kein gültiges Zusatzfeld."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} unterstützt den Abfrageausdruck {expr!r} nicht."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Maximale Verschachtelungstiefe überschritten."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Benutzerdefiniertes Feld nicht gefunden"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "Arbeitsablauf wird ausgeführt"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Unzureichende Berechtigungen."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Ungültige Variable erkannt."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Doppelte Dokumentbezeichner sind nicht erlaubt."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Dokumente nicht gefunden: %(ids)s"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Sie sind dabei, Ihr %(provider_name)s-Konto zur Anmeldung zu verwenden."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Bitte füllen Sie zum Abschluss folgendes Formular aus:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "URI {value} kann nicht gelesen werden, fehlendes Schema"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "URI {value} kann nicht gelesen werden, Netzadresse oder Pfad fehlt"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "URI-Schema „{parts.scheme}“ ist nicht erlaubt. Erlaubte Schemata: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "URI {value} kann nicht gelesen werden"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "Ungültige more_like_id"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Ungültige KI-Konfiguration."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Paket wird bereits verarbeitet."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "Das Freigabelink-Paket ist nicht verfügbar."
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "Paperless-ngx-Anwendungseinstellungen"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Englisch (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arabisch"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Belarussisch"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bulgarisch"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Katalanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tschechisch"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dänisch"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Griechisch"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Englisch (UK)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persisch"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finnisch"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Französisch"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Ungarisch"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesisch"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italienisch"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Koreanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburgisch"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norwegisch"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Niederländisch"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polnisch"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugiesisch (Brasilien)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugiesisch"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumänisch"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russisch"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slowakisch"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slowenisch"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbisch"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Schwedisch"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Türkisch"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukrainisch"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamesisch"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Chinesisch (vereinfacht)"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Chinesisch (traditionell)"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumente"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Wert muss gültiges JSON sein."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Ungültiger Zusatzfeld-Abfrageausdruck"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Ungültige Ausdrucksliste. Darf nicht leer sein."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Ungültiger logischer Operator {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Maximale Anzahl an Abfragebedingungen überschritten."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} ist kein gültiges Zusatzfeld."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} unterstützt den Abfrageausdruck {expr!r} nicht."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Maximale Verschachtelungstiefe überschritten."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Zusatzfeld nicht gefunden"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "Arbeitsablauf wird ausgeführt"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Unzureichende Berechtigungen."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Ungültige Variable erkannt."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Doppelte Dokumentbezeichner sind nicht erlaubt."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Dokumente nicht gefunden: %(ids)s"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Sie sind dabei, Ihr %(provider_name)s-Konto zur Anmeldung zu verwenden."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Bitte füllen Sie zum Abschluss folgendes Formular aus:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "URI {value} kann nicht gelesen werden, fehlendes Schema"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "URI {value} kann nicht gelesen werden, Netzadresse oder Pfad fehlt"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "URI-Schema „{parts.scheme}“ ist nicht erlaubt. Erlaubte Schemata: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "URI {value} kann nicht gelesen werden"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "Ungültige more_like_id"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Ungültige KI-Konfiguration."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr "Zeitüberschreitung bei der KI-Backendanfrage."
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr "Das KI-Backend hat die Anfrage abgelehnt. Details in den Protokollen."
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Paket wird bereits verarbeitet."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "Das Freigabelink-Paket ist nicht verfügbar."
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr "Legt das LLM-Zeitlimit in Sekunden fest"
|
||||
msgid "paperless application settings"
|
||||
msgstr "Paperless-ngx-Anwendungseinstellungen"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Englisch (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arabisch"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Belarussisch"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bulgarisch"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Katalanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tschechisch"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dänisch"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Griechisch"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Englisch (UK)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persisch"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finnisch"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Französisch"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Ungarisch"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesisch"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italienisch"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Koreanisch"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburgisch"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norwegisch"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Niederländisch"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polnisch"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugiesisch (Brasilien)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugiesisch"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumänisch"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russisch"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slowakisch"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slowenisch"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbisch"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Schwedisch"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Türkisch"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukrainisch"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamesisch"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Chinesisch (vereinfacht)"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Chinesisch (traditionell)"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Έγγραφα"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Η τιμή πρέπει να είναι σε έγκυρη μορφή JSON."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Μη έγκυρη έκφραση προσαρμοσμένου ερωτήματος πεδίου"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Μη έγκυρη λίστα έκφρασης. Πρέπει να είναι μη κενή."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Μη έγκυρος λογικός τελεστής {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Υπέρβαση μέγιστου αριθμού συνθηκών ερωτήματος."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "Το προσαρμοσμένο πεδίο {name!r} δεν είναι ένα έγκυρο."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "Το {data_type} δεν υποστηρίζει το ερώτημα expr {expr!r}s."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Υπέρβαση μέγιστου βάθους εμφώλευσης."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Το προσαρμοσμένο πεδίο δε βρέθηκε"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "εκτελέσεις ροής εργασίας"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Εντοπίστηκε μη έγκυρη μεταβλητή."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Πρόκειται να χρησιμοποιήσετε το λογαρι
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Ως τελικό βήμα, παρακαλούμε να συμπληρώσετε την ακόλουθη φόρμα:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "ρυθμίσεις εφαρμογής paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Αγγλικά (ΗΠΑ)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Αραβικά"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Αφρικανικά"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Λευκορωσικά"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Βουλγαρικά"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Καταλανικά"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Τσέχικα"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Δανέζικα"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Γερμανικά"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Ελληνικά"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Αγγλικά (Ηνωμένο Βασίλειο)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Ισπανικά"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Φινλανδικά"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Γαλλικά"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Ουγγρικά"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Ιταλικά"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Ιαπωνικά"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Κορεάτικα"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Λουξεμβουργικά"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Νορβηγικά"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Ολλανδικά"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Πολωνικά"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Πορτογαλικά (Βραζιλίας)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Πορτογαλικά"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Ρουμάνικα"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Ρωσικά"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Σλοβακικά"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Σλοβενικά"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Σερβικά"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Σουηδικά"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Τούρκικα"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ουκρανικά"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Κινέζικα Απλοποιημένα"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Κινεζικά Παραδοσιακά"
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"POT-Creation-Date: 2026-10-10 22:04+0000\n"
|
||||
"PO-Revision-Date: 2022-02-17 04:17\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: English\n"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr ""
|
||||
|
||||
@@ -1652,49 +1652,49 @@ msgstr ""
|
||||
msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:516 documents/serialisers.py:873
|
||||
#: documents/serialisers.py:2903 documents/views.py:343 documents/views.py:2750
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:708
|
||||
#: documents/serialisers.py:709
|
||||
msgid "Invalid color."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2369
|
||||
#: documents/serialisers.py:2370
|
||||
#, python-format
|
||||
msgid "File type %(type)s not supported"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2413
|
||||
#: documents/serialisers.py:2414
|
||||
#, python-format
|
||||
msgid "Custom field id must be an integer: %(id)s"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2420
|
||||
#: documents/serialisers.py:2421
|
||||
#, python-format
|
||||
msgid "Custom field with id %(id)s does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2437 documents/serialisers.py:2447
|
||||
#: documents/serialisers.py:2438 documents/serialisers.py:2448
|
||||
msgid ""
|
||||
"Custom fields must be a list of integers or an object mapping ids to values."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2442
|
||||
#: documents/serialisers.py:2443
|
||||
msgid "Some custom fields don't exist or were specified twice."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2589
|
||||
#: documents/serialisers.py:2590
|
||||
msgid "Invalid variable detected."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2958
|
||||
#: documents/serialisers.py:2959
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2989 documents/views.py:4797
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1945,40 +1945,40 @@ msgstr ""
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/views.py:336 documents/views.py:2747
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1682
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1693
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1705
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: documents/views.py:2572 documents/views.py:2888
|
||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4815
|
||||
#: documents/views.py:4813
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4860
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4938
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2270,151 +2270,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Documentos"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "El valor debe ser un JSON válido."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Expresión de consulta de campo personalizado no válida"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Lista de expresiones no válida. No debe estar vacía."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Operador lógico inválido {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Se ha superado el número máximo de condiciones de consulta."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{nombre!r} no es un campo personalizado válido."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} no admite la consulta expr {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Profundidad máxima de nidificación superada."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Campo personalizado no encontrado"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "ejecuciones de flujo de trabajo"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Permisos insuficientes."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Variable inválida."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "No se permiten identificadores de documento duplicados."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Documentos no encontrados: %(ids)s"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Estás a punto de usar tu cuenta de %(provider_name)s para iniciar sesi
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Como último paso, por favor complete el siguiente formulario:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "No se puede analizar la URI {value}, falta el esquema"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "No se puede analizar la URI {value}, falta la ubicación de la red o la ruta"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "El esquema URI '{parts.scheme}' no está permitido. Esquemas permitidos: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "No se puede analizar la URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Configuración de IA inválida."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "El paquete ya está siendo procesado."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "El paquete de enlace compartido no está disponible."
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr "Establece el tiempo de espera de LLM en segundos"
|
||||
msgid "paperless application settings"
|
||||
msgstr "Ajustes de la aplicación paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Inglés (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Árabe"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Africano"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Bielorruso"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Búlgaro"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Catalán"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Checo"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Danés"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Alemán"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Griego"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Inglés (Gran Bretaña)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Español"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persa"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finlandés"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Francés"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Húngaro"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesio"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italiano"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japonés"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Coreano"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburgués"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Noruego"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Alemán"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polaco"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugués (Brasil)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugués"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumano"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Ruso"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Eslovaco"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Esloveno"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbio"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Sueco"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turco"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ucraniano"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamita"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Chino simplificado"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Chino tradicional"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumendid"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Väärtus peab olema lubatav JSON."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Vigane kohandatud välja päringu avaldis"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Vigane avaldiste loend. Peab olema mittetühi."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Vigane loogikaoperaator {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Päringutingimuste suurim hulk on ületatud."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} ei ole lubatud kohandatud väli."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} ei toeta päringu avaldist {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Suurim pesastamis sügavus ületatud."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Kohandatud välja ei leitud"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr ""
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "اسناد و مدارک"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "مقدار باید JSON معتبر باشد."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Invalid custom field query expression"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "لیست عبارتها نامعتبر است. نباید خالی باشد."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "حداکثر تعداد شرایط پرس و جو از آن فراتر رفته است."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{نام! R} یک زمینه سفارشی معتبر نیست."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "حداکثر عمق تودرتویی بیش از حد مجاز است."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "زمینه سفارشی یافت نشد"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "گردش کار اجرا می شود"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "متغیر نامعتبر شناسایی شده است."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "به عنوان مرحله آخر ، لطفاً فرم زیر را تکمیل کنید:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "تنظیمات برنامه بدون کاغذ"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "انگلیسی (ایالات متحده)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "عربی"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "افریکان"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "وابسته به بلروس"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "وابسته به بلغاری"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "کاتالان"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "وابسته به چک"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "وابسته به دانمارکی"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "آلمانی"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "یونانی"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "انگلیسی (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "اسپانیایی"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "فارسی"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "فنلاندی"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "فرانسوی"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "مجارستانی"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "ایتالیایی"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "وابسته به ژاپنی"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "کره ای"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "وابسته به لوکس"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "نروژی"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "هلندی"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "صیقل دادن"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "پرتغالی (برزیل)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "وابسته به پرتغالی"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "وابسته به رومانی"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "روسی"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "لگن"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "وابسته به اسلوونی"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "صرب"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "سوئدی"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "ترکی"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "وابسته به اوکراینی"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "چینی ساده شد"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "چینی سنتی"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Asiakirjat"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Arvon on oltava kelvollista JSON:ia."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr ""
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Virheellinen muuttuja havaittu."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Englanti (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arabialainen"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "valkovenäjä"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Katalaani"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tšekki"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Tanska"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Saksa"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Kreikka"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Englanti (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Espanja"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Suomi"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Ranska"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italia"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburg"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norja"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Hollanti"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "puola"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "portugali (Brasilia)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "portugali"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "romania"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "venäjä"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slovakia"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slovenia"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbia"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "ruotsi"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turkki"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukraina"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Kiina (yksinkertaistettu)"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Documents"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "La valeur doit être un JSON valide."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Requête de champ personnalisé invalide"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Liste d'expressions invalide. Doit être non vide."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Opérateur logique {op!r} invalide"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Nombre maximum de conditions dans la requête dépassé."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} n'est pas un champ personnalisé valide."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} ne supporte pas l'expression {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Profondeur de récursion maximale dépassée."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Champ personnalisé non trouvé"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "le flux de travail s'exécute"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Droits insuffisants."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Variable invalide détectée."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Les identificateurs de document en double ne sont pas autorisés."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Documents introuvables : %(ids)s"
|
||||
@@ -1912,44 +1912,59 @@ msgstr "Vous vous apprêtez à utiliser votre compte %(provider_name)s pour vous
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Pour finir, veuillez remplir le formulaire suivant :"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Impossible d'analyser l'URI {value}, schéma manquant"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "Impossible d'analyser l'URI {value}, emplacement réseau ou chemin manquant"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "Le schéma d'URI « {parts.scheme} » n'est pas autorisé. Schémas autorisés : {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Impossible d'analyser l'URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "More_like_id invalide"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Configuration IA invalide."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr "La requête d'arrière-plan IA a expiré."
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Le paquet est déjà en cours de traitement."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "Le lot de liens de partage n'est pas disponible."
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr "Définit le délai d'attente du LLM en secondes"
|
||||
msgid "paperless application settings"
|
||||
msgstr "paramètres de l'application paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Anglais (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arabe"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Biélorusse"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bulgare"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Catalan"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tchèque"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Danois"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Allemand"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Grec"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Anglais (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Espagnol"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persan"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finnois"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Français"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Hongrois"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonésien"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italien"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japonais"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Coréen"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxembourgeois"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norvégien"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Néerlandais"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polonais"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugais (Brésil)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugais"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Roumain"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russe"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Solvaque"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slovène"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbe"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Suédois"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turc"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukrainien"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamien"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Chinois simplifié"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Chinois traditionnel"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "מסמכים"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "ערך חייב להיות JSON תקין."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "ביטוי שאילתה לא חוקי של שדה מותאם אישית"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "רשימת ביטויים לא חוקית. חייב לכלול ערך."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "סימן פעולה לוגית לא חוקי {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "חריגה ממספר תנאי השאילתה המרבי."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} הוא לא שדה מותאם אישית חוקי."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} לא תומך בביטוי שאילתה {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "חריגה מעומק הקינון המרבי."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "שדה מותאם אישית לא נמצא"
|
||||
|
||||
@@ -1637,7 +1637,7 @@ msgid "workflow runs"
|
||||
msgstr "הרצות זרימת עבודה"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "הרשאות אינן מספיקות."
|
||||
@@ -1677,7 +1677,7 @@ msgstr "משתנה לא חוקי זוהה."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "מזהי מסמכים כפולים אינם מורשים."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "מסמכים לא נמצאו: %(ids)s"
|
||||
@@ -1914,44 +1914,59 @@ msgstr "שלך כדי להתחבר %(provider_name)s אתה עומד להשתמ
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ": כצעד אחרון, אנא מלא את הטופס הבא:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "לא ניתן לפענח את ה-URI {value}, חסר פרוטוקול (scheme)"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "לא ניתן לפענח את ה-URI {value}, חסר מיקום רשת (net location) או נתיב"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "פרוטוקול ה-URI '{parts.scheme}' אינו מורשה. הפרוטוקולים המורשים הם: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "לא ניתן לפענח את ה URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "מזהה more_like_id אינו תקין"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "הגדרות בינה מלאכותית שגויות."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr "הרשאות לא מספיקות לשיתוף מסמך %(id)s."
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "החבילה (Bundle) כבר נמצאת בתהליך עיבוד."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr "חבילת קישור השיתוף עדיין בהכנה. נא לנסות שוב מאוחר יותר."
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "חבילת קישור השיתוף אינה זמינה."
|
||||
|
||||
@@ -2243,151 +2258,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "הגדרות יישום paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "אנגלית (ארה״ב)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "ערבית"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "אפריקאנס"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "בלרוסית"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "בולגרית"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "קטלאנית"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "צ'כית"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "דנית"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "גרמנית"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "יוונית"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "אנגלית (בריטניה)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "ספרדית"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "פרסית"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "פינית"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "צרפתית"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "הונגרית"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "אינדונזית"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "איטלקית"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "יפנית"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "קוריאנית"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "לוקסמבורגית"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "נורווגית"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "הולנדית"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "פולנית"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "פורטוגלית ברזילאית"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "פורטוגלית"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "רומנית"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "רוסית"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "סלובקית"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "סלובנית"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "סרבית"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "שוודית"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "טורקית"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "אוקראינית"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "ווייטנאמית"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "סינית מפושטת"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "סינית מסורתית"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "दस्तावेज़"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "मान वैध JSON होना चाहिए."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "अमान्य कस्टम फ़ील्ड क्वेरी एक्सप्रेशन"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "अमान्य एक्सप्रेशन सूची। खाली नहीं होनी चाहिए।"
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "अमान्य लॉजिकल ऑपरेटर {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "क्वेरी शर्तों की अधिकतम संख्या पार हो गई है।"
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} यह एक वैध कस्टम फ़ील्ड नहीं है।"
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} क्वेरी एक्सप्रेशन {expr!r} का समर्थन नहीं करता है।"
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "अधिकतम नेस्टिंग डेप्थ पार हो गई है।"
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "कस्टम फ़ील्ड नहीं मिला"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr ""
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumenti"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Vrijednost mora biti važeći JSON."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Nevažeći izraz upita prilagođenog polja"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Nevažeći popis izraza. Ne smije biti prazno."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Nevažeći logički operator {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Previše uvjeta u upitu."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} nije važeće prilagođeno polje."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} ne podržava upit izraz {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Premašena je najveća razina ugniježđivanja."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Prilagođeno polje nije pronađeno"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "tijek rada pokrenut"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Nedovoljne ovlasti."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Otkrivena je nevaljana vrsta datoteke."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Duplicirani identifikatori dokumenata nisu dopušteni."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Dokumenti nisu pronađeni: %(ids)s"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Upravo ćete koristiti svoj račun %(provider_name)s za prijavu."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Kao posljednji korak ispunite sljedeći obrazac:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Nije moguće analizirati URI {value}, nedostaje shema"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "Nije moguće analizirati URI {value}, nedostaje mrežna lokacija ili put"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "URI shema '{parts.scheme}' nije dopuštena. Dopuštene sheme: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Nije moguće raščlaniti URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "Nevažeći more_like_id"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Nevažeća AI konfiguracija."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr "Zahtjev prema AI pozadinskom sustavu je istekao."
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr "AI pozadinski sustav je odbio zahtjev. Provjerite zapise (logs) za više detalja."
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Paket se već obrađuje."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "Paket linka za dijeljenje nije dostupan."
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr "LLM timeout (u sekundama)"
|
||||
msgid "paperless application settings"
|
||||
msgstr "postavke paperless aplikacije"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Engleski (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arapski"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "afrički"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Bjeloruski"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "bugarski"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "katalonski"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Češki"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Danski"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Njemački"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "grčki"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Engleski (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Španjolski"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "perzijski"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "finski"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Francuski"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "mađarski"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Iidonezijski"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Talijanski"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "japanski"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "koreanski"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luksemburški"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "norveški"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Nizozemski"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Poljski"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugalski (Brazil)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugalski"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumunjski"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Ruski"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "slovački"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slovenski"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Srpski"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Švedski"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turski"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "ukrajinski"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "vijetnamski"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Pojednostavljeni kineski"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Kineski tradicionalni"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumentumok"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Érvényes JSON érték szükséges."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Érvénytelen egyéni mező lekérdezési kifejezés"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Érvénytelen kifejezéslista. Nem lehet üres."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Érvénytelen logikai operátor {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Maximum lekérdezési feltételszám átlépve."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} nem érvényes egyéni mező."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "A(z) {data_type} nem támogatja a {expr!r} kifejezés lekérdezést."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Maximum beágyazási mélység túllépve."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Az egyéni mező nem található"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "munkafolyamat futtatások"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: 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."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Érvénytelen változó észlelve."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "A dokumentumazonosítók duplikálása nem megengedett."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Dokumentumok nem találhatók: %(ids)s"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "A %(provider_name)s felhasználói fiókkal fogsz belépni."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Utolsó lépésként kérjük válaszoljon az alábbi kérdésekre:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "A {value} URI értelmezése sikertelen, hiányzó séma"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "A {value} URI értelmezése sikertelen, hiányzó hálózati vagy elérési útvonal"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "A '{parts.scheme}' séma nem engedélyezett. Engedélyezett sémák: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "A {value} URI értelmezése sikertelen"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "Érvénytelen more_like_id"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Érvénytelen MI konfiguráció."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "A csomag feldolgozása már folyamatban van."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "A megosztási linkcsomag nem elérhető."
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "paperless alkalmazás beállítások"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Angol (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arab"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikai"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Fehérorosz"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bolgár"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Katalán"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Cseh"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dán"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Német"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Görög"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Angol (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spanyol"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Perzsa"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finn"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Francia"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Magyar"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonéz"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Olasz"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japán"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Koreai"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburgi"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norvég"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Holland"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Lengyel"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugál (Brazília)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugál"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Román"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Orosz"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Szlovák"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Szlovén"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Szerb"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Svéd"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Török"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukrán"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnámi"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Kínai egyszerűsített"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Tradicionális kínai"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumen"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Nilai harus berupa JSON yang valid."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Ekspresi pencarian bidang khusus tidak valid"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Daftar ekspresi tidak valid. Tidak boleh kosong."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Operator logika {op!r} tidak valid"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Jumlah maksimal kondisi pencarian terlampaui."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} bukan bidang khusus yang valid."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} tidak mendukung ekspresi pencarian expr {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Kedalaman susunan maksimal terlampaui."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Bidang khusus tidak ditemukan"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "daftar jalankan alur kerja"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Izin tidak mencukupi"
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Variabel ilegal terdeteksi."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Penggunaan pengenal dokumen ganda tidak diperbolehkan."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Dokumen tidak ditemukan: %(ids)s"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Anda akan menggunakan akun %(provider_name)s Anda untuk masuk."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Sebagai langkah terakhir, mohon formulir berikut:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Gagal membaca URI {value}, skema tidak ditemukan"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "Gagal membaca URI {value}, lokasi jaringan atau path tidak ditemukan"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "Skema URI '{parts.scheme}' tidak diizinkan. Skema yang diizinkan: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Gagal membaca URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Paket sedang diproses."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "Bundel tautan berbagi tidak tersedia."
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "pengaturan aplikasi paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Inggris (AS)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arab"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Bahasa Afrika"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Belarusia"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bahasa Bulgaria"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Katalan"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Bahasa Ceko"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Denmark"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Jerman"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Yunani"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Inggris (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spanyol"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persia"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finlandia"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Prancis"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Hungaria"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesia"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italia"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Bahasa Jepang"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Bahasa Korea"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luksemburg"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norwegia"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Belanda"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polandia"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugis (Brasil)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugis"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumania"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Rusia"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slovakia"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slovenia"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbia"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Swedia"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turki"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukraina"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnam"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Mandarin Sederhana"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Tionghoa Tradisional"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Documenti"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Il valore deve essere un JSON valido."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Campo personalizzato della query non valido"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Elenco delle espressioni non valido. Deve essere non vuoto."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Operatore logico non valido {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Numero massimo di condizioni di query superato."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} non è un campo personalizzato valido."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} Non supporta la jQuery Expo {Expo!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Profondità massima di nidificazione superata."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Campo personalizzato non trovato"
|
||||
|
||||
@@ -253,7 +253,7 @@ msgstr "documento radice per questa versione"
|
||||
|
||||
#: documents/models.py:325
|
||||
msgid "version index"
|
||||
msgstr "indice versione"
|
||||
msgstr "indice della versione"
|
||||
|
||||
#: documents/models.py:329
|
||||
msgid "Index of this version within the root document."
|
||||
@@ -261,11 +261,11 @@ msgstr "Indice di questa versione all'interno del documento radice."
|
||||
|
||||
#: documents/models.py:333
|
||||
msgid "version label"
|
||||
msgstr "etichetta versione"
|
||||
msgstr "etichetta della versione"
|
||||
|
||||
#: documents/models.py:337
|
||||
msgid "Optional short label for a document version."
|
||||
msgstr "Etichetta abbreviata facoltativa per una versione del documento."
|
||||
msgstr "Etichetta breve facoltativa per una versione del documento."
|
||||
|
||||
#: documents/models.py:342 documents/models.py:961 documents/models.py:992
|
||||
#: documents/models.py:1096 documents/models.py:2126
|
||||
@@ -1006,23 +1006,23 @@ msgstr "note"
|
||||
|
||||
#: documents/models.py:996
|
||||
msgid "page"
|
||||
msgstr "pagina"
|
||||
msgstr ""
|
||||
|
||||
#: documents/models.py:997
|
||||
msgid "Page of the original file, starting at 1"
|
||||
msgstr "Pagina del file originale, partendo da 1"
|
||||
msgstr ""
|
||||
|
||||
#: documents/models.py:1052
|
||||
msgid "format"
|
||||
msgstr "formato"
|
||||
msgstr ""
|
||||
|
||||
#: documents/models.py:1056
|
||||
msgid "document barcode"
|
||||
msgstr "codice a barre del documento"
|
||||
msgstr ""
|
||||
|
||||
#: documents/models.py:1057
|
||||
msgid "document barcodes"
|
||||
msgstr "codici a barre del documento"
|
||||
msgstr ""
|
||||
|
||||
#: documents/models.py:1066
|
||||
msgid "Original"
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "esecuzioni del flusso di lavoro"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Autorizzazioni insufficienti."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Variabile non valida rilevata."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Non sono consentiti identificatori di documenti duplicati."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Documenti non trovati: %(ids)s"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Stai per utilizzare il tuo account %(provider_name)s per effettuare il l
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Come ultimo passo, compila il seguente modulo:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Impossibile analizzare l'URI {value}, schema mancante"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "Impossibile analizzare l'URI {value}, posizione o percorso di rete mancante"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "Lo schema URI '{parts.scheme}' non è consentito. Schemi consentiti: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Impossibile analizzare l'URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "more_like_id non valido"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Configurazione AI non valida."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr "Richiesta di backend AI scaduta."
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: 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:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Il pacchetto è già in fase di elaborazione."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "Il pacchetto di link di condivisione non è disponibile."
|
||||
|
||||
@@ -2168,7 +2183,7 @@ msgstr "Abilita la suddivisione sui codici a barre dei tag"
|
||||
|
||||
#: paperless/models.py:308
|
||||
msgid "Stores the values of detected barcodes"
|
||||
msgstr "Memorizza i valori dei codici a barre individuati"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/models.py:318
|
||||
msgid "Sets the remote OCR engine"
|
||||
@@ -2242,151 +2257,151 @@ msgstr "Impostare il timeout dell’LLM in secondi"
|
||||
msgid "paperless application settings"
|
||||
msgstr "impostazioni dell'applicazione paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Inglese (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arabo"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Bielorusso"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bulgaro"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Catalano"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Ceco"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Danese"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Tedesco"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Greco"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Inglese (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spagnolo"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persiano"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finlandese"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Francese"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Ungherese"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesiano"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italiano"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Giapponese"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Coreano"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Lussemburghese"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norvegese"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Olandese"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polacco"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portoghese (Brasile)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portoghese"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumeno"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russo"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slovacco"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Sloveno"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbo"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Svedese"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turco"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ucraino"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamita"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Cinese semplificato"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Cinese tradizionale"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "ドキュメント"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "値は有効なJSONである必要があります。"
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "無効なカスタムフィールドクエリ式"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "無効な式リストです。空であってはなりません。"
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "無効な論理演算子 {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "クエリ条件の最大数を超えました。"
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} は有効なカスタムフィールドではありません。"
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} はクエリ expr {expr!r} をサポートしていません。"
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "最大ネストの深さを超えました。"
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "カスタムフィールドが見つかりません"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "ワークフローの実行"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "無効な変数を検出しました"
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,59 @@ msgstr "%(provider_name)s アカウントでログインしようとしていま
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "最後のステップとして、以下のフォームに記入してください"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "Paperless アプリケーションの設定"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "英語 (米国)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "アラビア語"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "アフリカーンス語"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "ベラルーシ語"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "ブルガリア語"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "カタロニア語"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "チェコ語"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "デンマーク語"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "ドイツ語"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "ギリシャ語"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "英語 (英国)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "スペイン語"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "フィンランド語"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "フランス語"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "ハンガリー語"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "イタリア語"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "日本語"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "韓国語"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "ルクセンブルク語"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "ノルウェー語"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "オランダ語"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "ポーランド語"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "ポルトガル語 (ブラジル)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "ポルトガル語"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "ルーマニア語"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "ロシア語"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "スロバキア語"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "スロベニア語"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "セルビア語"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "スウェーデン語"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "トルコ語"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "ウクライナ語"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "中国語 (簡体字)"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "中国語 (繁体)"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "문서"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "값은 유효한 JSON이어야 합니다."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "잘못된 사용자 정의 필드 쿼리 표현식"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "잘못된 표현식 목록입니다. 비어 있지 않아야 합니다."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "잘못된 논리 연산자 {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "쿼리 조건의 최대 개수를 초과했습니다."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} 은 잘못된 사용자 정의 필드입니다."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type}은 쿼리 표현식 {expr!r}을(를) 지원하지 않습니다."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "최대 중첩 깊이를 초과했습니다."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "사용자 지정 필드를 찾을 수 없음"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "워크플로우 실행"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "잘못된 변수가 감지되었습니다."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,59 @@ msgstr "%(provider_name)s 의 계정을 사용하여 로그인하려고 합니
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "마지막 단계로 다음 양식을 작성해 주세요:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "{value} URI를 파싱할 수 없습니다: 스킴이 누락되었습니다."
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "{value} URI를 파싱할 수 없습니다: 네트워크 위치 또는 경로가 누락되었습니다."
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "URI 스킴 '{parts.scheme}'는 허용되지 않습니다. 허용된 스킴: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "{value} URI를 파싱할 수 없음"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "페이퍼리스 애플리케이션 설정"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "영어 (미국)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "아랍어"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "아프리칸스어"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "벨라루스어"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "불가리어"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "카탈로니아어"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "체코어"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "덴마크어"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "독일어"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "그리스어"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "영어 (영국)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "스페인어"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "페르시아어"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "핀란드어"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "프랑스어"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "헝가리어"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "이탈리아어"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "일본어"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "한국어"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "룩셈부르크어"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "노르웨이어"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "네덜란드어"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "폴란드어"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "포르투갈어 (브라질)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "포르투갈어"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "루마니아어"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "러시아어"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "슬로바키아어"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "슬로베니아어"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "세르비아어"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "스웨덴어"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "튀르키예어"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "우크라이나어"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "베트남어"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "중국어 간체"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "중국어 번체"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumenter"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr ""
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Ongëlteg Zeechen detektéiert."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Englesch (USA)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Belarusesch"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tschechesch"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dänesch"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Däitsch"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Englesch (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spuenesch"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Franséisch"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italienesch"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Lëtzebuergesch"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Hollännesch"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polnesch"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugisesch (Brasilien)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugisesch"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumänesch"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russesch"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slowenesch"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbesch"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Schwedesch"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Tierkesch"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Chinesesch (Vereinfacht)"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumentai"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Reikšmė turi būti galiojantis JSON."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Neteisinga pasirinktinio lauko užklausos išraiška"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Neteisingas išraiškos sąrašas. Jis turi būti netuščias."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Neteisingas loginis operatorius {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Viršytas maksimalus užklausos sąlygų skaičius."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} nėra galiojantis pasirinktas laukas."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} nepalaiko užklausos išraiškos {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Viršytas maksimalus įdėjimo gylis."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Pasirinktinis laukas nerastas"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr ""
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr "Ketinate prisijungimui naudoti savo %(provider_name)s paskyrą."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Galiausiai užpildykite šią formą:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Nepavyko apdoroti URI {value}, trūksta schemos"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "Nepavyko apdoroti URI {value}, trūksta tinklo vietos arba kelio"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "URI schema '{parts.scheme}' nėra leistina. Galimos schemos: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Nepavyko apdoroti URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr "Nepakanka leidimų bendrinti dokumentą %(id)s."
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Rinkinys jau apdorojamas."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "Dalinimos nuorodų rinkinys yra nepasiekiamas."
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Daniškai"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Vokiškai"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Graikų"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Anglų (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Ispanų"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persų"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Suomių"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Prancūzų"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Vengrų"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indoneziečių"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italų"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japonų"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Korėjiečių"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Liuksemburgiečių"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norvegų"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Olandų"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Lenkų"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugalų (Brazilija)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugalų"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumunų"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Rusų"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slovakų"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slovėnų"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbų"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Švedų"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turkų"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukrainiečių"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamiečių"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Kinų supaprastinta"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Kinų tradicinė"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokuments"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr ""
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr ""
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Angļu (ASV)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arābu"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Āfrikāņu"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Baltkrievu"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bulgāru"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Kataloniešu"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Čehu"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dāņu"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Vācu"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Grieķu"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Angļu (ASV)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spāņu"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Somu"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Franču"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Ungāru"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Itāļu"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japāņu"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luksemburgiešu"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norvēģu"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Holandiešu"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Poļu"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugāļu (Brazīlija)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugāļu"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumāņu"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Krievu"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slovāku"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slovēņu"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Sērbu"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Zviedru"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turku"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukraiņu"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Ķīniešu (vienkāršota)"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr ""
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr ""
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumen"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr ""
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr ""
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1912,44 +1912,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2241,151 +2256,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Documenten"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Waarde moet een geldige JSON zijn."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Ongeldige aangepaste veld query expressie"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Ongeldige expressielijst mag niet leeg zijn."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Ongeldige logische operator {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Maximum aantal query voorwaarden overschreden."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} is geen geldig aangepast veld."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} ondersteunt geen query expr {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Maximale nestdiepte overschreden."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Aangepast veld niet gevonden"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Ongeldige variabele ontdekt."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Je staat op het punt om met je %(provider_name)s account in te loggen."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Vul als laatste stap het volgende formulier in:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "paperless applicatie instellingen"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Engels (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arabisch"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikaans"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Wit-Russisch"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bulgaars"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Catalaans"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tsjechisch"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Deens"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Duits"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Grieks"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Engels (Brits)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spaans"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Perzisch"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Fins"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Frans"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Hongaars"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italiaans"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japans"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Koreaans"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburgs"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Noors"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Nederlands"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Pools"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugees (Brazilië)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugees"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Roemeens"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russisch"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slowaaks"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Sloveens"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Servisch"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Zweeds"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turks"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Oekraïens"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamees"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Chinees (vereenvoudigd)"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumenter"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Verdien må være gyldig JSON."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Ugyldig spørringsuttrykk for egendefinerte felt"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Ugyldig uttrykksliste. Kan ikke være tom."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Ugyldig logiske operator {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Maksimalt antall spørringsbetingelser er overskredet."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} er ikke et gyldig egendefinert felt."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} støtter ikke spørring expr {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "For mange nivåer med nøsting."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Egendefinert felt ble ikke funnet"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "workflow runs (NO)"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Utilstrekkelige tillatelser."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Ugyldig variabel oppdaget."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Duplicate document identifiers are not allowed. (NO)"
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Documents not found: %(ids)s (NO)"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "You are about to use your %(provider_name)s account to login. (NO)"
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "As a final step, please complete the following form: (NO)"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Unable to parse URI {value}, missing scheme (NO)"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "Unable to parse URI {value}, missing net location or path (NO)"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)} (NO)"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Unable to parse URI {value} (NO)"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "Invalid more_like_id (NO)"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Invalid AI configuration. (NO)"
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr "Forespørselen til KI-tjenesten fikk tidsavbrudd."
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Bundle is already being processed. (NO)"
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "The share link bundle is unavailable. (NO)"
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr "Setter tidsavbrudd for LLM i sekunder"
|
||||
msgid "paperless application settings"
|
||||
msgstr "paperless application settings (NO)"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Engelsk (US)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Arabisk"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrikansk"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Hviterussisk"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bulgarian (NO)"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Katalansk"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tsjekkisk"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dansk"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Tysk"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Gresk"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Engelsk (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Spansk"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persian (NO)"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finsk"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Fransk"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Hungarian (NO)"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonesian (NO)"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italiensk"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japanese (NO)"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Korean (NO)"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxembourgsk"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norsk"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Nederlandsk"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polsk"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugisisk (Brasil)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugisisk"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumensk"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russisk"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Slovakisk"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Slovenian (NO)"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbisk"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Svensk"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Tyrkisk"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukrainsk"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamese (NO)"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Kinesisk forenklet"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Chinese Traditional (NO)"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Dokumenty"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "Wartość musi być poprawnym JSON-em."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Nieprawidłowe wyrażenie zapytania pola niestandardowego"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Nieprawidłowa lista wyrażeń. Nie może być pusta."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Nieprawidłowy operator logiczny {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Maksymalna liczba warunków zapytania została przekroczona."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} nie jest prawidłowym polem niestandardowym."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} nie obsługuje wyrażenia zapytania {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Przekroczono maksymalną głębokość zagnieżdżenia."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Nie znaleziono pola niestandardowego"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr "uruchomienia przepływu pracy"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Niewystarczające uprawnienia."
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Wykryto nieprawidłową zmienną."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Nie dopuszcza się powielania identyfikatorów dokumentów."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Nie znaleziono dokumentów: %(ids)s"
|
||||
@@ -1913,44 +1913,59 @@ msgstr "Zamierzasz użyć konta %(provider_name)s aby się zalogować."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Na koniec należy wypełnić poniższy formularz:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
msgstr ""
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Nie można przeanalizować URI {value}, brak schematu"
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr "Nie można przeanalizować URI {value}, brak lokalizacji sieciowej lub ścieżki"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "Schemat URI '{parts.scheme}' jest niedozwolony. Dozwolone schematy: {', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Nie można przetworzyć URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "Nieprawidłowy more_like_id"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Pakiet jest już przetwarzany."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "Pakiet do udostępnienia jest niedostępny."
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "paperless ustawienia aplikacji"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Angielski (USA)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "arabski"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Afrykanerski"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Białoruski"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Bułgarski"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Kataloński"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Czeski"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Duński"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Niemiecki"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Grecki"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Angielski (Wielka Brytania)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Hiszpański"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "perski"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Fiński"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Francuski"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Węgierski"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonezyjski"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Włoski"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japoński"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Koreański"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luksemburski"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norweski"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Holenderski"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polski"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Portugalski (Brazylia)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Portugalski"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Rumuński"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Rosyjski"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Słowacki"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Słoweński"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Serbski"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Szwedzki"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turecki"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ukraiński"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Wietnamski"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Chiński uproszczony"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "chiński tradycyjny"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Documentos"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "O valor deve ser um JSON válido."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Expressão de consulta de campo personalizado inválida"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Lista de expressões inválida. Deve estar não vazia."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Operador lógico inválido {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "Número máximo de condições de consulta excedido."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} não é um campo personalizado válido."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: 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}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr "Profundidade máxima do aninhamento excedida."
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Campo personalizado não encontrado"
|
||||
|
||||
@@ -1637,7 +1637,7 @@ msgid "workflow runs"
|
||||
msgstr "execução de fluxo de trabalho"
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr "Permissões insuficientes."
|
||||
@@ -1677,7 +1677,7 @@ msgstr "Variável inválida detectada."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr "Não são permitidos identificadores de documento duplicados."
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr "Documentos não encontrados: %(ids)s"
|
||||
@@ -1914,44 +1914,60 @@ msgstr "Você está prestes a usar sua conta %(provider_name)s para entrar."
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr "Como etapa final, por favor preencha o seguinte formulário:"
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Não é possível analisar o URI {value}, esquema ausente"
|
||||
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr "Esquema URI '{parts.scheme}' não é permitido. Esquemas permitidos:\n"
|
||||
"{', '.join(allowed_schemes)}"
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Não é possível analisar o URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr "more_like_id inválido"
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr "Configuração de IA inválida."
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr "A requisição backend da IA expirou."
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: 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:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr "Pacote já está sendo processado."
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: 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:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr "O pacote de link de compartilhamento não está disponível."
|
||||
|
||||
@@ -2243,151 +2259,151 @@ msgstr "Define o tempo limite do LLM em segundos"
|
||||
msgid "paperless application settings"
|
||||
msgstr "configurações do aplicativo paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Inglês (EUA)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Árabe"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Africanês"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Bielorrusso"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Búlgaro"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Catalão"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Tcheco"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dinamarquês"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Alemão"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Grego"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Inglês (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Espanhol"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persa"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finlandês"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Francês"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Húngaro"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr "Indonésio"
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italiano"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japonês"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Coreano"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburguês"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norueguês"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Holandês"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polonês"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Português (Brasil)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Português"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Romeno"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russo"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Eslovaco"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Esloveno"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Sérvio"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Sueco"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turco"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ucraniano"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "vietnamita"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Chinês Simplificado"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr "Chinês Tradicional"
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: paperless-ngx\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2026-10-12 19:12+0000\n"
|
||||
"PO-Revision-Date: 2026-10-12 19:13\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"
|
||||
@@ -21,39 +21,39 @@ msgstr ""
|
||||
msgid "Documents"
|
||||
msgstr "Documentos"
|
||||
|
||||
#: documents/filters.py:464
|
||||
#: documents/filters.py:463
|
||||
msgid "Value must be valid JSON."
|
||||
msgstr "O valor deve ser JSON válido."
|
||||
|
||||
#: documents/filters.py:483
|
||||
#: documents/filters.py:482
|
||||
msgid "Invalid custom field query expression"
|
||||
msgstr "Expressão de consulta de campo personalizado inválido"
|
||||
|
||||
#: documents/filters.py:493
|
||||
#: documents/filters.py:492
|
||||
msgid "Invalid expression list. Must be nonempty."
|
||||
msgstr "Lista de expressões inválida. Não deve estar vazia."
|
||||
|
||||
#: documents/filters.py:514
|
||||
#: documents/filters.py:513
|
||||
msgid "Invalid logical operator {op!r}"
|
||||
msgstr "Operador lógico inválido {op!r}"
|
||||
|
||||
#: documents/filters.py:528
|
||||
#: documents/filters.py:527
|
||||
msgid "Maximum number of query conditions exceeded."
|
||||
msgstr "O número máximo de condições de consulta foi excedido."
|
||||
|
||||
#: documents/filters.py:592
|
||||
#: documents/filters.py:591
|
||||
msgid "{name!r} is not a valid custom field."
|
||||
msgstr "{name!r} não é um campo personalizado válido."
|
||||
|
||||
#: documents/filters.py:629
|
||||
#: documents/filters.py:628
|
||||
msgid "{data_type} does not support query expr {expr!r}."
|
||||
msgstr "{data_type} não aceita a expressão de consulta {expr!r}."
|
||||
|
||||
#: documents/filters.py:748 documents/models.py:137
|
||||
#: documents/filters.py:747 documents/models.py:137
|
||||
msgid "Maximum nesting depth exceeded."
|
||||
msgstr ""
|
||||
|
||||
#: documents/filters.py:1125
|
||||
#: documents/filters.py:1109
|
||||
msgid "Custom field not found"
|
||||
msgstr "Campo personalizado não encontrado"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgid "workflow runs"
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:515 documents/serialisers.py:872
|
||||
#: documents/serialisers.py:2902 documents/views.py:344 documents/views.py:2752
|
||||
#: documents/serialisers.py:2902 documents/views.py:343 documents/views.py:2732
|
||||
#: paperless_mail/serialisers.py:156
|
||||
msgid "Insufficient permissions."
|
||||
msgstr ""
|
||||
@@ -1676,7 +1676,7 @@ msgstr "Variável inválida detetada."
|
||||
msgid "Duplicate document identifiers are not allowed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/serialisers.py:2988 documents/views.py:4799
|
||||
#: documents/serialisers.py:2988 documents/views.py:4787
|
||||
#, python-format
|
||||
msgid "Documents not found: %(ids)s"
|
||||
msgstr ""
|
||||
@@ -1913,44 +1913,59 @@ msgstr ""
|
||||
msgid "As a final step, please complete the following form:"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:36
|
||||
msgid ", "
|
||||
#: documents/validators.py:24
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing scheme"
|
||||
msgstr "Não foi possível analisar o URI {value}, o esquema está em falta"
|
||||
|
||||
#: documents/validators.py:29
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}, missing net location or path"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:337 documents/views.py:2749
|
||||
#: documents/validators.py:36
|
||||
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
|
||||
msgstr ""
|
||||
|
||||
#: documents/validators.py:45
|
||||
#, python-brace-format
|
||||
msgid "Unable to parse URI {value}"
|
||||
msgstr "Não foi possível analisar o URI {value}"
|
||||
|
||||
#: documents/views.py:336 documents/views.py:2729
|
||||
msgid "Invalid more_like_id"
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1684
|
||||
#: documents/views.py:1676
|
||||
msgid "Invalid AI configuration."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1695
|
||||
#: documents/views.py:1687
|
||||
msgid "AI backend request timed out."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:1707
|
||||
#: documents/views.py:1699
|
||||
msgid "AI backend rejected the request. Check logs for details."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:2574 documents/views.py:2890
|
||||
#: 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:4815
|
||||
#: documents/views.py:4800
|
||||
#, python-format
|
||||
msgid "Insufficient permissions to share document %(id)s."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4862
|
||||
#: documents/views.py:4846
|
||||
msgid "Bundle is already being processed."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4926
|
||||
#: documents/views.py:4910
|
||||
msgid "The share link bundle is still being prepared. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: documents/views.py:4940
|
||||
#: documents/views.py:4924
|
||||
msgid "The share link bundle is unavailable."
|
||||
msgstr ""
|
||||
|
||||
@@ -2242,151 +2257,151 @@ msgstr ""
|
||||
msgid "paperless application settings"
|
||||
msgstr "configurações do paperless"
|
||||
|
||||
#: paperless/settings/__init__.py:562
|
||||
#: paperless/settings/__init__.py:561
|
||||
msgid "English (US)"
|
||||
msgstr "Inglês (EUA)"
|
||||
|
||||
#: paperless/settings/__init__.py:563
|
||||
#: paperless/settings/__init__.py:562
|
||||
msgid "Arabic"
|
||||
msgstr "Árabe"
|
||||
|
||||
#: paperless/settings/__init__.py:564
|
||||
#: paperless/settings/__init__.py:563
|
||||
msgid "Afrikaans"
|
||||
msgstr "Africano"
|
||||
|
||||
#: paperless/settings/__init__.py:565
|
||||
#: paperless/settings/__init__.py:564
|
||||
msgid "Belarusian"
|
||||
msgstr "Bielorrusso"
|
||||
|
||||
#: paperless/settings/__init__.py:566
|
||||
#: paperless/settings/__init__.py:565
|
||||
msgid "Bulgarian"
|
||||
msgstr "Búlgaro"
|
||||
|
||||
#: paperless/settings/__init__.py:567
|
||||
#: paperless/settings/__init__.py:566
|
||||
msgid "Catalan"
|
||||
msgstr "Catalão"
|
||||
|
||||
#: paperless/settings/__init__.py:568
|
||||
#: paperless/settings/__init__.py:567
|
||||
msgid "Czech"
|
||||
msgstr "Checo"
|
||||
|
||||
#: paperless/settings/__init__.py:569
|
||||
#: paperless/settings/__init__.py:568
|
||||
msgid "Danish"
|
||||
msgstr "Dinamarquês"
|
||||
|
||||
#: paperless/settings/__init__.py:570
|
||||
#: paperless/settings/__init__.py:569
|
||||
msgid "German"
|
||||
msgstr "Deutsch"
|
||||
|
||||
#: paperless/settings/__init__.py:571
|
||||
#: paperless/settings/__init__.py:570
|
||||
msgid "Greek"
|
||||
msgstr "Grego"
|
||||
|
||||
#: paperless/settings/__init__.py:572
|
||||
#: paperless/settings/__init__.py:571
|
||||
msgid "English (GB)"
|
||||
msgstr "Inglês (GB)"
|
||||
|
||||
#: paperless/settings/__init__.py:573
|
||||
#: paperless/settings/__init__.py:572
|
||||
msgid "Spanish"
|
||||
msgstr "Espanhol"
|
||||
|
||||
#: paperless/settings/__init__.py:574
|
||||
#: paperless/settings/__init__.py:573
|
||||
msgid "Persian"
|
||||
msgstr "Persa"
|
||||
|
||||
#: paperless/settings/__init__.py:575
|
||||
#: paperless/settings/__init__.py:574
|
||||
msgid "Finnish"
|
||||
msgstr "Finlandês"
|
||||
|
||||
#: paperless/settings/__init__.py:576
|
||||
#: paperless/settings/__init__.py:575
|
||||
msgid "French"
|
||||
msgstr "Français"
|
||||
|
||||
#: paperless/settings/__init__.py:577
|
||||
#: paperless/settings/__init__.py:576
|
||||
msgid "Hungarian"
|
||||
msgstr "Húngaro"
|
||||
|
||||
#: paperless/settings/__init__.py:578
|
||||
#: paperless/settings/__init__.py:577
|
||||
msgid "Indonesian"
|
||||
msgstr ""
|
||||
|
||||
#: paperless/settings/__init__.py:579
|
||||
#: paperless/settings/__init__.py:578
|
||||
msgid "Italian"
|
||||
msgstr "Italiano"
|
||||
|
||||
#: paperless/settings/__init__.py:580
|
||||
#: paperless/settings/__init__.py:579
|
||||
msgid "Japanese"
|
||||
msgstr "Japonês"
|
||||
|
||||
#: paperless/settings/__init__.py:581
|
||||
#: paperless/settings/__init__.py:580
|
||||
msgid "Korean"
|
||||
msgstr "Coreano"
|
||||
|
||||
#: paperless/settings/__init__.py:582
|
||||
#: paperless/settings/__init__.py:581
|
||||
msgid "Luxembourgish"
|
||||
msgstr "Luxemburguês"
|
||||
|
||||
#: paperless/settings/__init__.py:583
|
||||
#: paperless/settings/__init__.py:582
|
||||
msgid "Norwegian"
|
||||
msgstr "Norueguês"
|
||||
|
||||
#: paperless/settings/__init__.py:584
|
||||
#: paperless/settings/__init__.py:583
|
||||
msgid "Dutch"
|
||||
msgstr "Nederlandse"
|
||||
|
||||
#: paperless/settings/__init__.py:585
|
||||
#: paperless/settings/__init__.py:584
|
||||
msgid "Polish"
|
||||
msgstr "Polaco"
|
||||
|
||||
#: paperless/settings/__init__.py:586
|
||||
#: paperless/settings/__init__.py:585
|
||||
msgid "Portuguese (Brazil)"
|
||||
msgstr "Português (Brasil)"
|
||||
|
||||
#: paperless/settings/__init__.py:587
|
||||
#: paperless/settings/__init__.py:586
|
||||
msgid "Portuguese"
|
||||
msgstr "Português"
|
||||
|
||||
#: paperless/settings/__init__.py:588
|
||||
#: paperless/settings/__init__.py:587
|
||||
msgid "Romanian"
|
||||
msgstr "Romeno"
|
||||
|
||||
#: paperless/settings/__init__.py:589
|
||||
#: paperless/settings/__init__.py:588
|
||||
msgid "Russian"
|
||||
msgstr "Russo"
|
||||
|
||||
#: paperless/settings/__init__.py:590
|
||||
#: paperless/settings/__init__.py:589
|
||||
msgid "Slovak"
|
||||
msgstr "Eslovaco"
|
||||
|
||||
#: paperless/settings/__init__.py:591
|
||||
#: paperless/settings/__init__.py:590
|
||||
msgid "Slovenian"
|
||||
msgstr "Esloveno"
|
||||
|
||||
#: paperless/settings/__init__.py:592
|
||||
#: paperless/settings/__init__.py:591
|
||||
msgid "Serbian"
|
||||
msgstr "Sérvio"
|
||||
|
||||
#: paperless/settings/__init__.py:593
|
||||
#: paperless/settings/__init__.py:592
|
||||
msgid "Swedish"
|
||||
msgstr "Sueco"
|
||||
|
||||
#: paperless/settings/__init__.py:594
|
||||
#: paperless/settings/__init__.py:593
|
||||
msgid "Turkish"
|
||||
msgstr "Turco"
|
||||
|
||||
#: paperless/settings/__init__.py:595
|
||||
#: paperless/settings/__init__.py:594
|
||||
msgid "Ukrainian"
|
||||
msgstr "Ucraniano"
|
||||
|
||||
#: paperless/settings/__init__.py:596
|
||||
#: paperless/settings/__init__.py:595
|
||||
msgid "Vietnamese"
|
||||
msgstr "Vietnamita"
|
||||
|
||||
#: paperless/settings/__init__.py:597
|
||||
#: paperless/settings/__init__.py:596
|
||||
msgid "Chinese Simplified"
|
||||
msgstr "Chinês Simplificado"
|
||||
|
||||
#: paperless/settings/__init__.py:598
|
||||
#: paperless/settings/__init__.py:597
|
||||
msgid "Chinese Traditional"
|
||||
msgstr ""
|
||||
|
||||
|
||||
Loaded 100 of 141 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user