Compare commits

..
18 Commits
Author SHA1 Message Date
shamoon 3fa89b85d7 Merge branch 'dev' 2025-08-17 13:46:35 -07:00
github-actions[bot]andCrowdin Bot 5e6b49971f New Crowdin translations by GitHub Action (#10603)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-08-17 13:46:06 -07:00
shamoon be63c79db1 Bump version to 2.18.1 2025-08-17 13:22:39 -07:00
shamoon 26c70b69c4 Merge branch 'main' into dev 2025-08-17 13:21:52 -07:00
github-actions[bot] e0b0dd8548 New Crowdin translations by GitHub Action (#10589) 2025-08-17 13:21:27 -07:00
shamoon 1bbac9948a Development: add tomli as codespell additional dep for py < 3.11 2025-08-17 10:45:51 -07:00
shamoon ca9b5d9586 Documentation: fix filters docs (#10600) 2025-08-17 09:25:42 -07:00
shamoon 521fd1c957 Fix: fix app logo validation with no file (#10599) 2025-08-17 07:19:50 -07:00
shamoon f00a565130 Documentation: fix Postgres version 2025-08-17 01:33:52 -07:00
shamoon d878bc153a Fix some button consistency (#10593) 2025-08-17 01:13:27 -07:00
shamoon f5e6951910 Update CONTRIBUTING.md 2025-08-17 00:46:03 -07:00
shamoon 91102d0335 Update pyproject.toml 2025-08-17 00:19:54 -07:00
shamoon 82ec1be622 Fix: restore version tag display (#10592) 2025-08-16 23:57:53 -07:00
GitHub Actions 01a8cf6f36 Auto translate strings 2025-08-16 19:07:50 +00:00
shamoon 6bdb365f87 Fixhancement: mobile layout improvements for pdf editor (#10588) 2025-08-16 12:06:21 -07:00
shamoon 696e591a3b Merge branch 'main' into dev 2025-08-16 11:00:18 -07:00
github-actions[bot] 3c2782c3a9 Documentation: Add v2.18.0 changelog (#10585) 2025-08-16 10:59:56 -07:00
shamoon a68800d53c See if this helps with intermittent mail test failure 2025-08-16 10:30:25 -07:00
59 changed files with 395 additions and 258 deletions

No files matched your search

+1
View File
@@ -31,6 +31,7 @@ repos:
rev: v2.4.1
hooks:
- id: codespell
additional_dependencies: [tomli]
exclude_types:
- pofile
- json
+5 -19
View File
@@ -37,6 +37,8 @@ Before you can run `pytest`, ensure to [properly set up your local environment](
Once you have submitted a **P**ull **R**equest it will be reviewed, approved, and merged by one or more community members of any team. Automated code tests and formatting checks must be passed.
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.
## Non-Trivial Requests
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).
@@ -109,28 +111,12 @@ Paperless-ngx is a community project. We do our best to delegate permission and
## Structure
As of writing, there are 21 members in paperless-ngx. 4 of these people have complete administrative privileges to the repo:
There are currently 2 members in paperless-ngx with complete administrative privileges to the repo:
- [@shamoon](https://github.com/shamoon)
- [@bauerj](https://github.com/bauerj)
- [@qcasey](https://github.com/qcasey)
- [@FrankStrieter](https://github.com/FrankStrieter)
- [@stumpylog](https://github.com/stumpylog)
There are 5 teams collaborating on specific tasks within paperless-ngx:
- @paperless-ngx/backend (Python / django)
- @paperless-ngx/frontend (JavaScript / Typescript)
- @paperless-ngx/ci-cd (GitHub Actions / Deployment)
- @paperless-ngx/issues (Issue triage)
- @paperless-ngx/test (General testing for larger PRs)
## Permissions
All team members are notified when mentioned or assigned to a relevant issue or pull request. Additionally, each team has slightly different access to paperless-ngx:
- The **test** team has no special permissions.
- The **issues** team has `triage` access. This means they can organize issues and pull requests.
- The **backend**, **frontend**, and **ci-cd** teams have `write` access. This means they can approve PRs and push code, containers, releases, and more.
There are other members who occasionally contribute but we are actively seeking more dedicated maintainers of the project. Please reach out if you are interested.
## Joining
+1 -1
View File
@@ -185,7 +185,7 @@ the instructions from your database's documentation for how to upgrade between m
!!! note
As of Paperless-ngx v2.18, the minimum supported version of PostgreSQL is 13.
As of Paperless-ngx v2.18, the minimum supported version of PostgreSQL is 14.
For PostgreSQL, refer to [Upgrading a PostgreSQL Cluster](https://www.postgresql.org/docs/current/upgrading.html).
+13 -16
View File
@@ -469,12 +469,12 @@ The `get_cf_value` filter retrieves a value from custom field data with optional
##### Datetime Formatting
The `format_datetime`filter formats a datetime string or datetime object using Python's strftime formatting.
The `datetime` filter formats a datetime string or datetime object using Python's strftime formatting.
###### Syntax
```jinja2
{{ datetime_value | format_datetime('%Y-%m-%d %H:%M:%S') }}
{{ datetime_value | datetime('%Y-%m-%d %H:%M:%S') }}
```
###### Parameters
@@ -490,15 +490,11 @@ The `format_datetime`filter formats a datetime string or datetime object using P
```jinja2
<!-- Format datetime object -->
{{ created_at | format_datetime('%B %d, %Y at %I:%M %p') }}
{{ created | datetime('%B %d, %Y at %I:%M %p') }}
<!-- Output: "January 15, 2024 at 02:30 PM" -->
<!-- Format datetime string -->
{{ "2024-01-15T14:30:00" | format_datetime('%m/%d/%Y') }}
<!-- Output: "01/15/2024" -->
<!-- Custom formatting -->
{{ timestamp | format_datetime('%A, %B %d, %Y') }}
{{ custom_fields | get_cf_value('Date Field') | datetime('%A, %B %d, %Y') }}
<!-- Output: "Monday, January 15, 2024" -->
```
@@ -508,7 +504,8 @@ for the possible codes and their meanings.
##### Date Localization
The `localize_date` filter formats a date or datetime object into a localized string using Babel internationalization.
This takes into account the provided locale for translation.
This takes into account the provided locale for translation. Since this must be used on a date or datetime object,
you must access the field directly, i.e. `document.created`.
###### Syntax
@@ -531,27 +528,27 @@ This takes into account the provided locale for translation.
```jinja2
<!-- Preset formats -->
{{ created_date | localize_date('short', 'en_US') }}
{{ document.created | localize_date('short', 'en_US') }}
<!-- Output: "1/15/24" -->
{{ created_date | localize_date('medium', 'en_US') }}
{{ document.created | localize_date('medium', 'en_US') }}
<!-- Output: "Jan 15, 2024" -->
{{ created_date | localize_date('long', 'en_US') }}
{{ document.created | localize_date('long', 'en_US') }}
<!-- Output: "January 15, 2024" -->
{{ created_date | localize_date('full', 'en_US') }}
{{ document.created | localize_date('full', 'en_US') }}
<!-- Output: "Monday, January 15, 2024" -->
<!-- Different locales -->
{{ created_date | localize_date('medium', 'fr_FR') }}
{{ document.created | localize_date('medium', 'fr_FR') }}
<!-- Output: "15 janv. 2024" -->
{{ created_date | localize_date('medium', 'de_DE') }}
{{ document.created | localize_date('medium', 'de_DE') }}
<!-- Output: "15.01.2024" -->
<!-- Custom patterns -->
{{ created_date | localize_date('dd/MM/yyyy', 'en_GB') }}
{{ document.created | localize_date('dd/MM/yyyy', 'en_GB') }}
<!-- Output: "15/01/2024" -->
```
+134
View File
@@ -1,5 +1,139 @@
# Changelog
## paperless-ngx 2.18.0
### Notable Changes
- Feature: PDF editor [@shamoon](https://github.com/shamoon) ([#10318](https://github.com/paperless-ngx/paperless-ngx/pull/10318))
### Features / Enhancements
- Feature: Add filter to localize dates for filepath templating [@stumpylog](https://github.com/stumpylog) ([#10559](https://github.com/paperless-ngx/paperless-ngx/pull/10559))
- Feature: PDF editor [@shamoon](https://github.com/shamoon) ([#10318](https://github.com/paperless-ngx/paperless-ngx/pull/10318))
- Enhancement: support webhook restrictions [@shamoon](https://github.com/shamoon) ([#10555](https://github.com/paperless-ngx/paperless-ngx/pull/10555))
- Performance: Classifier performance optimizations [@Merinorus](https://github.com/Merinorus) ([#10363](https://github.com/paperless-ngx/paperless-ngx/pull/10363))
- Performance: add setting to enable DB connection pooling for PostgreSQL [@Merinorus](https://github.com/Merinorus) ([#10354](https://github.com/paperless-ngx/paperless-ngx/pull/10354))
- Fixhancement: improve text thumbnail generation for large files [@shamoon](https://github.com/shamoon) ([#10483](https://github.com/paperless-ngx/paperless-ngx/pull/10483))
- Enhancement: disable auto spellcheck on filtering dropdowns [@TheDodger](https://github.com/TheDodger) ([#10487](https://github.com/paperless-ngx/paperless-ngx/pull/10487))
- Enhancement: display saved view counts [@shamoon](https://github.com/shamoon) ([#10246](https://github.com/paperless-ngx/paperless-ngx/pull/10246))
- Fixhancement: add missing exact operator for boolean CF queries [@shamoon](https://github.com/shamoon) ([#10402](https://github.com/paperless-ngx/paperless-ngx/pull/10402))
- Feature: add Vietnamese translation [@shamoon](https://github.com/shamoon) ([#10352](https://github.com/paperless-ngx/paperless-ngx/pull/10352))
- Performance: Add support for configuring date parser languages [@Merinorus](https://github.com/Merinorus) ([#10181](https://github.com/paperless-ngx/paperless-ngx/pull/10181))
- Enhancement: Add a database caching for improved performance [@Merinorus](https://github.com/Merinorus) ([#9784](https://github.com/paperless-ngx/paperless-ngx/pull/9784))
### Bug Fixes
- Fix: include ignore for config logos in sanity checker [@shamoon](https://github.com/shamoon) ([#10473](https://github.com/paperless-ngx/paperless-ngx/pull/10473))
- Fix: track and restore changed document fields from session storage [@shamoon](https://github.com/shamoon) ([#10468](https://github.com/paperless-ngx/paperless-ngx/pull/10468))
- Fix: Make some natural keyword date searches timezone-aware [@shamoon](https://github.com/shamoon) ([#10416](https://github.com/paperless-ngx/paperless-ngx/pull/10416))
- Fixhancement: follow redirects in curl health check [@V0idC0de](https://github.com/V0idC0de) ([#10415](https://github.com/paperless-ngx/paperless-ngx/pull/10415))
- Fix: dont use translated verbose_name for getting object perms [@shamoon](https://github.com/shamoon) ([#10399](https://github.com/paperless-ngx/paperless-ngx/pull/10399))
- Fix: fix date format for 'today' in DateComponent [@shamoon](https://github.com/shamoon) ([#10369](https://github.com/paperless-ngx/paperless-ngx/pull/10369))
- Fix: default to empty permissions for group creation [@shamoon](https://github.com/shamoon) ([#10337](https://github.com/paperless-ngx/paperless-ngx/pull/10337))
- Fix: correct api created coercion with timezone [@shamoon](https://github.com/shamoon) ([#10287](https://github.com/paperless-ngx/paperless-ngx/pull/10287))
- Fix: reset search query for preview on reset filter [@shamoon](https://github.com/shamoon) ([#10279](https://github.com/paperless-ngx/paperless-ngx/pull/10279))
- Chore: reject absurd max age values [@shamoon](https://github.com/shamoon) ([#10243](https://github.com/paperless-ngx/paperless-ngx/pull/10243))
- Chore: add tasks task_id param to openapi spec [@shamoon](https://github.com/shamoon) ([#10469](https://github.com/paperless-ngx/paperless-ngx/pull/10469))
- Chore: include advanced search query param in API spec [@shamoon](https://github.com/shamoon) ([#10449](https://github.com/paperless-ngx/paperless-ngx/pull/10449))
### Security
- Address XSS vulnerability GHSA-6p53-hqqw-8j62
### Maintenance
- docker(deps): Bump astral-sh/uv from 0.8.4-python3.12-bookworm-slim to 0.8.8-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10564](https://github.com/paperless-ngx/paperless-ngx/pull/10564))
- docker(deps): Bump astral-sh/uv from 0.7.9-python3.12-bookworm-slim to 0.7.19-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10343](https://github.com/paperless-ngx/paperless-ngx/pull/10343))
- Chore(deps): Bump the small-changes group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10347](https://github.com/paperless-ngx/paperless-ngx/pull/10347))
- Chore(deps-dev): Bump @types/node from 22.15.29 to 24.0.10 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10306](https://github.com/paperless-ngx/paperless-ngx/pull/10306))
- Chore(deps): Bump the small-changes group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10481](https://github.com/paperless-ngx/paperless-ngx/pull/10481))
- docker(deps): bump astral-sh/uv from 0.7.19-python3.12-bookworm-slim to 0.8.3-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10465](https://github.com/paperless-ngx/paperless-ngx/pull/10465))
- Chore: switch from os.path to pathlib.Path [@gothicVI](https://github.com/gothicVI) ([#10397](https://github.com/paperless-ngx/paperless-ngx/pull/10397))
- Chore(deps): Bump the small-changes group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10528](https://github.com/paperless-ngx/paperless-ngx/pull/10528))
- Chore(deps): Bump the django group across 1 directory with 9 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10538](https://github.com/paperless-ngx/paperless-ngx/pull/10538))
- Chore(deps): Bump stefanzweifel/git-auto-commit-action from 5 to 6 in the actions group @[dependabot[bot]](https://github.com/apps/dependabot) ([#10302](https://github.com/paperless-ngx/paperless-ngx/pull/10302))
### Dependencies
<details>
<summary>23 changes</summary>
- chore: Small targeted upgrades to dependencies [@stumpylog](https://github.com/stumpylog) ([#10561](https://github.com/paperless-ngx/paperless-ngx/pull/10561))
- docker(deps): Bump astral-sh/uv from 0.8.4-python3.12-bookworm-slim to 0.8.8-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10564](https://github.com/paperless-ngx/paperless-ngx/pull/10564))
- Chore(deps): Bump the django group across 1 directory with 9 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10538](https://github.com/paperless-ngx/paperless-ngx/pull/10538))
- Chore(deps): Bump the small-changes group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10528](https://github.com/paperless-ngx/paperless-ngx/pull/10528))
- Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10497](https://github.com/paperless-ngx/paperless-ngx/pull/10497))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10498](https://github.com/paperless-ngx/paperless-ngx/pull/10498))
- Chore(deps-dev): Bump @playwright/test from 1.53.2 to 1.54.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10499](https://github.com/paperless-ngx/paperless-ngx/pull/10499))
- Chore(deps-dev): Bump webpack from 5.99.9 to 5.101.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10501](https://github.com/paperless-ngx/paperless-ngx/pull/10501))
- Chore(deps-dev): Bump prettier-plugin-organize-imports from 4.1.0 to 4.2.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10500](https://github.com/paperless-ngx/paperless-ngx/pull/10500))
- Chore(deps-dev): Bump @types/node from 24.0.10 to 24.1.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10502](https://github.com/paperless-ngx/paperless-ngx/pull/10502))
- Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 16 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10496](https://github.com/paperless-ngx/paperless-ngx/pull/10496))
- Chore(deps): Bump the small-changes group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10481](https://github.com/paperless-ngx/paperless-ngx/pull/10481))
- docker(deps): bump astral-sh/uv from 0.7.19-python3.12-bookworm-slim to 0.8.3-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10465](https://github.com/paperless-ngx/paperless-ngx/pull/10465))
- docker(deps): Bump astral-sh/uv from 0.7.9-python3.12-bookworm-slim to 0.7.19-python3.12-bookworm-slim @[dependabot[bot]](https://github.com/apps/dependabot) ([#10343](https://github.com/paperless-ngx/paperless-ngx/pull/10343))
- Chore(deps): Bump the small-changes group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10347](https://github.com/paperless-ngx/paperless-ngx/pull/10347))
- Chore(deps): Bump stefanzweifel/git-auto-commit-action from 5 to 6 in the actions group @[dependabot[bot]](https://github.com/apps/dependabot) ([#10302](https://github.com/paperless-ngx/paperless-ngx/pull/10302))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10311](https://github.com/paperless-ngx/paperless-ngx/pull/10311))
- Chore(deps-dev): Bump @types/node from 22.15.29 to 24.0.10 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10306](https://github.com/paperless-ngx/paperless-ngx/pull/10306))
- Chore(deps): Bump bootstrap from 5.3.6 to 5.3.7 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10308](https://github.com/paperless-ngx/paperless-ngx/pull/10308))
- Chore(deps-dev): Bump webpack from 5.98.0 to 5.99.9 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10309](https://github.com/paperless-ngx/paperless-ngx/pull/10309))
- Chore(deps-dev): Bump @playwright/test from 1.51.1 to 1.53.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10307](https://github.com/paperless-ngx/paperless-ngx/pull/10307))
- Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 13 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10303](https://github.com/paperless-ngx/paperless-ngx/pull/10303))
- Chore: update to Angular 20 [@shamoon](https://github.com/shamoon) ([#10273](https://github.com/paperless-ngx/paperless-ngx/pull/10273))
</details>
### All App Changes
<details>
<summary>44 changes</summary>
- chore: Small targeted upgrades to dependencies [@stumpylog](https://github.com/stumpylog) ([#10561](https://github.com/paperless-ngx/paperless-ngx/pull/10561))
- Feature: Add filter to localize dates for filepath templating [@stumpylog](https://github.com/stumpylog) ([#10559](https://github.com/paperless-ngx/paperless-ngx/pull/10559))
- Chore: Removes duplication and spread out config for codespell [@stumpylog](https://github.com/stumpylog) ([#10560](https://github.com/paperless-ngx/paperless-ngx/pull/10560))
- Chore(deps): Bump the django group across 1 directory with 9 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10538](https://github.com/paperless-ngx/paperless-ngx/pull/10538))
- Feature: PDF editor [@shamoon](https://github.com/shamoon) ([#10318](https://github.com/paperless-ngx/paperless-ngx/pull/10318))
- Enhancement: support webhook restrictions [@shamoon](https://github.com/shamoon) ([#10555](https://github.com/paperless-ngx/paperless-ngx/pull/10555))
- Performance: Classifier performance optimizations [@Merinorus](https://github.com/Merinorus) ([#10363](https://github.com/paperless-ngx/paperless-ngx/pull/10363))
- Chore: switch from os.path to pathlib.Path [@gothicVI](https://github.com/gothicVI) ([#10397](https://github.com/paperless-ngx/paperless-ngx/pull/10397))
- Chore(deps): Bump the small-changes group with 3 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10528](https://github.com/paperless-ngx/paperless-ngx/pull/10528))
- Performance: add setting to enable DB connection pooling for PostgreSQL [@Merinorus](https://github.com/Merinorus) ([#10354](https://github.com/paperless-ngx/paperless-ngx/pull/10354))
- Chore(deps-dev): Bump the frontend-jest-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10497](https://github.com/paperless-ngx/paperless-ngx/pull/10497))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group in /src-ui with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10498](https://github.com/paperless-ngx/paperless-ngx/pull/10498))
- Chore(deps-dev): Bump @playwright/test from 1.53.2 to 1.54.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10499](https://github.com/paperless-ngx/paperless-ngx/pull/10499))
- Chore(deps-dev): Bump webpack from 5.99.9 to 5.101.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10501](https://github.com/paperless-ngx/paperless-ngx/pull/10501))
- Chore(deps-dev): Bump prettier-plugin-organize-imports from 4.1.0 to 4.2.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10500](https://github.com/paperless-ngx/paperless-ngx/pull/10500))
- Chore(deps-dev): Bump @types/node from 24.0.10 to 24.1.0 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10502](https://github.com/paperless-ngx/paperless-ngx/pull/10502))
- Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 16 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10496](https://github.com/paperless-ngx/paperless-ngx/pull/10496))
- Fixhancement: improve text thumbnail generation for large files [@shamoon](https://github.com/shamoon) ([#10483](https://github.com/paperless-ngx/paperless-ngx/pull/10483))
- Enhancement: disable auto spellcheck on filtering dropdowns [@TheDodger](https://github.com/TheDodger) ([#10487](https://github.com/paperless-ngx/paperless-ngx/pull/10487))
- Chore(deps): Bump the small-changes group across 1 directory with 8 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10481](https://github.com/paperless-ngx/paperless-ngx/pull/10481))
- Fix: include ignore for config logos in sanity checker [@shamoon](https://github.com/shamoon) ([#10473](https://github.com/paperless-ngx/paperless-ngx/pull/10473))
- Chore: add tasks task_id param to openapi spec [@shamoon](https://github.com/shamoon) ([#10469](https://github.com/paperless-ngx/paperless-ngx/pull/10469))
- Fix: track and restore changed document fields from session storage [@shamoon](https://github.com/shamoon) ([#10468](https://github.com/paperless-ngx/paperless-ngx/pull/10468))
- Chore: include advanced search query param in API spec [@shamoon](https://github.com/shamoon) ([#10449](https://github.com/paperless-ngx/paperless-ngx/pull/10449))
- Enhancement: display saved view counts [@shamoon](https://github.com/shamoon) ([#10246](https://github.com/paperless-ngx/paperless-ngx/pull/10246))
- Fix: Make some natural keyword date searches timezone-aware [@shamoon](https://github.com/shamoon) ([#10416](https://github.com/paperless-ngx/paperless-ngx/pull/10416))
- Fixhancement: add missing exact operator for boolean CF queries [@shamoon](https://github.com/shamoon) ([#10402](https://github.com/paperless-ngx/paperless-ngx/pull/10402))
- Fix: dont use translated verbose_name for getting object perms [@shamoon](https://github.com/shamoon) ([#10399](https://github.com/paperless-ngx/paperless-ngx/pull/10399))
- Fix: fix date format for 'today' in DateComponent [@shamoon](https://github.com/shamoon) ([#10369](https://github.com/paperless-ngx/paperless-ngx/pull/10369))
- Feature: add Vietnamese translation [@shamoon](https://github.com/shamoon) ([#10352](https://github.com/paperless-ngx/paperless-ngx/pull/10352))
- Chore(deps): Bump the small-changes group across 1 directory with 7 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10347](https://github.com/paperless-ngx/paperless-ngx/pull/10347))
- Fix: default to empty permissions for group creation [@shamoon](https://github.com/shamoon) ([#10337](https://github.com/paperless-ngx/paperless-ngx/pull/10337))
- Chore(deps-dev): Bump the frontend-eslint-dependencies group across 1 directory with 4 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10311](https://github.com/paperless-ngx/paperless-ngx/pull/10311))
- Chore(deps-dev): Bump @types/node from 22.15.29 to 24.0.10 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10306](https://github.com/paperless-ngx/paperless-ngx/pull/10306))
- Chore(deps): Bump bootstrap from 5.3.6 to 5.3.7 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10308](https://github.com/paperless-ngx/paperless-ngx/pull/10308))
- Chore(deps-dev): Bump webpack from 5.98.0 to 5.99.9 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10309](https://github.com/paperless-ngx/paperless-ngx/pull/10309))
- Chore(deps-dev): Bump @playwright/test from 1.51.1 to 1.53.2 in /src-ui @[dependabot[bot]](https://github.com/apps/dependabot) ([#10307](https://github.com/paperless-ngx/paperless-ngx/pull/10307))
- Chore(deps): Bump the frontend-angular-dependencies group in /src-ui with 13 updates @[dependabot[bot]](https://github.com/apps/dependabot) ([#10303](https://github.com/paperless-ngx/paperless-ngx/pull/10303))
- Performance: Add support for configuring date parser languages [@Merinorus](https://github.com/Merinorus) ([#10181](https://github.com/paperless-ngx/paperless-ngx/pull/10181))
- Enhancement: Add a database caching for improved performance [@Merinorus](https://github.com/Merinorus) ([#9784](https://github.com/paperless-ngx/paperless-ngx/pull/9784))
- Fix: correct api created coercion with timezone [@shamoon](https://github.com/shamoon) ([#10287](https://github.com/paperless-ngx/paperless-ngx/pull/10287))
- Fix: reset search query for preview on reset filter [@shamoon](https://github.com/shamoon) ([#10279](https://github.com/paperless-ngx/paperless-ngx/pull/10279))
- Chore: update to Angular 20 [@shamoon](https://github.com/shamoon) ([#10273](https://github.com/paperless-ngx/paperless-ngx/pull/10273))
- Chore: reject absurd max age values [@shamoon](https://github.com/shamoon) ([#10243](https://github.com/paperless-ngx/paperless-ngx/pull/10243))
</details>
## paperless-ngx 2.17.1
### Bug Fixes
+2 -2
View File
@@ -1,7 +1,7 @@
[project]
name = "paperless-ngx"
version = "2.18.0"
description = "A community-supported supercharged version of paperless: scan, index and archive all your physical documents"
version = "2.18.1"
description = "A community-supported supercharged document management system: scan, index and archive all your physical documents"
readme = "README.md"
requires-python = ">=3.10"
classifiers = [
+2 -2
View File
@@ -5549,14 +5549,14 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
</trans-unit>
<trans-unit id="6684403463658676119" datatype="html">
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
</trans-unit>
<trans-unit id="7940755769131903278" datatype="html">
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "paperless-ngx-ui",
"version": "2.18.0",
"version": "2.18.1",
"scripts": {
"preinstall": "npx only-allow pnpm",
"ng": "ng",
@@ -145,7 +145,7 @@ export class AppFrameComponent
}
get versionString(): string {
return `${environment.appTitle} v${this.settingsService.get(SETTINGS_KEYS.VERSION)}${environment.production ? '' : ` #${environment.tag}`}`
return `${environment.appTitle} v${this.settingsService.get(SETTINGS_KEYS.VERSION)}${environment.tag === 'prod' ? '' : ` #${environment.tag}`}`
}
get customAppTitle(): string {
@@ -25,7 +25,7 @@
</button>
</div>
</div>
<div cdkDropList (cdkDropListDropped)="drop($event)" cdkDropListOrientation="mixed" class="d-flex flex-wrap row-cols-5">
<div cdkDropList (cdkDropListDropped)="drop($event)" cdkDropListOrientation="mixed" class="d-flex flex-wrap row-cols-2 row-cols-md-5">
@for (p of pages; track p.page; let i = $index) {
<div class="page-item rounded p-2" cdkDrag (click)="toggleSelection(i)" [class.selected]="p.selected">
<div class="btn-toolbar hover-actions z-10">
@@ -73,8 +73,8 @@
}
</div>
</div>
<div class="modal-footer flex-column">
<div class="d-flex w-100 justify-content-between align-items-center">
<div class="modal-footer">
<div class="d-flex flex-column flex-md-row w-100 gap-3 align-items-center">
<div class="btn-group" role="group">
<input type="radio" class="btn-check" [(ngModel)]="editMode" [value]="PdfEditorEditMode.Create" id="editModeCreate" name="editmode">
<label for="editModeCreate" class="btn btn-outline-primary btn-sm">
@@ -88,16 +88,20 @@
</label>
</div>
@if (editMode === PdfEditorEditMode.Create) {
<div class="form-check ms-3">
<input class="form-check-input" type="checkbox" id="copyMeta" [(ngModel)]="includeMetadata">
<label class="form-check-label" for="copyMeta" i18n>Copy metadata</label>
</div>
<div class="form-check ms-3">
<input class="form-check-input" type="checkbox" id="deleteOriginal" [(ngModel)]="deleteOriginal">
<label class="form-check-label" for="deleteOriginal" i18n>Delete original</label>
<div class="form-group d-flex">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="copyMeta" [(ngModel)]="includeMetadata">
<label class="form-check-label" for="copyMeta" i18n>Copy metadata</label>
</div>
<div class="form-check ms-3">
<input class="form-check-input" type="checkbox" id="deleteOriginal" [(ngModel)]="deleteOriginal">
<label class="form-check-label" for="deleteOriginal" i18n>Delete original</label>
</div>
</div>
}
<button type="button" class="btn ms-auto me-2" [class]="cancelBtnClass" (click)="cancel()" [disabled]="!buttonsEnabled">{{ cancelBtnCaption }}</button>
<button type="button" class="btn" [class]="btnClass" (click)="confirm()" [disabled]="pages.length === 0">{{ btnCaption }}</button>
<div class="form-group ms-md-auto">
<button type="button" class="btn me-2" [class]="cancelBtnClass" (click)="cancel()" [disabled]="!buttonsEnabled">{{ cancelBtnCaption }}</button>
<button type="button" class="btn" [class]="btnClass" (click)="confirm()" [disabled]="pages.length === 0">{{ btnCaption }}</button>
</div>
</div>
</div>
+1 -1
View File
@@ -6,7 +6,7 @@ export const environment = {
apiVersion: '9', // match src/paperless/settings.py
appTitle: 'Paperless-ngx',
tag: 'prod',
version: '2.18.0',
version: '2.18.1',
webSocketHost: window.location.host,
webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:',
webSocketBaseUrl: base_url.pathname + 'ws/',
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+20 -20
View File
@@ -5998,7 +5998,7 @@
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">9</context>
</context-group>
<target state="needs-translation">Select all pages</target>
<target state="translated">Sel·lecciona totes pàgines</target>
</trans-unit>
<trans-unit id="234610397929376642" datatype="html">
<source>Deselect all pages</source>
@@ -6006,7 +6006,7 @@
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">12</context>
</context-group>
<target state="needs-translation">Deselect all pages</target>
<target state="translated">Desel·lecciona totes pàgines</target>
</trans-unit>
<trans-unit id="2530246103796817298" datatype="html">
<source>Rotate selected pages counter-clockwise</source>
@@ -6014,7 +6014,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="needs-translation">Rotate selected pages counter-clockwise</target>
<target state="translated">Gira pàgines en sentit antihorari</target>
</trans-unit>
<trans-unit id="4787219034890830544" datatype="html">
<source>Rotate selected pages clockwise</source>
@@ -6022,7 +6022,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="needs-translation">Rotate selected pages clockwise</target>
<target state="translated">Gira pàgines en sentit horari</target>
</trans-unit>
<trans-unit id="3441043765105475130" datatype="html">
<source>Delete selected pages</source>
@@ -6030,7 +6030,7 @@
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">23</context>
</context-group>
<target state="needs-translation">Delete selected pages</target>
<target state="translated">Esborra pàgines seleccionades</target>
</trans-unit>
<trans-unit id="3873740163706409154" datatype="html">
<source>Rotate page counter-clockwise</source>
@@ -6038,7 +6038,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="needs-translation">Rotate page counter-clockwise</target>
<target state="translated">Gira pàgina en sentit antihorari</target>
</trans-unit>
<trans-unit id="3450236521040548507" datatype="html">
<source>Rotate page clockwise</source>
@@ -6046,7 +6046,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="needs-translation">Rotate page clockwise</target>
<target state="translated">Gira pàgina en sentit horari</target>
</trans-unit>
<trans-unit id="7647925464077975347" datatype="html">
<source>Delete page</source>
@@ -6054,7 +6054,7 @@
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">41</context>
</context-group>
<target state="needs-translation">Delete page</target>
<target state="translated">Esborrar pàgina</target>
</trans-unit>
<trans-unit id="2480952115552020422" datatype="html">
<source>Add / remove document split here</source>
@@ -6062,7 +6062,7 @@
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">44</context>
</context-group>
<target state="needs-translation">Add / remove document split here</target>
<target state="translated">Afegeix/elimina el document dividit aquí</target>
</trans-unit>
<trans-unit id="35277754987868961" datatype="html">
<source>Split here</source>
@@ -6070,7 +6070,7 @@
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">70</context>
</context-group>
<target state="needs-translation">Split here</target>
<target state="translated">Divideix aquí</target>
</trans-unit>
<trans-unit id="7273640930165035289" datatype="html">
<source>Create new document(s)</source>
@@ -6078,7 +6078,7 @@
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">82</context>
</context-group>
<target state="needs-translation">Create new document(s)</target>
<target state="translated">Crea nou document(s)</target>
</trans-unit>
<trans-unit id="8035757452478567832" datatype="html">
<source>Update existing document</source>
@@ -6086,23 +6086,23 @@
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">87</context>
</context-group>
<target state="needs-translation">Update existing document</target>
<target state="translated">Actualitza document existent</target>
</trans-unit>
<trans-unit id="7248454234750442816" datatype="html">
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
<target state="translated">Copiar metadades</target>
</trans-unit>
<trans-unit id="6684403463658676119" datatype="html">
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
<target state="translated">Esborra original</target>
</trans-unit>
<trans-unit id="7940755769131903278" datatype="html">
<source>Merge with existing permissions</source>
@@ -7192,7 +7192,7 @@
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.html</context>
<context context-type="linenumber">7,8</context>
</context-group>
<target state="needs-translation">of <x id="INTERPOLATION" equiv-text="{{previewNumPages}}"/></target>
<target state="translated">de <x id="INTERPOLATION" equiv-text="{{previewNumPages}}"/></target>
</trans-unit>
<trans-unit id="8590109102084543521" datatype="html">
<source>-</source>
@@ -7252,7 +7252,7 @@
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">1359</context>
</context-group>
<target state="needs-translation">PDF Editor</target>
<target state="translated">Editor PDF</target>
</trans-unit>
<trans-unit id="6490688569532630280" datatype="html">
<source>Send</source>
@@ -7800,7 +7800,7 @@
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">1378</context>
</context-group>
<target state="needs-translation">PDF edit operation for "<x id="PH" equiv-text="this.document.title"/>" will begin in the background.</target>
<target state="translated">Operació d'edició de PDF per a "<x id="PH" equiv-text="this.document.title"/>" començarà en segon pla.</target>
</trans-unit>
<trans-unit id="9043972994040261999" datatype="html">
<source>Error executing PDF edit operation</source>
@@ -7808,7 +7808,7 @@
<context context-type="sourcefile">src/app/components/document-detail/document-detail.component.ts</context>
<context context-type="linenumber">1390</context>
</context-group>
<target state="needs-translation">Error executing PDF edit operation</target>
<target state="translated">Error en executar l'edició del PDF</target>
</trans-unit>
<trans-unit id="6085793215710522488" datatype="html">
<source>An error occurred loading tiff: <x id="PH" equiv-text="err.toString()"/></source>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="translated">Metadaten kopieren</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="translated">Original löschen</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="translated">Copia metadati</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="translated">Elimina originale</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+47 -47
View File
@@ -17,7 +17,7 @@
<context context-type="linenumber">131,135</context>
</context-group>
<note priority="1" from="description">Currently selected slide number read by screen reader</note>
<target state="needs-translation"> Slide <x id="INTERPOLATION" equiv-text="ueryList&lt;NgbSli"/> of <x id="INTERPOLATION_1" equiv-text="EventSource = N"/> </target>
<target state="translated"> <x id="INTERPOLATION" equiv-text="ueryList&lt;NgbSli"/> / <x id="INTERPOLATION_1" equiv-text="EventSource = N"/> Slaytı</target>
</trans-unit>
<trans-unit id="ngb.carousel.previous" datatype="html">
<source>Previous</source>
@@ -268,7 +268,7 @@
<context context-type="sourcefile">node_modules/.pnpm/@ng-bootstrap+ng-bootstrap@19.0.1_@angular+common@20.1.4_@angular+core@20.1.4_@angular+_4264661dcfc97b5bf5cf26958990f623/node_modules/src/progressbar/progressbar.ts</context>
<context context-type="linenumber">41,42</context>
</context-group>
<target state="needs-translation"><x id="INTERPOLATION" equiv-text="barConfig); pu"/></target>
<target state="translated"><x id="INTERPOLATION" equiv-text="barConfig); pu"/></target>
</trans-unit>
<trans-unit id="3527354815023530656" datatype="html">
<source>Document <x id="PH" equiv-text="status.filename"/> was added to Paperless-ngx.</source>
@@ -280,7 +280,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">104</context>
</context-group>
<target state="needs-translation">Document <x id="PH" equiv-text="status.filename"/> was added to Paperless-ngx.</target>
<target state="translated"><x id="PH" equiv-text=“status.filename”/> belgesi Paperless-ngx'e eklendi.</target>
</trans-unit>
<trans-unit id="1931214133925051574" datatype="html">
<source>Open document</source>
@@ -324,7 +324,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">134</context>
</context-group>
<target state="needs-translation">Document <x id="PH" equiv-text="status.filename"/> is being processed by Paperless-ngx.</target>
<target state="translated"><x id="PH" equiv-text=“status.filename”/> belgesi Paperless-ngx tarafından işleniyor.</target>
</trans-unit>
<trans-unit id="6570363013146073520" datatype="html">
<source>Dashboard</source>
@@ -444,7 +444,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">178</context>
</context-group>
<target state="needs-translation">The dashboard can be used to show saved views, such as an 'Inbox'. Views are found under Manage &gt; Saved Views once you have created some.</target>
<target state="translated">Kontrol paneli, “Gelen Kutusu” gibi kaydedilmiş görünümleri göstermek için kullanılabilir. &gt; Görünümler, oluşturduktan sonra Yönet &gt; Kaydedilmiş Görünümler altında bulunur.</target>
</trans-unit>
<trans-unit id="9075755296812854717" datatype="html">
<source>Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms.</source>
@@ -452,7 +452,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">185</context>
</context-group>
<target state="needs-translation">Drag-and-drop documents here to start uploading or place them in the consume folder. You can also drag-and-drop documents anywhere on all other pages of the web app. Once you do, Paperless-ngx will start training its machine learning algorithms.</target>
<target state="translated">Belgeleri buraya sürükleyip bırakarak yüklemeye başlayın veya bunları tüketme klasörüne yerleştirin. Belgeleri web uygulamasının diğer tüm sayfalarında istediğiniz yere sürükleyip bırakabilirsiniz. Bunu yaptığınızda, Paperless-ngx makine öğrenimi algoritmalarını eğitmeye başlayacaktır.</target>
</trans-unit>
<trans-unit id="7495498057594070122" datatype="html">
<source>The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar.</source>
@@ -460,7 +460,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">190</context>
</context-group>
<target state="needs-translation">The documents list shows all of your documents and allows for filtering as well as bulk-editing. There are three different view styles: list, small cards and large cards. A list of documents currently opened for editing is shown in the sidebar.</target>
<target state="translated">Belge listesi, tüm belgelerinizi gösterir ve filtreleme ile toplu düzenleme imkanı sunar. Üç farklı görüntüleme stili vardır: liste, küçük kartlar ve büyük kartlar. Düzenleme için şu anda açık olan belgelerin listesi kenar çubuğunda gösterilir.</target>
</trans-unit>
<trans-unit id="1334220418719920556" datatype="html">
<source>The filtering tools allow you to quickly find documents using various searches, dates, tags, etc.</source>
@@ -468,7 +468,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">197</context>
</context-group>
<target state="needs-translation">The filtering tools allow you to quickly find documents using various searches, dates, tags, etc.</target>
<target state="translated">Filtreleme araçları, çeşitli aramalar, tarihler, etiketler vb. kullanarak belgeleri hızlı bir şekilde bulmanızı sağlar.</target>
</trans-unit>
<trans-unit id="5427326625898532358" datatype="html">
<source>Any combination of filters can be saved as a &apos;view&apos; which can then be displayed on the dashboard and / or sidebar.</source>
@@ -476,7 +476,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">203</context>
</context-group>
<target state="needs-translation">Any combination of filters can be saved as a 'view' which can then be displayed on the dashboard and / or sidebar.</target>
<target state="translated">Herhangi bir filtre kombinasyonu, daha sonra kontrol panelinde ve/veya kenar çubuğunda görüntülenebilen bir “görünüm” olarak kaydedilebilir.</target>
</trans-unit>
<trans-unit id="2804886236408698479" datatype="html">
<source>Tags, correspondents, document types and storage paths can all be managed using these pages. They can also be created from the document edit view.</source>
@@ -496,7 +496,7 @@
<context context-type="sourcefile">src/app/components/manage/mail/mail.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Manage e-mail accounts and rules for automatically importing documents.</target>
<target state="translated">E-posta hesaplarını ve belgeleri otomatik olarak içe aktarmak için kuralları yönetin.</target>
</trans-unit>
<trans-unit id="2258659358902319601" datatype="html">
<source>Workflows give you more control over the document pipeline.</source>
@@ -504,7 +504,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">224</context>
</context-group>
<target state="needs-translation">Workflows give you more control over the document pipeline.</target>
<target state="translated">İş akışları, belge iş akışı üzerinde daha fazla kontrol sağlar.</target>
</trans-unit>
<trans-unit id="4680387114119209483" datatype="html">
<source>File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process.</source>
@@ -516,7 +516,7 @@
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">File Tasks shows you documents that have been consumed, are waiting to be, or may have failed during the process.</target>
<target state="translated">Dosya Görevleri, tüketilmiş, tüketilmeyi bekleyen veya işlem sırasında başarısız olmuş belgeleri gösterir.</target>
</trans-unit>
<trans-unit id="2755033621682206902" datatype="html">
<source>Check out the settings for various tweaks to the web app.</source>
@@ -524,7 +524,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">240</context>
</context-group>
<target state="needs-translation">Check out the settings for various tweaks to the web app.</target>
<target state="translated">Web uygulamasında çeşitli düzenlemeler için ayarları kontrol edin.</target>
</trans-unit>
<trans-unit id="7172877665285340082" datatype="html">
<source>Thank you! 🙏</source>
@@ -540,7 +540,7 @@
<context context-type="sourcefile">src/app/app.component.ts</context>
<context context-type="linenumber">250</context>
</context-group>
<target state="needs-translation">There are &lt;em&gt;tons&lt;/em&gt; more features and info we didn't cover here, but this should get you started. Check out the documentation or visit the project on GitHub to learn more or to report issues.</target>
<target state="translated">Burada ele almadığımız daha &lt;em&gt;ton&lt;/em&gt; fazla özellik ve bilgi var, ancak bu bilgiler başlangıç için yeterli olacaktır. Daha fazla bilgi edinmek veya sorunları bildirmek için belgeleri inceleyin veya GitHub'daki projeyi ziyaret edin.</target>
</trans-unit>
<trans-unit id="4270528545616947218" datatype="html">
<source>Lastly, on behalf of every contributor to this community-supported project, thank you for using Paperless-ngx!</source>
@@ -556,7 +556,7 @@
<context context-type="sourcefile">src/app/components/admin/config/config.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<target state="needs-translation">Application Configuration</target>
<target state="translated">Uygulama Konfigürasyonu</target>
</trans-unit>
<trans-unit id="8528041182664173532" datatype="html">
<source>Global app configuration options which apply to &lt;strong&gt;every&lt;/strong&gt; user of this install of Paperless-ngx. Options can also be set using environment variables or the configuration file but the value here will always take precedence.</source>
@@ -564,7 +564,7 @@
<context context-type="sourcefile">src/app/components/admin/config/config.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Global app configuration options which apply to &lt;strong&gt;every&lt;/strong&gt; user of this install of Paperless-ngx. Options can also be set using environment variables or the configuration file but the value here will always take precedence.</target>
<target state="translated">Bu Paperless-ngx kurulumunun &lt;strong&gt;tüm&lt;/strong&gt; kullanıcıları için geçerli olan genel uygulama yapılandırma seçenekleri. Seçenekler, ortam değişkenleri veya yapılandırma dosyası kullanılarak da ayarlanabilir, ancak buradaki değer her zaman öncelikli olacaktır.</target>
</trans-unit>
<trans-unit id="7991430199894172363" datatype="html">
<source>Read the documentation about this setting</source>
@@ -572,7 +572,7 @@
<context context-type="sourcefile">src/app/components/admin/config/config.component.html</context>
<context context-type="linenumber">25</context>
</context-group>
<target state="needs-translation">Read the documentation about this setting</target>
<target state="translated">Bu ayar hakkındaki belgeyi okuyun</target>
</trans-unit>
<trans-unit id="2180291763949669799" datatype="html">
<source>Enable</source>
@@ -584,7 +584,7 @@
<context context-type="sourcefile">src/app/components/common/profile-edit-dialog/profile-edit-dialog.component.html</context>
<context context-type="linenumber">123</context>
</context-group>
<target state="needs-translation">Enable</target>
<target state="translated">Etkinleştir</target>
</trans-unit>
<trans-unit id="3823219296477075982" datatype="html">
<source>Discard</source>
@@ -676,7 +676,7 @@
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
<context context-type="linenumber">103</context>
</context-group>
<target state="needs-translation">Error retrieving config</target>
<target state="translated">Yapılandırma alınırken hata oluştu</target>
</trans-unit>
<trans-unit id="1172622527269118932" datatype="html">
<source>Invalid JSON</source>
@@ -692,7 +692,7 @@
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
<context context-type="linenumber">173</context>
</context-group>
<target state="needs-translation">Configuration updated</target>
<target state="translated">Konfigürasyon güncellendi</target>
</trans-unit>
<trans-unit id="1664963291286452273" datatype="html">
<source>An error occurred updating configuration</source>
@@ -700,7 +700,7 @@
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
<context context-type="linenumber">178</context>
</context-group>
<target state="needs-translation">An error occurred updating configuration</target>
<target state="translated">Konfigürasyon güncellenirken bir hata oluştu</target>
</trans-unit>
<trans-unit id="2653081282186526824" datatype="html">
<source>File successfully updated</source>
@@ -708,7 +708,7 @@
<context context-type="sourcefile">src/app/components/admin/config/config.component.ts</context>
<context context-type="linenumber">200</context>
</context-group>
<target state="needs-translation">File successfully updated</target>
<target state="translated">Dosya başarıyla güncellendi</target>
</trans-unit>
<trans-unit id="5902783625859504265" datatype="html">
<source>An error occurred uploading file</source>
@@ -740,7 +740,7 @@
<context context-type="sourcefile">src/app/components/admin/logs/logs.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Review the log files for the application and for email checking.</target>
<target state="translated">Uygulama ve e-posta kontrolü için günlük dosyalarını inceleyin.</target>
</trans-unit>
<trans-unit id="8838884664569764142" datatype="html">
<source>Auto refresh</source>
@@ -864,7 +864,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">4</context>
</context-group>
<target state="needs-translation">Options to customize appearance, notifications and more. Settings apply to the &lt;strong&gt;current user only&lt;/strong&gt;.</target>
<target state="translated">Görünümü, bildirimleri ve daha fazlasını özelleştirme seçenekleri. Ayarlar yalnızca &lt;strong&gt;mevcut kullanıcı&lt;/strong&gt; için geçerlidir.</target>
</trans-unit>
<trans-unit id="1685061484835793745" datatype="html">
<source>Start tour</source>
@@ -884,7 +884,7 @@
<context context-type="sourcefile">src/app/components/common/system-status-dialog/system-status-dialog.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<target state="needs-translation">System Status</target>
<target state="translated">Sistem Durumu</target>
</trans-unit>
<trans-unit id="4798013226763881638" datatype="html">
<source>Open Django Admin</source>
@@ -1076,7 +1076,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">165,167</context>
</context-group>
<target state="needs-translation"> Update checking works by pinging the public GitHub API for the latest release to determine whether a new version is available. Actual updating of the app must still be performed manually. </target>
<target state="translated"> Güncelleme kontrolü, yeni bir sürümün mevcut olup olmadığını belirlemek için GitHub API'sını pingleyerek çalışır. Uygulamanın gerçek güncellemesi yine de manuel olarak yapılmalıdır </target>
</trans-unit>
<trans-unit id="8416061320800650487" datatype="html">
<source>No tracking data is collected by the app in any way.</source>
@@ -1084,7 +1084,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">169</context>
</context-group>
<target state="needs-translation">No tracking data is collected by the app in any way.</target>
<target state="translated">Uygulama tarafından hiçbir şekilde izleme verisi toplanmaz.</target>
</trans-unit>
<trans-unit id="5775451530782446954" datatype="html">
<source>Saved Views</source>
@@ -1104,7 +1104,7 @@
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.html</context>
<context context-type="linenumber">2</context>
</context-group>
<target state="needs-translation">Saved Views</target>
<target state="translated">Kaydedilen Görünümler</target>
</trans-unit>
<trans-unit id="1595668988802980095" datatype="html">
<source>Show warning when closing saved views with unsaved changes</source>
@@ -1120,7 +1120,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">179</context>
</context-group>
<target state="needs-translation">Show document counts in sidebar saved views</target>
<target state="translated">Kenar çubuğunda kaydedilmiş görünümlerde belge sayısını göster</target>
</trans-unit>
<trans-unit id="908152367861642592" datatype="html">
<source>Document editing</source>
@@ -1128,7 +1128,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">185</context>
</context-group>
<target state="needs-translation">Document editing</target>
<target state="translated">Belge düzenleme</target>
</trans-unit>
<trans-unit id="6708098108196142028" datatype="html">
<source>Use PDF viewer provided by the browser</source>
@@ -1152,7 +1152,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">195</context>
</context-group>
<target state="needs-translation">Default zoom</target>
<target state="translated">Varsayılan yakınlaştırma</target>
</trans-unit>
<trans-unit id="2222784219255971268" datatype="html">
<source>Fit width</source>
@@ -1160,7 +1160,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">199</context>
</context-group>
<target state="needs-translation">Fit width</target>
<target state="translated">Genişliği sığdır</target>
</trans-unit>
<trans-unit id="8409221133589393872" datatype="html">
<source>Fit page</source>
@@ -1168,7 +1168,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">200</context>
</context-group>
<target state="needs-translation">Fit page</target>
<target state="translated">Sayfayı sığdır</target>
</trans-unit>
<trans-unit id="7019985100624067992" datatype="html">
<source>Only applies to the Paperless-ngx PDF viewer.</source>
@@ -1176,7 +1176,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">202</context>
</context-group>
<target state="needs-translation">Only applies to the Paperless-ngx PDF viewer.</target>
<target state="translated">Yalnızca Paperless-ngx PDF görüntüleyici için geçerlidir.</target>
</trans-unit>
<trans-unit id="2959590948110714366" datatype="html">
<source>Automatically remove inbox tag(s) on save</source>
@@ -1184,7 +1184,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">208</context>
</context-group>
<target state="needs-translation">Automatically remove inbox tag(s) on save</target>
<target state="translated">Kaydederken gelen kutusu etiketlerini otomatik olarak kaldır</target>
</trans-unit>
<trans-unit id="8793267604636304297" datatype="html">
<source>Show document thumbnail during loading</source>
@@ -1192,7 +1192,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">214</context>
</context-group>
<target state="needs-translation">Show document thumbnail during loading</target>
<target state="translated">Yükleme sırasında belge küçük resmini göster</target>
</trans-unit>
<trans-unit id="6760166989231109310" datatype="html">
<source>Global search</source>
@@ -1204,7 +1204,7 @@
<context context-type="sourcefile">src/app/components/app-frame/global-search/global-search.component.ts</context>
<context context-type="linenumber">122</context>
</context-group>
<target state="needs-translation">Global search</target>
<target state="translated">Global arama</target>
</trans-unit>
<trans-unit id="2818183879511244335" datatype="html">
<source>Do not include advanced search results</source>
@@ -1212,7 +1212,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">221</context>
</context-group>
<target state="needs-translation">Do not include advanced search results</target>
<target state="translated">Gelişmiş arama sonuçlarını dahil etmeyin</target>
</trans-unit>
<trans-unit id="3969258421469113318" datatype="html">
<source>Full search links to</source>
@@ -1220,7 +1220,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">227</context>
</context-group>
<target state="needs-translation">Full search links to</target>
<target state="translated">Tam arama bağlantıları</target>
</trans-unit>
<trans-unit id="6631288852577115923" datatype="html">
<source>Title and content search</source>
@@ -1228,7 +1228,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">231</context>
</context-group>
<target state="needs-translation">Title and content search</target>
<target state="translated">Başlık ve içerik arama</target>
</trans-unit>
<trans-unit id="1010505078885609376" datatype="html">
<source>Advanced search</source>
@@ -1376,7 +1376,7 @@
<context context-type="sourcefile">src/app/components/admin/settings/settings.component.html</context>
<context context-type="linenumber">266,268</context>
</context-group>
<target state="needs-translation"> Settings apply to this user account for objects (Tags, Mail Rules, etc. but not documents) created via the web UI. </target>
<target state="translated"> Ayarlar, web kullanıcı arayüzü üzerinden oluşturulan nesneler (Etiketler, Posta Kuralları vb., ancak belgeler hariç) bu kullanıcı hesabına uygulanır </target>
</trans-unit>
<trans-unit id="4292903881380648974" datatype="html">
<source>Default Owner</source>
@@ -1768,7 +1768,7 @@
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.html</context>
<context context-type="linenumber">16</context>
</context-group>
<target state="needs-translation">Filter by</target>
<target state="translated">Filtrele</target>
</trans-unit>
<trans-unit id="8953033926734869941" datatype="html">
<source>Name</source>
@@ -2000,7 +2000,7 @@
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.html</context>
<context context-type="linenumber">97</context>
</context-group>
<target state="needs-translation">click for full output</target>
<target state="translated">tam çıktı için tıklayın</target>
</trans-unit>
<trans-unit id="1536087519743707362" datatype="html">
<source>Dismiss</source>
@@ -2028,7 +2028,7 @@
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.html</context>
<context context-type="linenumber">134</context>
</context-group>
<target state="needs-translation">{VAR_PLURAL, plural, =1 {One <x id="INTERPOLATION"/> task} other {<x id="INTERPOLATION_1"/> total <x id="INTERPOLATION"/> tasks}}</target>
<target state="translated">{VAR_PLURAL, plural, =1 {Bir <x id="INTERPOLATION"/> görev} other {<x id="INTERPOLATION_1"/> toplam <x id="INTERPOLATION"/> görevler}}</target>
</trans-unit>
<trans-unit id="1943508481059904274" datatype="html">
<source> (<x id="INTERPOLATION" equiv-text="{{selectedTasks.size}}"/> selected)</source>
@@ -2036,7 +2036,7 @@
<context context-type="sourcefile">src/app/components/admin/tasks/tasks.component.html</context>
<context context-type="linenumber">136</context>
</context-group>
<target state="needs-translation"> (<x id="INTERPOLATION" equiv-text="{{selectedTasks.size}}"/> selected)</target>
<target state="translated">(<x id="INTERPOLATION" equiv-text="{{selectedTasks.size}}"/> seçildi)</target>
</trans-unit>
<trans-unit id="5639839509673911668" datatype="html">
<source>Failed<x id="START_BLOCK_IF" equiv-text="@if (tasksService.failedFileTasks.length &gt; 0) {"/><x id="START_TAG_SPAN" ctype="x-span" equiv-text="&lt;span class=&quot;badge bg-danger ms-2&quot;&gt;"/><x id="INTERPOLATION" equiv-text="{{tasksService.failedFileTasks.length}}"/><x id="CLOSE_TAG_SPAN" ctype="x-span" equiv-text="&lt;/span&gt;"/><x id="CLOSE_BLOCK_IF" equiv-text="}"/></source>
@@ -6094,7 +6094,7 @@ tüm <x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="&lt;/em&gt;"/> krite
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6102,7 +6102,7 @@ tüm <x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="&lt;/em&gt;"/> krite
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -7181,7 +7181,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -7189,7 +7189,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+2 -2
View File
@@ -6092,7 +6092,7 @@
<source>Copy metadata</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">93</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">Copy metadata</target>
</trans-unit>
@@ -6100,7 +6100,7 @@
<source>Delete original</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/pdf-editor/pdf-editor.component.html</context>
<context context-type="linenumber">97</context>
<context context-type="linenumber">98</context>
</context-group>
<target state="needs-translation">Delete original</target>
</trans-unit>
+1 -1
View File
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-08-16 14:34+0000\n"
"PO-Revision-Date: 2025-08-16 14:36\n"
"PO-Revision-Date: 2025-08-17 12:12\n"
"Last-Translator: \n"
"Language-Team: Catalan\n"
"Language: ca_ES\n"
+51 -51
View File
@@ -3,7 +3,7 @@ msgstr ""
"Project-Id-Version: paperless-ngx\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-08-16 14:34+0000\n"
"PO-Revision-Date: 2025-08-16 14:36\n"
"PO-Revision-Date: 2025-08-17 20:45\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -124,7 +124,7 @@ msgstr "gelen kutusu etiketi"
#: documents/models.py:106
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Bu künyeyi, gelen kutusu künyesi olarak imler: Yeni aktarılan tüm belgeler gelen kutusu künyesi ile künyeleneceklerdir."
msgstr "Bu etiketi, gelen kutusu etiketi olarak işaretle: Yeni aktarılan tüm dokümanlar gelen kutusu etiketi ile etiketlendirileceklerdir."
#: documents/models.py:112
msgid "tag"
@@ -914,7 +914,7 @@ msgstr "E-postanın konusu, bazı yer tutucular içerebilir, belgelere bakın."
#: documents/models.py:1097
msgid "emails to"
msgstr ""
msgstr "kime"
#: documents/models.py:1100
msgid "The destination email addresses, comma separated."
@@ -1162,7 +1162,7 @@ msgstr "iş akışı çalıştırma"
#: documents/models.py:1473
msgid "workflow runs"
msgstr ""
msgstr "iş akışı çalıştırma"
#: documents/serialisers.py:139
#, python-format
@@ -1184,7 +1184,7 @@ msgstr "Geçersiz değişken algılandı."
#: documents/templates/account/account_inactive.html:5
msgid "Paperless-ngx account inactive"
msgstr ""
msgstr "Paperless-ngx hesabı pasif"
#: documents/templates/account/account_inactive.html:9
msgid "Account inactive."
@@ -1220,7 +1220,7 @@ msgstr "Lütfen oturum açın."
#: documents/templates/account/login.html:12
#, python-format
msgid "Don't have an account yet? <a href=\"%(signup_url)s\">Sign up</a>"
msgstr ""
msgstr "Henüz hesabınız yok mu? <a href=\"%(signup_url)s\">Kaydol</a>"
#: documents/templates/account/login.html:25
#: documents/templates/account/signup.html:22
@@ -1245,7 +1245,7 @@ msgstr "Şifrenizi mi unuttunuz?"
#: documents/templates/account/login.html:51
#: documents/templates/account/signup.html:57
msgid "or sign in via"
msgstr ""
msgstr "veya giriş yap"
#: documents/templates/account/password_reset.html:5
msgid "Paperless-ngx reset password request"
@@ -1253,7 +1253,7 @@ msgstr "Paperless-ngx parola sıfırlama isteği"
#: documents/templates/account/password_reset.html:9
msgid "Enter your email address below, and we'll email instructions for setting a new one."
msgstr ""
msgstr "Aşağıya e-posta adresinizi girin, yeni bir tane oluşturmak için gerekli talimatları e-posta ile gönderelim."
#: documents/templates/account/password_reset.html:12
msgid "An error occurred. Please try again."
@@ -1273,11 +1273,11 @@ msgstr "Gelen kutunuza bakın."
#: documents/templates/account/password_reset_done.html:13
msgid "We've emailed you instructions for setting your password. You should receive the email shortly!"
msgstr ""
msgstr "Şifrenizi ayarlamak için gerekli talimatları size e-posta ile gönderdik. E-posta kısa süre içinde elinize ulaşacaktır!"
#: documents/templates/account/password_reset_from_key.html:5
msgid "Paperless-ngx reset password confirmation"
msgstr ""
msgstr "Paperless-ngx şifre sıfırlama onayı"
#: documents/templates/account/password_reset_from_key.html:9
msgid "Set a new password."
@@ -1301,7 +1301,7 @@ msgstr "Parolamı değiştir"
#: documents/templates/account/password_reset_from_key_done.html:5
msgid "Paperless-ngx reset password complete"
msgstr ""
msgstr "Paperless-ngx şifre sıfırlama işlemi tamamlandı"
#: documents/templates/account/password_reset_from_key_done.html:9
msgid "Password reset complete."
@@ -1310,11 +1310,11 @@ msgstr "Şifre sıfırlama tamamlandı."
#: documents/templates/account/password_reset_from_key_done.html:14
#, python-format
msgid "Your new password has been set. You can now <a href=\"%(login_url)s\">log in</a>"
msgstr ""
msgstr "Yeni şifreniz ayarlandı. Artık <a href=\"%(login_url)s\">giriş </a> yapabilirsiniz"
#: documents/templates/account/signup.html:5
msgid "Paperless-ngx sign up"
msgstr ""
msgstr "Paperless-ngx kaydolun"
#: documents/templates/account/signup.html:11
#, python-format
@@ -1323,7 +1323,7 @@ msgstr "Bir hesabınız mı var? <a href=\"%(login_url)s\">Giriş yapın</a>"
#: documents/templates/account/signup.html:19
msgid "Note: This is the first user account for this installation and will be granted superuser privileges."
msgstr ""
msgstr "Not: Bu, bu kurulum için ilk kullanıcı hesabıdır ve süper kullanıcı ayrıcalıkları verilecektir."
#: documents/templates/account/signup.html:23
#: documents/templates/socialaccount/signup.html:14
@@ -1349,7 +1349,7 @@ msgstr "Hâlâ burada mısınız? Hmm, bir şeyler yanlış olabilir."
#: documents/templates/index.html:62
msgid "Here's a link to the docs."
msgstr ""
msgstr "İşte belgelerin bağlantısı."
#: documents/templates/mfa/authenticate.html:7
msgid "Paperless-ngx Two-Factor Authentication"
@@ -1357,7 +1357,7 @@ msgstr "Paperless-ngx İki Aşamalı Doğrulama"
#: documents/templates/mfa/authenticate.html:12
msgid "Your account is protected by two-factor authentication. Please enter an authenticator code:"
msgstr ""
msgstr "Hesabınız iki faktörlü kimlik doğrulama ile korunmaktadır. Lütfen kimlik doğrulama kodunu girin:"
#: documents/templates/mfa/authenticate.html:17
msgid "Code"
@@ -1378,17 +1378,17 @@ msgstr "Bağlantının kullanım süresi doldu."
#: documents/templates/socialaccount/authentication_error.html:5
#: documents/templates/socialaccount/login.html:5
msgid "Paperless-ngx social account sign in"
msgstr ""
msgstr "Paperless-ngx sosyal hesap giriş"
#: documents/templates/socialaccount/authentication_error.html:10
#, python-format
msgid "An error occurred while attempting to login via your social network account. Back to the <a href=\"%(login_url)s\">login page</a>"
msgstr ""
msgstr "Sosyal ağ hesabınızla giriş yapmaya çalışırken bir hata oluştu. <a href=\"%(login_url)s\">giriş sayfasına</a> geri dönün"
#: documents/templates/socialaccount/login.html:10
#, python-format
msgid "You are about to connect a new third-party account from %(provider)s."
msgstr ""
msgstr "%(provider)s üzerinden yeni bir üçüncü taraf hesabı bağlamak üzeresiniz."
#: documents/templates/socialaccount/login.html:13
msgid "Continue"
@@ -1396,7 +1396,7 @@ msgstr "Devam et"
#: documents/templates/socialaccount/signup.html:5
msgid "Paperless-ngx social account sign up"
msgstr ""
msgstr "Paperless-ngx sosyal hesap kaydı"
#: documents/templates/socialaccount/signup.html:10
#, python-format
@@ -1405,26 +1405,26 @@ msgstr "Giriş yapmak için %(provider_name)s hesabınızı kullanmak üzeresini
#: documents/templates/socialaccount/signup.html:11
msgid "As a final step, please complete the following form:"
msgstr ""
msgstr "Son adım olarak, lütfen aşağıdaki formu doldurun:"
#: documents/validators.py:24
#, python-brace-format
msgid "Unable to parse URI {value}, missing scheme"
msgstr ""
msgstr "URI {value} ayrıştırılamıyor, şema eksik"
#: documents/validators.py:29
#, python-brace-format
msgid "Unable to parse URI {value}, missing net location or path"
msgstr ""
msgstr "URI {value} ayrıştırılamıyor, ağ konumu veya yol eksik"
#: documents/validators.py:36
msgid "URI scheme '{parts.scheme}' is not allowed. Allowed schemes: {', '.join(allowed_schemes)}"
msgstr ""
msgstr "URI şeması ‘{parts.scheme}’ izin verilmez. İzin verilen şemalar: {‘, ’.join(allowed_schemes)}"
#: documents/validators.py:45
#, python-brace-format
msgid "Unable to parse URI {value}"
msgstr ""
msgstr "URI {value} işlenemiyor"
#: paperless/apps.py:11
msgid "Paperless"
@@ -1464,7 +1464,7 @@ msgstr "zorla"
#: paperless/models.py:42
msgid "skip_noarchive"
msgstr ""
msgstr "skip_noarchive"
#: paperless/models.py:50
msgid "never"
@@ -1472,7 +1472,7 @@ msgstr "asla"
#: paperless/models.py:51
msgid "with_text"
msgstr ""
msgstr "with_text"
#: paperless/models.py:52
msgid "always"
@@ -1484,7 +1484,7 @@ msgstr "temizle"
#: paperless/models.py:61
msgid "clean-final"
msgstr ""
msgstr "clean-final"
#: paperless/models.py:62
msgid "none"
@@ -1492,7 +1492,7 @@ msgstr "hiçbiri"
#: paperless/models.py:70
msgid "LeaveColorUnchanged"
msgstr ""
msgstr "RenkleriDegistirme"
#: paperless/models.py:71
msgid "RGB"
@@ -1500,7 +1500,7 @@ msgstr "RGB"
#: paperless/models.py:72
msgid "UseDeviceIndependentColor"
msgstr ""
msgstr "CihazBagimsizRenginiKullan"
#: paperless/models.py:73
msgid "Gray"
@@ -1512,15 +1512,15 @@ msgstr "CMYK"
#: paperless/models.py:83
msgid "Sets the output PDF type"
msgstr ""
msgstr "Çıktı PDF türünü ayarlar"
#: paperless/models.py:95
msgid "Do OCR from page 1 to this value"
msgstr ""
msgstr "Sayfa 1'den bu değere kadar OCR yapın"
#: paperless/models.py:101
msgid "Do OCR using these languages"
msgstr ""
msgstr "Bu dilleri kullanarak OCR yapın"
#: paperless/models.py:108
msgid "Sets the OCR mode"
@@ -1528,19 +1528,19 @@ msgstr ""
#: paperless/models.py:116
msgid "Controls the generation of an archive file"
msgstr ""
msgstr "Arşiv dosyasının oluşturulmasını kontrol eder"
#: paperless/models.py:124
msgid "Sets image DPI fallback value"
msgstr ""
msgstr "Görüntü DPI yedek değerini ayarlar"
#: paperless/models.py:131
msgid "Controls the unpaper cleaning"
msgstr ""
msgstr "Kağıt temizlemeyi kontrol eder"
#: paperless/models.py:138
msgid "Enables deskew"
msgstr ""
msgstr "Eğriliği düzeltir"
#: paperless/models.py:141
msgid "Enables page rotation"
@@ -1548,19 +1548,19 @@ msgstr "Sayfa döndürmeyi etkinleştir"
#: paperless/models.py:146
msgid "Sets the threshold for rotation of pages"
msgstr ""
msgstr "Sayfaların döndürülmesi için eşik değerini ayarlar"
#: paperless/models.py:152
msgid "Sets the maximum image size for decompression"
msgstr ""
msgstr "Sıkıştırmanın açılması için maksimum görüntü boyutunu ayarlar"
#: paperless/models.py:158
msgid "Sets the Ghostscript color conversion strategy"
msgstr ""
msgstr "Ghostscript renk dönüştürme stratejisini ayarlar"
#: paperless/models.py:166
msgid "Adds additional user arguments for OCRMyPDF"
msgstr ""
msgstr "OCRMyPDF için ek kullanıcı argümanları ekler"
#: paperless/models.py:175
msgid "Application title"
@@ -1572,39 +1572,39 @@ msgstr "Uygulama logosu"
#: paperless/models.py:197
msgid "Enables barcode scanning"
msgstr ""
msgstr "Barkod taramayı etkinleştirir"
#: paperless/models.py:203
msgid "Enables barcode TIFF support"
msgstr ""
msgstr "Barkod TIFF desteğini etkinleştirir"
#: paperless/models.py:209
msgid "Sets the barcode string"
msgstr ""
msgstr "Barkod yazısını ayarlar"
#: paperless/models.py:217
msgid "Retains split pages"
msgstr ""
msgstr "Bölünmüş sayfaları korur"
#: paperless/models.py:223
msgid "Enables ASN barcode"
msgstr ""
msgstr "ASN barkodunu etkinleştirir"
#: paperless/models.py:229
msgid "Sets the ASN barcode prefix"
msgstr ""
msgstr "ASN barkod önekini ayarlar"
#: paperless/models.py:237
msgid "Sets the barcode upscale factor"
msgstr ""
msgstr "Barkod ölçeklendirme faktörünü ayarlar"
#: paperless/models.py:244
msgid "Sets the barcode DPI"
msgstr ""
msgstr "Barkod DPI değerini ayarlar"
#: paperless/models.py:251
msgid "Sets the maximum pages for barcode"
msgstr ""
msgstr "Barkod için maksimum sayfa sayısını ayarlar"
#: paperless/models.py:258
msgid "Enables tag barcode"
@@ -2048,7 +2048,7 @@ msgstr "eylem"
#: paperless_mail/models.py:253
msgid "action parameter"
msgstr "eylem parametreleri"
msgstr "eylem parametresi"
#: paperless_mail/models.py:258
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
+1 -1
View File
@@ -209,7 +209,7 @@ class ApplicationConfigurationSerializer(serializers.ModelSerializer):
return super().update(instance, validated_data)
def validate_app_logo(self, file):
if magic.from_buffer(file.read(2048), mime=True) == "image/svg+xml":
if file and magic.from_buffer(file.read(2048), mime=True) == "image/svg+xml":
reject_dangerous_svg(file)
return file
+1 -1
View File
@@ -1,6 +1,6 @@
from typing import Final
__version__: Final[tuple[int, int, int]] = (2, 18, 0)
__version__: Final[tuple[int, int, int]] = (2, 18, 1)
# Version string like X.Y.Z
__full_version_str__: Final[str] = ".".join(map(str, __version__))
# Version string like X.Y
+16 -1
View File
@@ -1,6 +1,7 @@
import dataclasses
import email.contentmanager
import random
import time
import uuid
from collections import namedtuple
from contextlib import AbstractContextManager
@@ -385,6 +386,20 @@ class MailMocker(DirectoriesMixin, FileSystemAssertsMixin, TestCase):
apply_mail_action([], rule.pk, message.uid, message.subject, message.date)
def assert_eventually_equals(getter_fn, expected_value, timeout=1.0, interval=0.05):
"""
Repeatedly calls `getter_fn()` until the result equals `expected_value`,
or times out after `timeout` seconds.
"""
deadline = time.time() + timeout
while time.time() < deadline:
if getter_fn() == expected_value:
return
time.sleep(interval)
actual = getter_fn()
raise AssertionError(f"Expected {expected_value}, but got {actual}")
@mock.patch("paperless_mail.mail.magic.from_buffer", fake_magic_from_buffer)
class TestMail(
DirectoriesMixin,
@@ -818,7 +833,7 @@ class TestMail(
self.mail_account_handler.handle_mail_account(account)
self.mailMocker.apply_mail_actions()
self.assertEqual(len(self.mailMocker.bogus_mailbox.messages), 1)
assert_eventually_equals(lambda: len(self.mailMocker.bogus_mailbox.messages), 1)
def test_handle_mail_account_delete_no_filters(self):
account = MailAccount.objects.create(
Generated
+1 -1
View File
@@ -2006,7 +2006,7 @@ wheels = [
[[package]]
name = "paperless-ngx"
version = "2.18.0"
version = "2.18.1"
source = { virtual = "." }
dependencies = [
{ name = "babel", marker = "sys_platform == 'darwin' or sys_platform == 'linux'" },