mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2026-10-31 12:05:45 +00:00
Compare commits
15
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d98918dd97 | ||
|
|
34c88613f6 | ||
|
|
13acdabb47 | ||
|
|
b67cfdf3fd | ||
|
|
98d2ddd1c6 | ||
|
|
91b35eada6 | ||
|
|
11248f776d | ||
|
|
331fa13088 | ||
|
|
ebddd5687c | ||
|
|
2925b8de81 | ||
|
|
5e397e1222 | ||
|
|
6f99ad9469 | ||
|
|
a5d3247ca7 | ||
|
|
8a67481a9d | ||
|
|
652f964f5d |
No files matched your search
@@ -10,9 +10,11 @@ if [[ -n "${PAPERLESS_CONSUMER_DISABLE}" ]]; then
|
|||||||
else
|
else
|
||||||
cd ${PAPERLESS_SRC_DIR}
|
cd ${PAPERLESS_SRC_DIR}
|
||||||
|
|
||||||
|
# Django system checks already ran once in init-system-checks, skip repeating them
|
||||||
|
|
||||||
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
|
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
|
||||||
exec python3 manage.py document_consumer
|
exec python3 manage.py document_consumer --skip-checks
|
||||||
else
|
else
|
||||||
exec s6-setuidgid paperless python3 manage.py document_consumer
|
exec s6-setuidgid paperless python3 manage.py document_consumer --skip-checks
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -3,8 +3,9 @@
|
|||||||
|
|
||||||
cd ${PAPERLESS_SRC_DIR}
|
cd ${PAPERLESS_SRC_DIR}
|
||||||
|
|
||||||
|
# Django system checks already ran once in init-system-checks, skip repeating them
|
||||||
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
|
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
|
||||||
exec /usr/local/bin/celery --app paperless beat --loglevel INFO
|
exec /usr/local/bin/celery --skip-checks --app paperless beat --loglevel INFO
|
||||||
else
|
else
|
||||||
exec s6-setuidgid paperless /usr/local/bin/celery --app paperless beat --loglevel INFO
|
exec s6-setuidgid paperless /usr/local/bin/celery --skip-checks --app paperless beat --loglevel INFO
|
||||||
fi
|
fi
|
||||||
@@ -3,8 +3,9 @@
|
|||||||
|
|
||||||
cd ${PAPERLESS_SRC_DIR}
|
cd ${PAPERLESS_SRC_DIR}
|
||||||
|
|
||||||
|
# Django system checks already ran once in init-system-checks, skip repeating them
|
||||||
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
|
if [[ -n "${USER_IS_NON_ROOT}" ]]; then
|
||||||
exec /usr/local/bin/celery --app paperless worker --loglevel INFO --without-mingle --without-gossip
|
exec /usr/local/bin/celery --skip-checks --app paperless worker --loglevel INFO --without-mingle --without-gossip
|
||||||
else
|
else
|
||||||
exec s6-setuidgid paperless /usr/local/bin/celery --app paperless worker --loglevel INFO --without-mingle --without-gossip
|
exec s6-setuidgid paperless /usr/local/bin/celery --skip-checks --app paperless worker --loglevel INFO --without-mingle --without-gossip
|
||||||
fi
|
fi
|
||||||
@@ -1,5 +1,29 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## paperless-ngx 3.4.1
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- Fix the id\_\_ schemae in the right place [@shamoon](https://github.com/shamoon) ([#14604](https://github.com/paperless-ngx/paperless-ngx/pull/14604))
|
||||||
|
- Fix: drop redundant change perms checks on cards open button [@shamoon](https://github.com/shamoon) ([#14601](https://github.com/paperless-ngx/paperless-ngx/pull/14601))
|
||||||
|
- Tweak/fix: make new pdf controls mostly hidden [@shamoon](https://github.com/shamoon) ([#14595](https://github.com/paperless-ngx/paperless-ngx/pull/14595))
|
||||||
|
- Tweak/fix: move preview button in doc list [@shamoon](https://github.com/shamoon) ([#14594](https://github.com/paperless-ngx/paperless-ngx/pull/14594))
|
||||||
|
- Fix: checksum light mode display and cf dropdown mobile position [@shamoon](https://github.com/shamoon) ([#14590](https://github.com/paperless-ngx/paperless-ngx/pull/14590))
|
||||||
|
|
||||||
|
### All App Changes
|
||||||
|
|
||||||
|
<details>
|
||||||
|
<summary>6 changes</summary>
|
||||||
|
|
||||||
|
- Fix the id\_\_ schemae in the right place [@shamoon](https://github.com/shamoon) ([#14604](https://github.com/paperless-ngx/paperless-ngx/pull/14604))
|
||||||
|
- Fix: drop redundant change perms checks on cards open button [@shamoon](https://github.com/shamoon) ([#14601](https://github.com/paperless-ngx/paperless-ngx/pull/14601))
|
||||||
|
- Chore: Improve idle memory via more lazy imports [@stumpylog](https://github.com/stumpylog) ([#14599](https://github.com/paperless-ngx/paperless-ngx/pull/14599))
|
||||||
|
- Tweak/fix: make new pdf controls mostly hidden [@shamoon](https://github.com/shamoon) ([#14595](https://github.com/paperless-ngx/paperless-ngx/pull/14595))
|
||||||
|
- Tweak/fix: move preview button in doc list [@shamoon](https://github.com/shamoon) ([#14594](https://github.com/paperless-ngx/paperless-ngx/pull/14594))
|
||||||
|
- Fix: checksum light mode display and cf dropdown mobile position [@shamoon](https://github.com/shamoon) ([#14590](https://github.com/paperless-ngx/paperless-ngx/pull/14590))
|
||||||
|
|
||||||
|
</details>
|
||||||
|
|
||||||
## paperless-ngx 3.4.0
|
## paperless-ngx 3.4.0
|
||||||
|
|
||||||
### Features / Enhancements
|
### Features / Enhancements
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "paperless-ngx"
|
name = "paperless-ngx"
|
||||||
version = "3.4.0"
|
version = "3.4.1"
|
||||||
description = """\
|
description = """\
|
||||||
A community-supported supercharged document management system: scan, index and archive all your physical documents\
|
A community-supported supercharged document management system: scan, index and archive all your physical documents\
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ def configure_environment(instance_root: Path) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def seed_database() -> None:
|
def seed_database() -> None:
|
||||||
|
from django.contrib.auth.models import Permission
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.core.management import call_command
|
from django.core.management import call_command
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@@ -63,11 +64,18 @@ def seed_database() -> None:
|
|||||||
username="playwright",
|
username="playwright",
|
||||||
password="playwright", # NOSONAR
|
password="playwright", # NOSONAR
|
||||||
)
|
)
|
||||||
User.objects.create_user(
|
viewer = User.objects.create_user(
|
||||||
username="viewer",
|
username="viewer",
|
||||||
password="viewer", # NOSONAR
|
password="viewer", # NOSONAR
|
||||||
)
|
)
|
||||||
|
|
||||||
|
viewer.user_permissions.add(
|
||||||
|
Permission.objects.get(
|
||||||
|
content_type__app_label="documents",
|
||||||
|
codename="view_uisettings",
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
inbox = Tag.objects.create(name="Inbox", is_inbox_tag=True, owner=admin)
|
inbox = Tag.objects.create(name="Inbox", is_inbox_tag=True, owner=admin)
|
||||||
quick_filter = Tag.objects.create(name="Another Sample Tag", owner=admin)
|
quick_filter = Tag.objects.create(name="Another Sample Tag", owner=admin)
|
||||||
Tag.objects.create(name="TagWithPartial", owner=admin)
|
Tag.objects.create(name="TagWithPartial", owner=admin)
|
||||||
|
|||||||
@@ -80,12 +80,21 @@ test('should show a list of notes', async ({ page }) => {
|
|||||||
|
|
||||||
test('should support quick filters', async ({ page }) => {
|
test('should support quick filters', async ({ page }) => {
|
||||||
await page.goto('/documents/1/details')
|
await page.goto('/documents/1/details')
|
||||||
|
// filter button is available before tags have loaded
|
||||||
|
const selectedTags = page.locator('pngx-input-tags .ng-value pngx-tag')
|
||||||
|
await expect(selectedTags).toHaveCount(2)
|
||||||
|
await expect(
|
||||||
|
selectedTags.getByText('Another Sample Tag', { exact: true })
|
||||||
|
).toBeVisible()
|
||||||
|
await expect(selectedTags.getByText('Inbox', { exact: true })).toBeVisible()
|
||||||
await page
|
await page
|
||||||
.getByRole('button', { name: 'Filter documents with these Tags' })
|
.getByRole('button', { name: 'Filter documents with these Tags' })
|
||||||
.click()
|
.click()
|
||||||
await expect(page).toHaveURL(
|
await expect(page).toHaveURL((url) => {
|
||||||
/tags__id__all=2,1&sort=created&reverse=1&page=1/
|
const tags = url.searchParams.get('tags__id__all')?.split(',').sort()
|
||||||
)
|
return url.pathname === '/documents' && tags?.join(',') === '1,2'
|
||||||
|
})
|
||||||
|
await expect(page.locator('pngx-document-list')).toHaveText(/one document/i)
|
||||||
})
|
})
|
||||||
|
|
||||||
test('should finish reloading the preview after a remote document update', async ({
|
test('should finish reloading the preview after a remote document update', async ({
|
||||||
|
|||||||
@@ -6,8 +6,15 @@ test.use({
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
test('should not allow user to edit settings', async ({ page }) => {
|
test.beforeEach(async ({ page }) => {
|
||||||
|
const settingsLoaded = page.waitForResponse((response) =>
|
||||||
|
response.url().endsWith('/api/ui_settings/')
|
||||||
|
)
|
||||||
await page.goto('/dashboard')
|
await page.goto('/dashboard')
|
||||||
|
expect((await settingsLoaded).status()).toBe(200)
|
||||||
|
})
|
||||||
|
|
||||||
|
test('should not allow user to edit settings', async ({ page }) => {
|
||||||
await expect(page.getByRole('link', { name: 'Settings' })).not.toBeAttached()
|
await expect(page.getByRole('link', { name: 'Settings' })).not.toBeAttached()
|
||||||
await page.goto('/settings')
|
await page.goto('/settings')
|
||||||
await expect(page.locator('body')).toHaveText(
|
await expect(page.locator('body')).toHaveText(
|
||||||
@@ -16,7 +23,6 @@ test('should not allow user to edit settings', async ({ page }) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('should not allow user to view documents', async ({ page }) => {
|
test('should not allow user to view documents', async ({ page }) => {
|
||||||
await page.goto('/dashboard')
|
|
||||||
await expect(
|
await expect(
|
||||||
page.locator('nav').getByRole('link', { name: 'Documents' })
|
page.locator('nav').getByRole('link', { name: 'Documents' })
|
||||||
).not.toBeAttached()
|
).not.toBeAttached()
|
||||||
@@ -31,7 +37,6 @@ test('should not allow user to view documents', async ({ page }) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('should not allow user to view correspondents', async ({ page }) => {
|
test('should not allow user to view correspondents', async ({ page }) => {
|
||||||
await page.goto('/dashboard')
|
|
||||||
await expect(
|
await expect(
|
||||||
page.getByRole('link', { name: 'Attributes' })
|
page.getByRole('link', { name: 'Attributes' })
|
||||||
).not.toBeAttached()
|
).not.toBeAttached()
|
||||||
@@ -42,7 +47,6 @@ test('should not allow user to view correspondents', async ({ page }) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('should not allow user to view tags', async ({ page }) => {
|
test('should not allow user to view tags', async ({ page }) => {
|
||||||
await page.goto('/dashboard')
|
|
||||||
await expect(
|
await expect(
|
||||||
page.getByRole('link', { name: 'Attributes' })
|
page.getByRole('link', { name: 'Attributes' })
|
||||||
).not.toBeAttached()
|
).not.toBeAttached()
|
||||||
@@ -53,7 +57,6 @@ test('should not allow user to view tags', async ({ page }) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('should not allow user to view document types', async ({ page }) => {
|
test('should not allow user to view document types', async ({ page }) => {
|
||||||
await page.goto('/dashboard')
|
|
||||||
await expect(
|
await expect(
|
||||||
page.getByRole('link', { name: 'Attributes' })
|
page.getByRole('link', { name: 'Attributes' })
|
||||||
).not.toBeAttached()
|
).not.toBeAttached()
|
||||||
@@ -64,7 +67,6 @@ test('should not allow user to view document types', async ({ page }) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('should not allow user to view storage paths', async ({ page }) => {
|
test('should not allow user to view storage paths', async ({ page }) => {
|
||||||
await page.goto('/dashboard')
|
|
||||||
await expect(
|
await expect(
|
||||||
page.getByRole('link', { name: 'Attributes' })
|
page.getByRole('link', { name: 'Attributes' })
|
||||||
).not.toBeAttached()
|
).not.toBeAttached()
|
||||||
@@ -75,7 +77,6 @@ test('should not allow user to view storage paths', async ({ page }) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('should not allow user to view logs', async ({ page }) => {
|
test('should not allow user to view logs', async ({ page }) => {
|
||||||
await page.goto('/dashboard')
|
|
||||||
await expect(page.getByRole('link', { name: 'Logs' })).not.toBeAttached()
|
await expect(page.getByRole('link', { name: 'Logs' })).not.toBeAttached()
|
||||||
await page.goto('/logs')
|
await page.goto('/logs')
|
||||||
await expect(page.locator('body')).toHaveText(
|
await expect(page.locator('body')).toHaveText(
|
||||||
@@ -84,7 +85,6 @@ test('should not allow user to view logs', async ({ page }) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
test('should not allow user to view tasks', async ({ page }) => {
|
test('should not allow user to view tasks', async ({ page }) => {
|
||||||
await page.goto('/dashboard')
|
|
||||||
await expect(page.getByRole('link', { name: 'Tasks' })).not.toBeAttached()
|
await expect(page.getByRole('link', { name: 'Tasks' })).not.toBeAttached()
|
||||||
await page.goto('/tasks')
|
await page.goto('/tasks')
|
||||||
await expect(page.locator('body')).toHaveText(
|
await expect(page.locator('body')).toHaveText(
|
||||||
|
|||||||
+6
-6
@@ -4389,7 +4389,7 @@
|
|||||||
<source>Create new field</source>
|
<source>Create new field</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-dropdown/custom-fields-dropdown.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-dropdown/custom-fields-dropdown.component.html</context>
|
||||||
<context context-type="linenumber">20</context>
|
<context context-type="linenumber">19</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6973528734330066202" datatype="html">
|
<trans-unit id="6973528734330066202" datatype="html">
|
||||||
@@ -10334,18 +10334,18 @@
|
|||||||
<context context-type="linenumber">294,295</context>
|
<context context-type="linenumber">294,295</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Edit document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">328</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Edit document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">331</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "paperless-ngx-ui",
|
"name": "paperless-ngx-ui",
|
||||||
"version": "3.4.0",
|
"version": "3.4.1",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"preinstall": "npx only-allow pnpm",
|
"preinstall": "npx only-allow pnpm",
|
||||||
"ng": "ng",
|
"ng": "ng",
|
||||||
|
|||||||
+2
-4
@@ -11,14 +11,12 @@
|
|||||||
</div>
|
</div>
|
||||||
@for (field of filteredFields; track field.id) {
|
@for (field of filteredFields; track field.id) {
|
||||||
<button type="button" class="list-group-item list-group-item-action bg-light" (click)="addField(field)" #button>
|
<button type="button" class="list-group-item list-group-item-action bg-light" (click)="addField(field)" #button>
|
||||||
<small class="d-flex">{{field.name}} <small class="ms-auto text-muted">{{getDataTypeLabel(field.data_type)}}</small></small>
|
<div class="d-flex">{{field.name}} <small class="ms-auto text-muted">{{getDataTypeLabel(field.data_type)}}</small></div>
|
||||||
</button>
|
</button>
|
||||||
}
|
}
|
||||||
@if (!filterText?.length || filteredFields.length === 0) {
|
@if (!filterText?.length || filteredFields.length === 0) {
|
||||||
<button type="button" class="list-group-item list-group-item-action bg-light" (click)="createField(filterText)" [disabled]="!canCreateFields" #button>
|
<button type="button" class="list-group-item list-group-item-action bg-light" (click)="createField(filterText)" [disabled]="!canCreateFields" #button>
|
||||||
<small>
|
<i-bs width=".9em" height=".9em" name="asterisk" class="me-1"></i-bs><ng-container i18n>Create new field</ng-container>
|
||||||
<i-bs width=".9em" height=".9em" name="asterisk" class="me-1"></i-bs><ng-container i18n>Create new field</ng-container>
|
|
||||||
</small>
|
|
||||||
</button>
|
</button>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -465,7 +465,7 @@
|
|||||||
@switch (archiveContentRenderType) {
|
@switch (archiveContentRenderType) {
|
||||||
@case (ContentRenderType.PDF) {
|
@case (ContentRenderType.PDF) {
|
||||||
@if (!useNativePdfViewer) {
|
@if (!useNativePdfViewer) {
|
||||||
<div class="preview-sticky pdf-viewer-container">
|
<div class="preview-sticky pdf-viewer-container" tabindex="-1">
|
||||||
<pngx-pdf-viewer
|
<pngx-pdf-viewer
|
||||||
[src]="pdfSource()"
|
[src]="pdfSource()"
|
||||||
[sourceRevision]="previewRevision()"
|
[sourceRevision]="previewRevision()"
|
||||||
@@ -477,7 +477,7 @@
|
|||||||
(loadError)="onError($event)"
|
(loadError)="onError($event)"
|
||||||
(afterLoadComplete)="pdfPreviewLoaded($event)">
|
(afterLoadComplete)="pdfPreviewLoaded($event)">
|
||||||
</pngx-pdf-viewer>
|
</pngx-pdf-viewer>
|
||||||
<div class="position-absolute bottom-0 start-50 translate-middle-x z-1 mb-3 d-flex gap-2 p-1 bg-body border rounded shadow">
|
<div class="preview-controls position-absolute bottom-0 start-50 translate-middle-x z-1 mb-3 d-flex gap-2 p-1 bg-body border rounded shadow">
|
||||||
@if (previewNumPages()) {
|
@if (previewNumPages()) {
|
||||||
<div class="input-group input-group-sm w-auto flex-nowrap">
|
<div class="input-group input-group-sm w-auto flex-nowrap">
|
||||||
<input class="form-control flex-grow-0 w-auto" type="number" min="1" [max]="previewNumPages()" [ngModelOptions]="{standalone: true}" [ngModel]="previewCurrentPage()" (ngModelChange)="previewCurrentPage.set($event)" aria-label="Page" i18n-aria-label />
|
<input class="form-control flex-grow-0 w-auto" type="number" min="1" [max]="previewNumPages()" [ngModelOptions]="{standalone: true}" [ngModel]="previewCurrentPage()" (ngModelChange)="previewCurrentPage.set($event)" aria-label="Page" i18n-aria-label />
|
||||||
|
|||||||
@@ -12,6 +12,22 @@
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.preview-controls {
|
||||||
|
opacity: 0;
|
||||||
|
pointer-events: none;
|
||||||
|
transition: opacity 0.15s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover .preview-controls,
|
||||||
|
&:focus-within .preview-controls {
|
||||||
|
opacity: 1;
|
||||||
|
pointer-events: auto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-group .dropdown-toggle-split {
|
.btn-group .dropdown-toggle-split {
|
||||||
|
|||||||
+1
-1
@@ -72,7 +72,7 @@
|
|||||||
<a class="btn btn-sm btn-outline-secondary" (click)="clickMoreLike.emit()">
|
<a class="btn btn-sm btn-outline-secondary" (click)="clickMoreLike.emit()">
|
||||||
<i-bs name="diagram-3" class="me-1"></i-bs><span class="d-none d-md-inline" i18n>More like this</span>
|
<i-bs name="diagram-3" class="me-1"></i-bs><span class="d-none d-md-inline" i18n>More like this</span>
|
||||||
</a>
|
</a>
|
||||||
<a routerLink="/documents/{{document().id}}" class="btn btn-sm btn-outline-secondary" *pngxIfPermissions="{ action: PermissionAction.Change, type: PermissionType.Document }">
|
<a routerLink="/documents/{{document().id}}" class="btn btn-sm btn-outline-secondary">
|
||||||
<i-bs name="file-earmark-richtext" class="me-1"></i-bs><span class="d-none d-md-inline" i18n>Open</span>
|
<i-bs name="file-earmark-richtext" class="me-1"></i-bs><span class="d-none d-md-inline" i18n>Open</span>
|
||||||
</a>
|
</a>
|
||||||
<pngx-preview-popup [document]="document()" #popupPreview>
|
<pngx-preview-popup [document]="document()" #popupPreview>
|
||||||
|
|||||||
-2
@@ -10,7 +10,6 @@ import {
|
|||||||
NgbTooltipModule,
|
NgbTooltipModule,
|
||||||
} from '@ng-bootstrap/ng-bootstrap'
|
} from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons'
|
import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons'
|
||||||
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
|
|
||||||
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
|
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
|
||||||
import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe'
|
import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe'
|
||||||
import { IsNumberPipe } from 'src/app/pipes/is-number.pipe'
|
import { IsNumberPipe } from 'src/app/pipes/is-number.pipe'
|
||||||
@@ -52,7 +51,6 @@ describe('DocumentCardLargeComponent', () => {
|
|||||||
DocumentCardLargeComponent,
|
DocumentCardLargeComponent,
|
||||||
DocumentTitlePipe,
|
DocumentTitlePipe,
|
||||||
CustomDatePipe,
|
CustomDatePipe,
|
||||||
IfPermissionsDirective,
|
|
||||||
SafeUrlPipe,
|
SafeUrlPipe,
|
||||||
IsNumberPipe,
|
IsNumberPipe,
|
||||||
PreviewPopupComponent,
|
PreviewPopupComponent,
|
||||||
|
|||||||
-2
@@ -20,7 +20,6 @@ import {
|
|||||||
Document,
|
Document,
|
||||||
} from 'src/app/data/document'
|
} from 'src/app/data/document'
|
||||||
import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
|
import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
|
||||||
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
|
|
||||||
import { CorrespondentNamePipe } from 'src/app/pipes/correspondent-name.pipe'
|
import { CorrespondentNamePipe } from 'src/app/pipes/correspondent-name.pipe'
|
||||||
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
|
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
|
||||||
import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe'
|
import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe'
|
||||||
@@ -51,7 +50,6 @@ import { LoadingComponentWithPermissions } from '../../loading-component/loading
|
|||||||
CorrespondentNamePipe,
|
CorrespondentNamePipe,
|
||||||
DocumentTypeNamePipe,
|
DocumentTypeNamePipe,
|
||||||
StoragePathNamePipe,
|
StoragePathNamePipe,
|
||||||
IfPermissionsDirective,
|
|
||||||
CustomDatePipe,
|
CustomDatePipe,
|
||||||
RouterModule,
|
RouterModule,
|
||||||
NgbTooltipModule,
|
NgbTooltipModule,
|
||||||
|
|||||||
+1
-1
@@ -144,7 +144,7 @@
|
|||||||
<div class="d-flex justify-content-between align-items-center">
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
<div class="btn-group w-100">
|
<div class="btn-group w-100">
|
||||||
@if (document()) {
|
@if (document()) {
|
||||||
<a routerLink="/documents/{{document().id}}" class="btn btn-sm btn-outline-secondary" title="Open" i18n-title *pngxIfPermissions="{ action: PermissionAction.Change, type: PermissionType.Document }" i18n-title>
|
<a routerLink="/documents/{{document().id}}" class="btn btn-sm btn-outline-secondary" title="Open" i18n-title>
|
||||||
<i-bs name="file-earmark-richtext"></i-bs>
|
<i-bs name="file-earmark-richtext"></i-bs>
|
||||||
</a>
|
</a>
|
||||||
<pngx-preview-popup [document]="document()" #popupPreview>
|
<pngx-preview-popup [document]="document()" #popupPreview>
|
||||||
|
|||||||
-2
@@ -20,7 +20,6 @@ import {
|
|||||||
Document,
|
Document,
|
||||||
} from 'src/app/data/document'
|
} from 'src/app/data/document'
|
||||||
import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
|
import { SETTINGS_KEYS } from 'src/app/data/ui-settings'
|
||||||
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
|
|
||||||
import { CorrespondentNamePipe } from 'src/app/pipes/correspondent-name.pipe'
|
import { CorrespondentNamePipe } from 'src/app/pipes/correspondent-name.pipe'
|
||||||
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
|
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
|
||||||
import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe'
|
import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe'
|
||||||
@@ -51,7 +50,6 @@ import { LoadingComponentWithPermissions } from '../../loading-component/loading
|
|||||||
CorrespondentNamePipe,
|
CorrespondentNamePipe,
|
||||||
DocumentTypeNamePipe,
|
DocumentTypeNamePipe,
|
||||||
StoragePathNamePipe,
|
StoragePathNamePipe,
|
||||||
IfPermissionsDirective,
|
|
||||||
CustomDatePipe,
|
CustomDatePipe,
|
||||||
RouterModule,
|
RouterModule,
|
||||||
NgbTooltipModule,
|
NgbTooltipModule,
|
||||||
|
|||||||
@@ -208,7 +208,7 @@
|
|||||||
i18n>Correspondent</th>
|
i18n>Correspondent</th>
|
||||||
}
|
}
|
||||||
@if (activeDisplayFields.includes(DisplayField.TITLE)) {
|
@if (activeDisplayFields.includes(DisplayField.TITLE)) {
|
||||||
<th class="cursor-pointer"
|
<th class="cursor-pointer ps-5"
|
||||||
pngxSortable="title"
|
pngxSortable="title"
|
||||||
title="Sort by title" i18n-title
|
title="Sort by title" i18n-title
|
||||||
[currentSortField]="list.sortField"
|
[currentSortField]="list.sortField"
|
||||||
@@ -322,13 +322,13 @@
|
|||||||
</td>
|
</td>
|
||||||
}
|
}
|
||||||
@if (activeDisplayFields.includes(DisplayField.TITLE) || activeDisplayFields.includes(DisplayField.TAGS)) {
|
@if (activeDisplayFields.includes(DisplayField.TITLE) || activeDisplayFields.includes(DisplayField.TAGS)) {
|
||||||
<td width="30%">
|
<td width="30%" class="position-relative" [class.ps-5]="activeDisplayFields.includes(DisplayField.TITLE)">
|
||||||
@if (activeDisplayFields.includes(DisplayField.TITLE)) {
|
@if (activeDisplayFields.includes(DisplayField.TITLE)) {
|
||||||
<div class="d-inline-block" (mouseleave)="popupPreview.close()">
|
<div class="d-inline-block" (mouseleave)="popupPreview.close()">
|
||||||
<a routerLink="/documents/{{d.id}}" title="Edit document" i18n-title style="overflow-wrap: anywhere;">{{d.title | documentTitle}}</a>
|
<pngx-preview-popup class="position-absolute start-0" [document]="d" linkClasses="btn btn-sm btn-link text-secondary" linkTitle="Preview document" (click)="$event.stopPropagation()" i18n-linkTitle #popupPreview>
|
||||||
<pngx-preview-popup [document]="d" linkClasses="btn btn-sm btn-link text-secondary" linkTitle="Preview document" (click)="$event.stopPropagation()" i18n-linkTitle #popupPreview>
|
|
||||||
<i-bs name="eye"></i-bs>
|
<i-bs name="eye"></i-bs>
|
||||||
</pngx-preview-popup>
|
</pngx-preview-popup>
|
||||||
|
<a routerLink="/documents/{{d.id}}" title="Edit document" i18n-title style="overflow-wrap: anywhere;">{{d.title | documentTitle}}</a>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@if (activeDisplayFields.includes(DisplayField.TAGS)) {
|
@if (activeDisplayFields.includes(DisplayField.TAGS)) {
|
||||||
|
|||||||
@@ -87,6 +87,10 @@ $paperless-card-breakpoints: (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.table .ps-5 {
|
||||||
|
padding-left: 2.2rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ export const environment = {
|
|||||||
apiVersion: '10', // match src/paperless/settings.py
|
apiVersion: '10', // match src/paperless/settings.py
|
||||||
appTitle: DEFAULT_APP_TITLE,
|
appTitle: DEFAULT_APP_TITLE,
|
||||||
tag: 'prod',
|
tag: 'prod',
|
||||||
version: '3.4.0',
|
version: '3.4.1',
|
||||||
webSocketHost: window.location.host,
|
webSocketHost: window.location.host,
|
||||||
webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:',
|
webSocketProtocol: window.location.protocol == 'https:' ? 'wss:' : 'ws:',
|
||||||
webSocketBaseUrl: base_url.pathname + 'ws/',
|
webSocketBaseUrl: base_url.pathname + 'ws/',
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Wysig dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Wysig dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="needs-translation">Edit document</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Edit document</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">تعديل المستند</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">تعديل المستند</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Рэдагаваць дакумент</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Рэдагаваць дакумент</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Сортирай по: <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Сортирай по: <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Редактиране на документа</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Визуализация на документа</target>
|
<target state="translated">Визуализация на документа</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Редактиране на документа</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Ordena per <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Ordena per <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Edita document</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Previsualitza document</target>
|
<target state="translated">Previsualitza document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Edita document</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Seřadit podle <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Seřadit podle <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Upravit dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Náhled dokumentu</target>
|
<target state="translated">Náhled dokumentu</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Upravit dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="needs-translation">Edit document</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Edit document</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Nach <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> sortieren</target>
|
<target state="translated">Nach <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> sortieren</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Dokument bearbeiten</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Dokumentenvorschau</target>
|
<target state="translated">Dokumentenvorschau</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Dokument bearbeiten</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -4795,7 +4795,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||||
<context context-type="linenumber">38</context>
|
<context context-type="linenumber">38</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Date mode</target>
|
<target state="translated">Datumsmodus</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7572800523712857519" datatype="html">
|
<trans-unit id="7572800523712857519" datatype="html">
|
||||||
<source>Fixed date</source>
|
<source>Fixed date</source>
|
||||||
@@ -4807,7 +4807,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||||
<context context-type="linenumber">40</context>
|
<context context-type="linenumber">40</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Fixed date</target>
|
<target state="translated">Festes Datum</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4108478337308251505" datatype="html">
|
<trans-unit id="4108478337308251505" datatype="html">
|
||||||
<source>Fixed</source>
|
<source>Fixed</source>
|
||||||
@@ -4815,7 +4815,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||||
<context context-type="linenumber">41,42</context>
|
<context context-type="linenumber">41,42</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Fixed</target>
|
<target state="translated">Fixiert</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8283919074858117329" datatype="html">
|
<trans-unit id="8283919074858117329" datatype="html">
|
||||||
<source>Relative date</source>
|
<source>Relative date</source>
|
||||||
@@ -4827,7 +4827,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||||
<context context-type="linenumber">44</context>
|
<context context-type="linenumber">44</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Relative date</target>
|
<target state="translated">Relatives Datum</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2731996625798485199" datatype="html">
|
<trans-unit id="2731996625798485199" datatype="html">
|
||||||
<source>Relative</source>
|
<source>Relative</source>
|
||||||
@@ -4835,7 +4835,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||||
<context context-type="linenumber">45,46</context>
|
<context context-type="linenumber">45,46</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Relative</target>
|
<target state="translated">Relativ</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6533918067030990396" datatype="html">
|
<trans-unit id="6533918067030990396" datatype="html">
|
||||||
<source>Amount</source>
|
<source>Amount</source>
|
||||||
@@ -4843,7 +4843,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||||
<context context-type="linenumber">51</context>
|
<context context-type="linenumber">51</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Amount</target>
|
<target state="translated">Anzahl</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="8932917860978648376" datatype="html">
|
<trans-unit id="8932917860978648376" datatype="html">
|
||||||
<source>Unit</source>
|
<source>Unit</source>
|
||||||
@@ -4851,7 +4851,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||||
<context context-type="linenumber">56,57</context>
|
<context context-type="linenumber">56,57</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Unit</target>
|
<target state="translated">Einheit</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="9138811584797805840" datatype="html">
|
<trans-unit id="9138811584797805840" datatype="html">
|
||||||
<source>Open date picker</source>
|
<source>Open date picker</source>
|
||||||
@@ -4991,7 +4991,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.html</context>
|
||||||
<context context-type="linenumber">119,120</context>
|
<context context-type="linenumber">119,120</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Operator</target>
|
<target state="translated">Operator</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2328549728463836983" datatype="html">
|
<trans-unit id="2328549728463836983" datatype="html">
|
||||||
<source>Remove query</source>
|
<source>Remove query</source>
|
||||||
@@ -5051,7 +5051,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">330</context>
|
<context context-type="linenumber">330</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">days ago</target>
|
<target state="translated">vor Tagen</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2871318661796659216" datatype="html">
|
<trans-unit id="2871318661796659216" datatype="html">
|
||||||
<source>weeks ago</source>
|
<source>weeks ago</source>
|
||||||
@@ -5059,7 +5059,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">331</context>
|
<context context-type="linenumber">331</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">weeks ago</target>
|
<target state="translated">vor Wochen</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6041340836190906216" datatype="html">
|
<trans-unit id="6041340836190906216" datatype="html">
|
||||||
<source>months ago</source>
|
<source>months ago</source>
|
||||||
@@ -5067,7 +5067,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">332</context>
|
<context context-type="linenumber">332</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">months ago</target>
|
<target state="translated">vor Monaten</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="963494111451627204" datatype="html">
|
<trans-unit id="963494111451627204" datatype="html">
|
||||||
<source>years ago</source>
|
<source>years ago</source>
|
||||||
@@ -5075,7 +5075,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">333</context>
|
<context context-type="linenumber">333</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">years ago</target>
|
<target state="translated">vor Jahren</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5555905617885007774" datatype="html">
|
<trans-unit id="5555905617885007774" datatype="html">
|
||||||
<source>days from now</source>
|
<source>days from now</source>
|
||||||
@@ -5083,7 +5083,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">334</context>
|
<context context-type="linenumber">334</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">days from now</target>
|
<target state="translated">Tage von heute an</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="4298377021616940216" datatype="html">
|
<trans-unit id="4298377021616940216" datatype="html">
|
||||||
<source>weeks from now</source>
|
<source>weeks from now</source>
|
||||||
@@ -5091,7 +5091,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">335</context>
|
<context context-type="linenumber">335</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">weeks from now</target>
|
<target state="translated">Wochen von heute an</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2772874767134148305" datatype="html">
|
<trans-unit id="2772874767134148305" datatype="html">
|
||||||
<source>months from now</source>
|
<source>months from now</source>
|
||||||
@@ -5099,7 +5099,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">336</context>
|
<context context-type="linenumber">336</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">months from now</target>
|
<target state="translated">Monate von heute an</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6363533917780225967" datatype="html">
|
<trans-unit id="6363533917780225967" datatype="html">
|
||||||
<source>years from now</source>
|
<source>years from now</source>
|
||||||
@@ -5107,7 +5107,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
<context context-type="sourcefile">src/app/components/common/custom-fields-query-dropdown/custom-fields-query-dropdown.component.ts</context>
|
||||||
<context context-type="linenumber">337</context>
|
<context context-type="linenumber">337</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">years from now</target>
|
<target state="translated">Jahr von heute an</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="6630533861307510614" datatype="html">
|
<trans-unit id="6630533861307510614" datatype="html">
|
||||||
<source>Clear created relative date</source>
|
<source>Clear created relative date</source>
|
||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="final">Nach <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> sortieren</target>
|
<target state="final">Nach <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> sortieren</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html" approved="yes">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="final">Dokument bearbeiten</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html" approved="yes">
|
<trans-unit id="3420321797707163677" datatype="html" approved="yes">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="final">Dokumentenvorschau</target>
|
<target state="final">Dokumentenvorschau</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html" approved="yes">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="final">Dokument bearbeiten</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html" approved="yes">
|
<trans-unit id="4512084577073831437" datatype="html" approved="yes">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Επεξεργασία εγγράφου</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Επεξεργασία εγγράφου</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Ordenar por <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Ordenar por <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Editar documento</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Previsualizar documento</target>
|
<target state="translated">Previsualizar documento</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Editar documento</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="needs-translation">Edit document</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Edit document</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">سند ویرایش</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">سند پیش نمایش</target>
|
<target state="translated">سند پیش نمایش</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">سند ویرایش</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Muokkaa asiakirjaa</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Esikatsele asiakirja</target>
|
<target state="translated">Esikatsele asiakirja</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Muokkaa asiakirjaa</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -3719,7 +3719,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/admin/users-groups/users-groups.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/users-groups/users-groups.component.ts</context>
|
||||||
<context context-type="linenumber">163</context>
|
<context context-type="linenumber">163</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Erreur lors de la supression de l’utilisateur « <x id="PH" equiv-text="user.username"/> ».</target>
|
<target state="translated">Erreur lors de la suppression de l’utilisateur « <x id="PH" equiv-text="user.username"/> ».</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="5766640174051730159" datatype="html" approved="yes">
|
<trans-unit id="5766640174051730159" datatype="html" approved="yes">
|
||||||
<source>Saved group "<x id="PH" equiv-text="newGroup.name"/>".</source>
|
<source>Saved group "<x id="PH" equiv-text="newGroup.name"/>".</source>
|
||||||
@@ -3767,7 +3767,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/admin/users-groups/users-groups.component.ts</context>
|
<context context-type="sourcefile">src/app/components/admin/users-groups/users-groups.component.ts</context>
|
||||||
<context context-type="linenumber">220</context>
|
<context context-type="linenumber">220</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Erreur lors de la supression du groupe « <x id="PH" equiv-text="group.name"/> ».</target>
|
<target state="translated">Erreur lors de la suppression du groupe « <x id="PH" equiv-text="group.name"/> ».</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7931334600001636863" datatype="html" approved="yes">
|
<trans-unit id="7931334600001636863" datatype="html" approved="yes">
|
||||||
<source>by Paperless-ngx</source>
|
<source>by Paperless-ngx</source>
|
||||||
@@ -6935,7 +6935,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context>
|
<context context-type="sourcefile">src/app/components/common/edit-dialog/workflow-edit-dialog/workflow-edit-dialog.component.html</context>
|
||||||
<context context-type="linenumber">410</context>
|
<context context-type="linenumber">410</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Destinatires du courriel</target>
|
<target state="translated">Destinataires du courriel</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="7916910101279824329" datatype="html">
|
<trans-unit id="7916910101279824329" datatype="html">
|
||||||
<source>Attach document</source>
|
<source>Attach document</source>
|
||||||
@@ -10930,7 +10930,7 @@
|
|||||||
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
|
||||||
<context context-type="linenumber">8,9</context>
|
<context context-type="linenumber">8,9</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated"><x id="INTERPOLATION" equiv-text="{{ document().title | documentTitle }}"/> mignature</target>
|
<target state="translated"><x id="INTERPOLATION" equiv-text="{{ document().title | documentTitle }}"/> miniature</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2784168796433474565" datatype="html" approved="yes">
|
<trans-unit id="2784168796433474565" datatype="html" approved="yes">
|
||||||
<source>Filter by tag</source>
|
<source>Filter by tag</source>
|
||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Trier par <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Trier par <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html" approved="yes">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="final">Modifier le document</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Prévisualiser le document</target>
|
<target state="translated">Prévisualiser le document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html" approved="yes">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="final">Modifier le document</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">מיון לפי <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">מיון לפי <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">עריכת מסמך</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">תצוגה מקדימה של המסמך</target>
|
<target state="translated">תצוגה מקדימה של המסמך</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">עריכת מסמך</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="needs-translation">Edit document</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Edit document</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Sortiraj po <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Sortiraj po <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Uredi dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Pregledaj dokument</target>
|
<target state="translated">Pregledaj dokument</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Uredi dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Rendezés <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> szerint</target>
|
<target state="translated">Rendezés <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> szerint</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Dokumentum szerkesztése</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Dokumentum előnézete</target>
|
<target state="translated">Dokumentum előnézete</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Dokumentum szerkesztése</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Urutkan berdasarkan <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Urutkan berdasarkan <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Edit dokumen</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Pratinjau dokumen</target>
|
<target state="translated">Pratinjau dokumen</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Edit dokumen</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Ordina per <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Ordina per <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Modifica documento</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Anteprima documento</target>
|
<target state="translated">Anteprima documento</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Modifica documento</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated"><x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> でソート</target>
|
<target state="translated"><x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> でソート</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">ドキュメントを編集</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">ドキュメントのプレビュー</target>
|
<target state="translated">ドキュメントのプレビュー</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">ドキュメントを編集</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">문서 수정</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">문서 미리보기</target>
|
<target state="translated">문서 미리보기</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">문서 수정</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Dokument editéieren</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Dokument editéieren</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="needs-translation">Edit document</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Edit document</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Rediģēt dokumentu</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Rediģēt dokumentu</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
+1503
-1504
File diff suppressed because it is too large.
Load diff
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="needs-translation">Edit document</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="needs-translation">Edit document</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Sorteer op <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Sorteer op <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Document bewerken</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Voorbeeld van document</target>
|
<target state="translated">Voorbeeld van document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Document bewerken</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Sorter etter <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Sorter etter <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Rediger dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Forhåndsvis dokument</target>
|
<target state="translated">Forhåndsvis dokument</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Rediger dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Sortuj według <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Sortuj według <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Edytuj dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Podgląd dokumentu</target>
|
<target state="translated">Podgląd dokumentu</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Edytuj dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11398,22 +11398,22 @@ Erro ao enviar documentos por e-mail</target>
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Ordenar por <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Ordenar por <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Editar documento</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Prévisualizar documento</target>
|
<target state="translated">Prévisualizar documento</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Editar documento</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Editar documento</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Editar documento</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Sortează după <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Sortează după <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Editează document</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Previzualizare document</target>
|
<target state="translated">Previzualizare document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Editează document</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Сортировать по <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Сортировать по <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Изменить документ</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Предпросмотр документа</target>
|
<target state="translated">Предпросмотр документа</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Изменить документ</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11398,22 +11398,22 @@ zhodujúce sa</target>
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Upraviť dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Upraviť dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Razvrsti po <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Razvrsti po <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Uredi dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Predogled dokumenta</target>
|
<target state="translated">Predogled dokumenta</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Uredi dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Rendit by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Rendit by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Redakto dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Preview dokument</target>
|
<target state="translated">Preview dokument</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Redakto dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11398,22 +11398,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Složi prema <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Složi prema <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Uredi dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Pregledaj dokument</target>
|
<target state="translated">Pregledaj dokument</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Uredi dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Sortera efter <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="translated">Sortera efter <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Redigera dokument</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Förhandsvisa dokument</target>
|
<target state="translated">Förhandsvisa dokument</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Redigera dokument</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">แก้ไขเอกสาร</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Preview document</target>
|
<target state="needs-translation">Preview document</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">แก้ไขเอกสาร</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11398,22 +11398,22 @@ tüm <x id="CLOSE_EMPHASISED_TEXT" ctype="x-em" equiv-text="</em>"/> krite
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated"><x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> göre sırala</target>
|
<target state="translated"><x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> göre sırala</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Belgeyi düzenle</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Belgeyi ön izle</target>
|
<target state="translated">Belgeyi ön izle</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Belgeyi düzenle</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
<target state="needs-translation">Sort by <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">Редагувати документ</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">Попередній перегляд документа</target>
|
<target state="translated">Попередній перегляд документа</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">Редагувати документ</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11459,22 +11459,22 @@
|
|||||||
Sắp xếp theo
|
Sắp xếp theo
|
||||||
</target>
|
</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html" approved="yes">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="final">Chỉnh sửa tài liệu</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html" approved="yes">
|
<trans-unit id="3420321797707163677" datatype="html" approved="yes">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="final">Xem trước tài liệu</target>
|
<target state="final">Xem trước tài liệu</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html" approved="yes">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="final">Chỉnh sửa tài liệu</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html" approved="yes">
|
<trans-unit id="4512084577073831437" datatype="html" approved="yes">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11396,22 +11396,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">按 <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> 排序</target>
|
<target state="translated">按 <x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/> 排序</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">编辑文档</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">预览文档</target>
|
<target state="translated">预览文档</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">编辑文档</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -11397,22 +11397,22 @@
|
|||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">以<x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/>排序</target>
|
<target state="translated">以<x id="INTERPOLATION" equiv-text="{{getDisplayCustomFieldTitle(field_id)}}"/>排序</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="2179847500064178686" datatype="html">
|
|
||||||
<source>Edit document</source>
|
|
||||||
<context-group purpose="location">
|
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
|
||||||
<context context-type="linenumber">328</context>
|
|
||||||
</context-group>
|
|
||||||
<target state="translated">編輯文件</target>
|
|
||||||
</trans-unit>
|
|
||||||
<trans-unit id="3420321797707163677" datatype="html">
|
<trans-unit id="3420321797707163677" datatype="html">
|
||||||
<source>Preview document</source>
|
<source>Preview document</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
<context context-type="linenumber">329</context>
|
<context context-type="linenumber">328</context>
|
||||||
</context-group>
|
</context-group>
|
||||||
<target state="translated">預覽文件</target>
|
<target state="translated">預覽文件</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="2179847500064178686" datatype="html">
|
||||||
|
<source>Edit document</source>
|
||||||
|
<context-group purpose="location">
|
||||||
|
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
|
||||||
|
<context context-type="linenumber">331</context>
|
||||||
|
</context-group>
|
||||||
|
<target state="translated">編輯文件</target>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="4512084577073831437" datatype="html">
|
<trans-unit id="4512084577073831437" datatype="html">
|
||||||
<source>Reset filters / selection</source>
|
<source>Reset filters / selection</source>
|
||||||
<context-group purpose="location">
|
<context-group purpose="location">
|
||||||
|
|||||||
@@ -10,9 +10,6 @@ from typing import TYPE_CHECKING
|
|||||||
import regex as regex_mod
|
import regex as regex_mod
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from pdf2image import convert_from_path
|
from pdf2image import convert_from_path
|
||||||
from pikepdf import Page
|
|
||||||
from pikepdf import PasswordError
|
|
||||||
from pikepdf import Pdf
|
|
||||||
|
|
||||||
from documents.converters import convert_from_tiff_to_pdf
|
from documents.converters import convert_from_tiff_to_pdf
|
||||||
from documents.data_models import ConsumableDocument
|
from documents.data_models import ConsumableDocument
|
||||||
@@ -34,6 +31,7 @@ from documents.utils import maybe_override_pixel_limit
|
|||||||
from paperless.config import BarcodeConfig
|
from paperless.config import BarcodeConfig
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
|
from pikepdf import Page
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
logger = logging.getLogger("paperless.barcodes")
|
logger = logging.getLogger("paperless.barcodes")
|
||||||
@@ -282,6 +280,8 @@ class BarcodePlugin(ConsumeTaskPlugin):
|
|||||||
# No op if not a TIFF
|
# No op if not a TIFF
|
||||||
self.convert_from_tiff_to_pdf()
|
self.convert_from_tiff_to_pdf()
|
||||||
|
|
||||||
|
from pikepdf import PasswordError
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.barcodes = scan_pdf(
|
self.barcodes = scan_pdf(
|
||||||
self.pdf_file,
|
self.pdf_file,
|
||||||
@@ -433,6 +433,8 @@ class BarcodePlugin(ConsumeTaskPlugin):
|
|||||||
|
|
||||||
document_paths = []
|
document_paths = []
|
||||||
fname: str = self.input_doc.original_file.stem
|
fname: str = self.input_doc.original_file.stem
|
||||||
|
from pikepdf import Pdf
|
||||||
|
|
||||||
with Pdf.open(self.pdf_file) as input_pdf:
|
with Pdf.open(self.pdf_file) as input_pdf:
|
||||||
# Start with an empty document
|
# Start with an empty document
|
||||||
current_document: list[Page] = []
|
current_document: list[Page] = []
|
||||||
@@ -516,6 +518,8 @@ def scan_pdf(pdf_path: Path, settings: BarcodeConfig, work_dir: Path) -> list[Ba
|
|||||||
"""
|
"""
|
||||||
barcodes: list[Barcode] = []
|
barcodes: list[Barcode] = []
|
||||||
|
|
||||||
|
from pikepdf import Pdf
|
||||||
|
|
||||||
with Pdf.open(pdf_path) as pdf:
|
with Pdf.open(pdf_path) as pdf:
|
||||||
num_of_pages = len(pdf.pages)
|
num_of_pages = len(pdf.pages)
|
||||||
logger.debug(f"PDF has {num_of_pages} pages")
|
logger.debug(f"PDF has {num_of_pages} pages")
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import img2pdf
|
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from documents.utils import copy_basic_file_stats
|
from documents.utils import copy_basic_file_stats
|
||||||
@@ -17,6 +16,8 @@ def convert_from_tiff_to_pdf(tiff_path: Path, target_directory: Path) -> Path:
|
|||||||
|
|
||||||
Returns the path of the PDF created.
|
Returns the path of the PDF created.
|
||||||
"""
|
"""
|
||||||
|
import img2pdf
|
||||||
|
|
||||||
# override pixel setting if needed
|
# override pixel setting if needed
|
||||||
maybe_override_pixel_limit()
|
maybe_override_pixel_limit()
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ from pathlib import Path
|
|||||||
from typing import Final
|
from typing import Final
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from pikepdf import Pdf
|
|
||||||
|
|
||||||
from documents.consumer import ConsumerError
|
from documents.consumer import ConsumerError
|
||||||
from documents.converters import convert_from_tiff_to_pdf
|
from documents.converters import convert_from_tiff_to_pdf
|
||||||
@@ -85,6 +84,8 @@ class CollatePlugin(NoCleanupPluginMixin, NoSetupPluginMixin, ConsumeTaskPlugin)
|
|||||||
valid_staging_exists = True
|
valid_staging_exists = True
|
||||||
|
|
||||||
if valid_staging_exists:
|
if valid_staging_exists:
|
||||||
|
from pikepdf import Pdf
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Collate pages from second PDF in reverse order
|
# Collate pages from second PDF in reverse order
|
||||||
with Pdf.open(staging) as pdf1, Pdf.open(pdf_file) as pdf2:
|
with Pdf.open(staging) as pdf1, Pdf.open(pdf_file) as pdf2:
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ from decimal import InvalidOperation
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
import dateparser
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.db.models import Case
|
from django.db.models import Case
|
||||||
@@ -350,6 +349,8 @@ class DateQueryField(serializers.DateField):
|
|||||||
if not isinstance(value, str):
|
if not isinstance(value, str):
|
||||||
raise
|
raise
|
||||||
|
|
||||||
|
import dateparser
|
||||||
|
|
||||||
try:
|
try:
|
||||||
parsed = dateparser.parse(
|
parsed = dateparser.parse(
|
||||||
value,
|
value,
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ from __future__ import annotations
|
|||||||
from typing import TYPE_CHECKING
|
from typing import TYPE_CHECKING
|
||||||
from typing import NamedTuple
|
from typing import NamedTuple
|
||||||
|
|
||||||
import pikepdf
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from collections.abc import Callable
|
from collections.abc import Callable
|
||||||
from collections.abc import Iterable
|
from collections.abc import Iterable
|
||||||
@@ -43,6 +41,8 @@ def rotate_pdf(src: Path, dst: Path, degrees: int) -> None:
|
|||||||
Rotate every page relatively on the opened document, not a rebuild, so Info,
|
Rotate every page relatively on the opened document, not a rebuild, so Info,
|
||||||
XMP and outlines are kept. ``src`` is not modified.
|
XMP and outlines are kept. ``src`` is not modified.
|
||||||
"""
|
"""
|
||||||
|
import pikepdf
|
||||||
|
|
||||||
with pikepdf.open(src) as pdf:
|
with pikepdf.open(src) as pdf:
|
||||||
for page in pdf.pages:
|
for page in pdf.pages:
|
||||||
page.rotate(degrees, relative=True)
|
page.rotate(degrees, relative=True)
|
||||||
@@ -58,6 +58,8 @@ def remove_pages(src: Path, dst: Path, pages: Iterable[int]) -> None:
|
|||||||
Duplicates are ignored. Pages are removed highest first so earlier removals
|
Duplicates are ignored. Pages are removed highest first so earlier removals
|
||||||
never shift the index of later ones.
|
never shift the index of later ones.
|
||||||
"""
|
"""
|
||||||
|
import pikepdf
|
||||||
|
|
||||||
unique = sorted(set(pages))
|
unique = sorted(set(pages))
|
||||||
_require_positive(unique)
|
_require_positive(unique)
|
||||||
with pikepdf.open(src) as pdf:
|
with pikepdf.open(src) as pdf:
|
||||||
@@ -81,6 +83,8 @@ def build_pdfs(
|
|||||||
(Info, XMP, outlines) is not carried over. Returns the written paths in output
|
(Info, XMP, outlines) is not carried over. Returns the written paths in output
|
||||||
order.
|
order.
|
||||||
"""
|
"""
|
||||||
|
import pikepdf
|
||||||
|
|
||||||
for specs, _ in outputs:
|
for specs, _ in outputs:
|
||||||
_require_positive(spec.page for spec in specs)
|
_require_positive(spec.page for spec in specs)
|
||||||
|
|
||||||
@@ -140,6 +144,8 @@ def needs_decrypt(src: Path) -> bool:
|
|||||||
True if ``src`` is encrypted. A PDF that needs a password to open at all
|
True if ``src`` is encrypted. A PDF that needs a password to open at all
|
||||||
counts as encrypted.
|
counts as encrypted.
|
||||||
"""
|
"""
|
||||||
|
import pikepdf
|
||||||
|
|
||||||
try:
|
try:
|
||||||
with pikepdf.open(src) as pdf:
|
with pikepdf.open(src) as pdf:
|
||||||
return bool(pdf.is_encrypted)
|
return bool(pdf.is_encrypted)
|
||||||
@@ -154,6 +160,8 @@ def decrypt_pdf(src: Path, make_dst: Callable[[], Path], password: str) -> Path:
|
|||||||
``make_dst`` is only called once the password has been accepted, so a wrong
|
``make_dst`` is only called once the password has been accepted, so a wrong
|
||||||
password never leaves a destination behind.
|
password never leaves a destination behind.
|
||||||
"""
|
"""
|
||||||
|
import pikepdf
|
||||||
|
|
||||||
with pikepdf.open(src, password=password) as pdf:
|
with pikepdf.open(src, password=password) as pdf:
|
||||||
pdf.remove_unreferenced_resources()
|
pdf.remove_unreferenced_resources()
|
||||||
dst = make_dst()
|
dst = make_dst()
|
||||||
@@ -170,6 +178,8 @@ class PdfMerger:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
|
import pikepdf
|
||||||
|
|
||||||
self._pdf = pikepdf.new()
|
self._pdf = pikepdf.new()
|
||||||
self._version: str = self._pdf.pdf_version
|
self._version: str = self._pdf.pdf_version
|
||||||
|
|
||||||
@@ -185,6 +195,8 @@ class PdfMerger:
|
|||||||
self._pdf.close()
|
self._pdf.close()
|
||||||
|
|
||||||
def add(self, path: Path) -> None:
|
def add(self, path: Path) -> None:
|
||||||
|
import pikepdf
|
||||||
|
|
||||||
with pikepdf.open(str(path)) as pdf:
|
with pikepdf.open(str(path)) as pdf:
|
||||||
self._version = max(self._version, pdf.pdf_version)
|
self._version = max(self._version, pdf.pdf_version)
|
||||||
self._pdf.pages.extend(pdf.pages)
|
self._pdf.pages.extend(pdf.pages)
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ from dataclasses import dataclass
|
|||||||
from types import TracebackType
|
from types import TracebackType
|
||||||
from typing import Self
|
from typing import Self
|
||||||
|
|
||||||
import dateparser
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@@ -80,6 +78,8 @@ class DateParserPluginBase(ABC):
|
|||||||
|
|
||||||
Uses configuration from `self.config`.
|
Uses configuration from `self.config`.
|
||||||
"""
|
"""
|
||||||
|
import dateparser
|
||||||
|
|
||||||
try:
|
try:
|
||||||
return dateparser.parse(
|
return dateparser.parse(
|
||||||
date_string,
|
date_string,
|
||||||
|
|||||||
@@ -76,9 +76,6 @@ from paperless.logging import consume_task_id
|
|||||||
from paperless.parsers import ParserContext
|
from paperless.parsers import ParserContext
|
||||||
from paperless.parsers.registry import get_parser_registry
|
from paperless.parsers.registry import get_parser_registry
|
||||||
from paperless_ai.exceptions import LLMTimeoutError
|
from paperless_ai.exceptions import LLMTimeoutError
|
||||||
from paperless_ai.indexing import llm_index_add_or_update_document
|
|
||||||
from paperless_ai.indexing import llm_index_remove_document
|
|
||||||
from paperless_ai.indexing import update_llm_index
|
|
||||||
|
|
||||||
if settings.AUDIT_LOG_ENABLED:
|
if settings.AUDIT_LOG_ENABLED:
|
||||||
from auditlog.models import LogEntry
|
from auditlog.models import LogEntry
|
||||||
@@ -339,6 +336,8 @@ def bulk_update_documents(document_ids) -> None:
|
|||||||
|
|
||||||
ai_config = AIConfig()
|
ai_config = AIConfig()
|
||||||
if ai_config.llm_index_enabled:
|
if ai_config.llm_index_enabled:
|
||||||
|
from paperless_ai.indexing import update_llm_index
|
||||||
|
|
||||||
update_llm_index(
|
update_llm_index(
|
||||||
rebuild=False,
|
rebuild=False,
|
||||||
document_ids=document_ids,
|
document_ids=document_ids,
|
||||||
@@ -499,6 +498,8 @@ def update_document_content_maybe_archive_file(
|
|||||||
|
|
||||||
ai_config = AIConfig()
|
ai_config = AIConfig()
|
||||||
if ai_config.llm_index_enabled:
|
if ai_config.llm_index_enabled:
|
||||||
|
from paperless_ai.indexing import llm_index_add_or_update_document
|
||||||
|
|
||||||
llm_index_add_or_update_document(document)
|
llm_index_add_or_update_document(document)
|
||||||
|
|
||||||
clear_document_caches(document.pk)
|
clear_document_caches(document.pk)
|
||||||
@@ -800,11 +801,15 @@ def apply_ai_suggestions(self, action_id: int, document_id: int) -> None:
|
|||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def update_document_in_llm_index(document) -> None:
|
def update_document_in_llm_index(document) -> None:
|
||||||
|
from paperless_ai.indexing import llm_index_add_or_update_document
|
||||||
|
|
||||||
llm_index_add_or_update_document(document)
|
llm_index_add_or_update_document(document)
|
||||||
|
|
||||||
|
|
||||||
@shared_task
|
@shared_task
|
||||||
def remove_document_from_llm_index(document) -> None:
|
def remove_document_from_llm_index(document) -> None:
|
||||||
|
from paperless_ai.indexing import llm_index_remove_document
|
||||||
|
|
||||||
llm_index_remove_document(document)
|
llm_index_remove_document(document)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ class TestParseString:
|
|||||||
):
|
):
|
||||||
# We still need to mock dateparser.parse to force the exception
|
# We still need to mock dateparser.parse to force the exception
|
||||||
mocker.patch(
|
mocker.patch(
|
||||||
"documents.plugins.date_parsing.base.dateparser.parse",
|
"dateparser.parse",
|
||||||
side_effect=ValueError(
|
side_effect=ValueError(
|
||||||
"Parsing error: 01/01/2024",
|
"Parsing error: 01/01/2024",
|
||||||
),
|
),
|
||||||
@@ -260,7 +260,7 @@ class TestRegexDateParser:
|
|||||||
parser = RegexDateParserPlugin(base_config)
|
parser = RegexDateParserPlugin(base_config)
|
||||||
|
|
||||||
# Patch the dateparser.parse
|
# Patch the dateparser.parse
|
||||||
target = "documents.plugins.date_parsing.base.dateparser.parse"
|
target = "dateparser.parse"
|
||||||
|
|
||||||
def fake_parse(
|
def fake_parse(
|
||||||
date_string: str,
|
date_string: str,
|
||||||
@@ -335,7 +335,7 @@ class TestRegexDateParser:
|
|||||||
)
|
)
|
||||||
parser = RegexDateParserPlugin(cfg)
|
parser = RegexDateParserPlugin(cfg)
|
||||||
|
|
||||||
target = "documents.plugins.date_parsing.base.dateparser.parse"
|
target = "dateparser.parse"
|
||||||
|
|
||||||
def fake_parse(
|
def fake_parse(
|
||||||
date_string: str,
|
date_string: str,
|
||||||
@@ -400,7 +400,7 @@ class TestRegexDateParser:
|
|||||||
parser = RegexDateParserPlugin(cfg)
|
parser = RegexDateParserPlugin(cfg)
|
||||||
|
|
||||||
# Patch the module's dateparser.parse so we can inspect calls
|
# Patch the module's dateparser.parse so we can inspect calls
|
||||||
target = "documents.plugins.date_parsing.base.dateparser.parse"
|
target = "dateparser.parse"
|
||||||
|
|
||||||
def fake_parse(
|
def fake_parse(
|
||||||
date_string: str,
|
date_string: str,
|
||||||
|
|||||||
@@ -1070,7 +1070,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
|
|||||||
|
|
||||||
with (
|
with (
|
||||||
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
||||||
patch("paperless.views.llm_index_exists") as mock_exists,
|
patch("paperless_ai.indexing.llm_index_exists") as mock_exists,
|
||||||
):
|
):
|
||||||
mock_exists.return_value = False
|
mock_exists.return_value = False
|
||||||
self.client.patch(
|
self.client.patch(
|
||||||
@@ -1095,7 +1095,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
|
|||||||
|
|
||||||
with (
|
with (
|
||||||
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
||||||
patch("paperless.views.llm_index_exists", return_value=False),
|
patch("paperless_ai.indexing.llm_index_exists", return_value=False),
|
||||||
):
|
):
|
||||||
self.client.patch(
|
self.client.patch(
|
||||||
f"{self.ENDPOINT}1/",
|
f"{self.ENDPOINT}1/",
|
||||||
@@ -1115,7 +1115,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
|
|||||||
|
|
||||||
with (
|
with (
|
||||||
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
||||||
patch("paperless.views.llm_index_exists") as mock_exists,
|
patch("paperless_ai.indexing.llm_index_exists") as mock_exists,
|
||||||
):
|
):
|
||||||
mock_exists.return_value = True
|
mock_exists.return_value = True
|
||||||
self.client.patch(
|
self.client.patch(
|
||||||
@@ -1136,7 +1136,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
|
|||||||
|
|
||||||
with (
|
with (
|
||||||
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
||||||
patch("paperless.views.llm_index_exists") as mock_exists,
|
patch("paperless_ai.indexing.llm_index_exists") as mock_exists,
|
||||||
):
|
):
|
||||||
mock_exists.return_value = True
|
mock_exists.return_value = True
|
||||||
self.client.patch(
|
self.client.patch(
|
||||||
@@ -1174,7 +1174,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
|
|||||||
|
|
||||||
with (
|
with (
|
||||||
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
patch("documents.tasks.llmindex_index.apply_async") as mock_update,
|
||||||
patch("paperless.views.llm_index_exists") as mock_exists,
|
patch("paperless_ai.indexing.llm_index_exists") as mock_exists,
|
||||||
):
|
):
|
||||||
mock_exists.return_value = True
|
mock_exists.return_value = True
|
||||||
self.client.patch(
|
self.client.patch(
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class TestChatStreamingViewInputValidation(APITestCase):
|
|||||||
return_value=self._mock_ai_enabled(),
|
return_value=self._mock_ai_enabled(),
|
||||||
),
|
),
|
||||||
mock.patch(
|
mock.patch(
|
||||||
"documents.views.stream_chat_with_documents",
|
"paperless_ai.chat.stream_chat_with_documents",
|
||||||
return_value=iter(chunks),
|
return_value=iter(chunks),
|
||||||
),
|
),
|
||||||
):
|
):
|
||||||
@@ -104,7 +104,7 @@ class TestChatStreamingViewUnrestrictedFlag:
|
|||||||
"""
|
"""
|
||||||
mocker.patch("documents.views.AIConfig").return_value.ai_enabled = True
|
mocker.patch("documents.views.AIConfig").return_value.ai_enabled = True
|
||||||
return mocker.patch(
|
return mocker.patch(
|
||||||
"documents.views.stream_chat_with_documents",
|
"paperless_ai.chat.stream_chat_with_documents",
|
||||||
return_value=iter(()),
|
return_value=iter(()),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -1110,7 +1110,7 @@ class TestVersionActionPermissions(DirectoriesMixin, APITestCase):
|
|||||||
self.assertEqual(response.status_code, 403)
|
self.assertEqual(response.status_code, 403)
|
||||||
with (
|
with (
|
||||||
mock.patch("documents.views.AIConfig") as ai_config,
|
mock.patch("documents.views.AIConfig") as ai_config,
|
||||||
mock.patch("documents.views.stream_chat_with_documents") as chat,
|
mock.patch("paperless_ai.chat.stream_chat_with_documents") as chat,
|
||||||
):
|
):
|
||||||
ai_config.return_value.ai_enabled = True
|
ai_config.return_value.ai_enabled = True
|
||||||
response = self.client.post(
|
response = self.client.post(
|
||||||
|
|||||||
@@ -2686,7 +2686,7 @@ class TestDocumentApi(DirectoriesMixin, ConsumeTaskMixin, APITestCase):
|
|||||||
response = self.client.get("/api/documents/34676/suggestions/")
|
response = self.client.get("/api/documents/34676/suggestions/")
|
||||||
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
|
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
|
||||||
|
|
||||||
@mock.patch("documents.views.get_ai_document_classification")
|
@mock.patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(AI_ENABLED=True)
|
@override_settings(AI_ENABLED=True)
|
||||||
def test_suggestions_still_uses_classifier_when_ai_enabled(
|
def test_suggestions_still_uses_classifier_when_ai_enabled(
|
||||||
self,
|
self,
|
||||||
|
|||||||
@@ -308,3 +308,32 @@ class TestBulkDownloadSchema:
|
|||||||
def test_bulk_download_response_403(self, api_schema: SchemaGenerator) -> None:
|
def test_bulk_download_response_403(self, api_schema: SchemaGenerator) -> None:
|
||||||
op = api_schema["paths"]["/api/documents/bulk_download/"]["post"]
|
op = api_schema["paths"]["/api/documents/bulk_download/"]["post"]
|
||||||
assert "403" in op["responses"]
|
assert "403" in op["responses"]
|
||||||
|
|
||||||
|
|
||||||
|
class TestDocumentListObjectFilterSchema:
|
||||||
|
"""documents_list: comma-separated ObjectFilter params must be typed as integer arrays."""
|
||||||
|
|
||||||
|
@pytest.mark.parametrize(
|
||||||
|
"param_name",
|
||||||
|
[
|
||||||
|
"tags__id__all",
|
||||||
|
"tags__id__none",
|
||||||
|
"tags__id__in",
|
||||||
|
"correspondent__id__none",
|
||||||
|
"document_type__id__none",
|
||||||
|
"storage_path__id__none",
|
||||||
|
"owner__id__none",
|
||||||
|
"custom_fields__id__all",
|
||||||
|
"custom_fields__id__none",
|
||||||
|
"custom_fields__id__in",
|
||||||
|
],
|
||||||
|
)
|
||||||
|
def test_object_filter_param_is_integer_array(
|
||||||
|
self,
|
||||||
|
api_schema: SchemaGenerator,
|
||||||
|
param_name: str,
|
||||||
|
) -> None:
|
||||||
|
params = api_schema["paths"]["/api/documents/"]["get"]["parameters"]
|
||||||
|
param = next(p for p in params if p["name"] == param_name)
|
||||||
|
assert param["schema"] == {"type": "array", "items": {"type": "integer"}}
|
||||||
|
assert param["explode"] is False
|
||||||
@@ -572,7 +572,7 @@ class TestAiChatAllDocumentsPermissionBoundary:
|
|||||||
ENDPOINT = "/api/documents/chat/"
|
ENDPOINT = "/api/documents/chat/"
|
||||||
|
|
||||||
@override_settings(AI_ENABLED=True)
|
@override_settings(AI_ENABLED=True)
|
||||||
@patch("documents.views.stream_chat_with_documents")
|
@patch("paperless_ai.chat.stream_chat_with_documents")
|
||||||
def test_chat_all_documents_excludes_unshared_document(self, mock_stream_chat):
|
def test_chat_all_documents_excludes_unshared_document(self, mock_stream_chat):
|
||||||
mock_stream_chat.return_value = iter([b"data"])
|
mock_stream_chat.return_value = iter([b"data"])
|
||||||
|
|
||||||
|
|||||||
@@ -322,7 +322,7 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
@override_settings(AI_ENABLED=True, LLM_EMBEDDING_BACKEND="huggingface")
|
@override_settings(AI_ENABLED=True, LLM_EMBEDDING_BACKEND="huggingface")
|
||||||
@mock.patch("documents.tasks.llm_index_add_or_update_document")
|
@mock.patch("paperless_ai.indexing.llm_index_add_or_update_document")
|
||||||
@mock.patch("documents.search.get_backend")
|
@mock.patch("documents.search.get_backend")
|
||||||
def test_update_content_version_updates_llm_index(
|
def test_update_content_version_updates_llm_index(
|
||||||
self,
|
self,
|
||||||
@@ -450,7 +450,7 @@ class TestAIIndex(DirectoriesMixin, TestCase):
|
|||||||
checksum="wow",
|
checksum="wow",
|
||||||
)
|
)
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
"documents.tasks.llm_index_add_or_update_document",
|
"paperless_ai.indexing.llm_index_add_or_update_document",
|
||||||
) as llm_index_add_or_update_document:
|
) as llm_index_add_or_update_document:
|
||||||
tasks.update_document_in_llm_index(doc)
|
tasks.update_document_in_llm_index(doc)
|
||||||
llm_index_add_or_update_document.assert_called_once_with(doc)
|
llm_index_add_or_update_document.assert_called_once_with(doc)
|
||||||
@@ -470,7 +470,7 @@ class TestAIIndex(DirectoriesMixin, TestCase):
|
|||||||
checksum="wow",
|
checksum="wow",
|
||||||
)
|
)
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
"documents.tasks.llm_index_remove_document",
|
"paperless_ai.indexing.llm_index_remove_document",
|
||||||
) as llm_index_remove_document:
|
) as llm_index_remove_document:
|
||||||
tasks.remove_document_from_llm_index(doc)
|
tasks.remove_document_from_llm_index(doc)
|
||||||
llm_index_remove_document.assert_called_once_with(doc)
|
llm_index_remove_document.assert_called_once_with(doc)
|
||||||
@@ -495,7 +495,7 @@ class TestAIIndex(DirectoriesMixin, TestCase):
|
|||||||
"documents.tasks.update_document_in_llm_index",
|
"documents.tasks.update_document_in_llm_index",
|
||||||
) as update_document_in_llm_index,
|
) as update_document_in_llm_index,
|
||||||
mock.patch(
|
mock.patch(
|
||||||
"documents.tasks.update_llm_index",
|
"paperless_ai.indexing.update_llm_index",
|
||||||
) as update_llm_index,
|
) as update_llm_index,
|
||||||
):
|
):
|
||||||
doc_ids = [doc.pk for doc in docs]
|
doc_ids = [doc.pk for doc in docs]
|
||||||
|
|||||||
@@ -474,7 +474,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
self.assertEqual(response.json()["tags"], [])
|
self.assertEqual(response.json()["tags"], [])
|
||||||
self.assertEqual(response.json()["suggested_tags"], [])
|
self.assertEqual(response.json()["suggested_tags"], [])
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="mock_backend",
|
LLM_BACKEND="mock_backend",
|
||||||
@@ -524,7 +524,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="mock_backend",
|
LLM_BACKEND="mock_backend",
|
||||||
@@ -562,7 +562,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
"KI Title",
|
"KI Title",
|
||||||
)
|
)
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="mock_backend",
|
LLM_BACKEND="mock_backend",
|
||||||
@@ -601,7 +601,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
"Titre IA",
|
"Titre IA",
|
||||||
)
|
)
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="mock_backend",
|
LLM_BACKEND="mock_backend",
|
||||||
@@ -637,7 +637,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="mock_backend",
|
LLM_BACKEND="mock_backend",
|
||||||
@@ -709,7 +709,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="openai-like",
|
LLM_BACKEND="openai-like",
|
||||||
@@ -738,7 +738,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
get_llm_suggestion_cache(self.document.pk, backend="openai-like"),
|
get_llm_suggestion_cache(self.document.pk, backend="openai-like"),
|
||||||
)
|
)
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="openai-like",
|
LLM_BACKEND="openai-like",
|
||||||
@@ -765,7 +765,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
get_llm_suggestion_cache(self.document.pk, backend="openai-like"),
|
get_llm_suggestion_cache(self.document.pk, backend="openai-like"),
|
||||||
)
|
)
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="openai-like",
|
LLM_BACKEND="openai-like",
|
||||||
@@ -797,7 +797,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
get_llm_suggestion_cache(self.document.pk, backend="openai-like"),
|
get_llm_suggestion_cache(self.document.pk, backend="openai-like"),
|
||||||
)
|
)
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="mock_backend",
|
LLM_BACKEND="mock_backend",
|
||||||
@@ -835,7 +835,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
self.assertEqual(response.json()["tags"], [self.tag1.pk])
|
self.assertEqual(response.json()["tags"], [self.tag1.pk])
|
||||||
self.assertEqual(response.json()["suggested_tags"], ["Follow-up"])
|
self.assertEqual(response.json()["suggested_tags"], ["Follow-up"])
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="mock_backend",
|
LLM_BACKEND="mock_backend",
|
||||||
@@ -874,7 +874,7 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
|
|||||||
self.assertEqual(response.json()["tags"], [self.tag1.pk])
|
self.assertEqual(response.json()["tags"], [self.tag1.pk])
|
||||||
self.assertEqual(response.json()["suggested_tags"], [])
|
self.assertEqual(response.json()["suggested_tags"], [])
|
||||||
|
|
||||||
@patch("documents.views.get_ai_document_classification")
|
@patch("paperless_ai.ai_classifier.get_ai_document_classification")
|
||||||
@override_settings(
|
@override_settings(
|
||||||
AI_ENABLED=True,
|
AI_ENABLED=True,
|
||||||
LLM_BACKEND="mock_backend",
|
LLM_BACKEND="mock_backend",
|
||||||
@@ -996,7 +996,7 @@ class TestAIChatStreamingView(DirectoriesMixin, TestCase):
|
|||||||
self.assertEqual(response.status_code, 400)
|
self.assertEqual(response.status_code, 400)
|
||||||
self.assertIn(b"AI is required for this feature", response.content)
|
self.assertIn(b"AI is required for this feature", response.content)
|
||||||
|
|
||||||
@patch("documents.views.stream_chat_with_documents")
|
@patch("paperless_ai.chat.stream_chat_with_documents")
|
||||||
@patch("documents.views.permitted_document_ids")
|
@patch("documents.views.permitted_document_ids")
|
||||||
@override_settings(AI_ENABLED=True)
|
@override_settings(AI_ENABLED=True)
|
||||||
def test_post_no_document_id(self, mock_permitted_ids, mock_stream_chat) -> None:
|
def test_post_no_document_id(self, mock_permitted_ids, mock_stream_chat) -> None:
|
||||||
@@ -1016,7 +1016,7 @@ class TestAIChatStreamingView(DirectoriesMixin, TestCase):
|
|||||||
self.assertEqual(list(call_kwargs["documents"]), [self.document])
|
self.assertEqual(list(call_kwargs["documents"]), [self.document])
|
||||||
self.assertIsNone(call_kwargs["output_language"])
|
self.assertIsNone(call_kwargs["output_language"])
|
||||||
|
|
||||||
@patch("documents.views.stream_chat_with_documents")
|
@patch("paperless_ai.chat.stream_chat_with_documents")
|
||||||
@patch("documents.views.permitted_document_ids")
|
@patch("documents.views.permitted_document_ids")
|
||||||
@override_settings(AI_ENABLED=True)
|
@override_settings(AI_ENABLED=True)
|
||||||
def test_post_uses_user_display_language(
|
def test_post_uses_user_display_language(
|
||||||
@@ -1042,7 +1042,7 @@ class TestAIChatStreamingView(DirectoriesMixin, TestCase):
|
|||||||
self.assertEqual(list(call_kwargs["documents"]), [self.document])
|
self.assertEqual(list(call_kwargs["documents"]), [self.document])
|
||||||
self.assertEqual(call_kwargs["output_language"], "de-de")
|
self.assertEqual(call_kwargs["output_language"], "de-de")
|
||||||
|
|
||||||
@patch("documents.views.stream_chat_with_documents")
|
@patch("paperless_ai.chat.stream_chat_with_documents")
|
||||||
@override_settings(AI_ENABLED=True)
|
@override_settings(AI_ENABLED=True)
|
||||||
def test_post_with_document_id(self, mock_stream_chat) -> None:
|
def test_post_with_document_id(self, mock_stream_chat) -> None:
|
||||||
self.grant_view_document_permission()
|
self.grant_view_document_permission()
|
||||||
@@ -1079,7 +1079,7 @@ class TestAIChatStreamingView(DirectoriesMixin, TestCase):
|
|||||||
self.assertEqual(response.status_code, 403)
|
self.assertEqual(response.status_code, 403)
|
||||||
self.assertIn(b"Insufficient permissions", response.content)
|
self.assertIn(b"Insufficient permissions", response.content)
|
||||||
|
|
||||||
@patch("documents.views.stream_chat_with_documents")
|
@patch("paperless_ai.chat.stream_chat_with_documents")
|
||||||
@override_settings(AI_ENABLED=True)
|
@override_settings(AI_ENABLED=True)
|
||||||
def test_post_no_document_id_requires_view_document_permission(
|
def test_post_no_document_id_requires_view_document_permission(
|
||||||
self,
|
self,
|
||||||
@@ -1093,7 +1093,7 @@ class TestAIChatStreamingView(DirectoriesMixin, TestCase):
|
|||||||
self.assertEqual(response.status_code, 403)
|
self.assertEqual(response.status_code, 403)
|
||||||
mock_stream_chat.assert_not_called()
|
mock_stream_chat.assert_not_called()
|
||||||
|
|
||||||
@patch("documents.views.stream_chat_with_documents")
|
@patch("paperless_ai.chat.stream_chat_with_documents")
|
||||||
@override_settings(AI_ENABLED=True)
|
@override_settings(AI_ENABLED=True)
|
||||||
def test_post_with_document_id_requires_view_document_permission(
|
def test_post_with_document_id_requires_view_document_permission(
|
||||||
self,
|
self,
|
||||||
|
|||||||
+26
-25
@@ -250,20 +250,8 @@ from paperless.parsers.remote import RemoteEngineConfig
|
|||||||
from paperless.serialisers import GroupSerializer
|
from paperless.serialisers import GroupSerializer
|
||||||
from paperless.serialisers import UserSerializer
|
from paperless.serialisers import UserSerializer
|
||||||
from paperless.views import StandardPagination
|
from paperless.views import StandardPagination
|
||||||
from paperless_ai.ai_classifier import get_ai_document_classification
|
|
||||||
from paperless_ai.ai_classifier import get_llm_output_language
|
|
||||||
from paperless_ai.chat import stream_chat_with_documents
|
|
||||||
from paperless_ai.exceptions import LLMProviderError
|
from paperless_ai.exceptions import LLMProviderError
|
||||||
from paperless_ai.exceptions import LLMTimeoutError
|
from paperless_ai.exceptions import LLMTimeoutError
|
||||||
from paperless_ai.matching import extract_unmatched_names
|
|
||||||
from paperless_ai.matching import match_correspondents_by_name
|
|
||||||
from paperless_ai.matching import match_document_types_by_name
|
|
||||||
from paperless_ai.matching import match_storage_paths_by_name
|
|
||||||
from paperless_ai.matching import match_tags_by_name
|
|
||||||
from paperless_ai.matching import resolve_correspondent_ids
|
|
||||||
from paperless_ai.matching import resolve_document_type_ids
|
|
||||||
from paperless_ai.matching import resolve_storage_path_ids
|
|
||||||
from paperless_ai.matching import resolve_tag_ids
|
|
||||||
from paperless_mail.models import MailAccount
|
from paperless_mail.models import MailAccount
|
||||||
from paperless_mail.models import MailRule
|
from paperless_mail.models import MailRule
|
||||||
from paperless_mail.oauth import PaperlessMailOAuth2Manager
|
from paperless_mail.oauth import PaperlessMailOAuth2Manager
|
||||||
@@ -699,19 +687,6 @@ class EmailDocumentDetailSchema(EmailSerializer):
|
|||||||
|
|
||||||
|
|
||||||
@extend_schema_view(
|
@extend_schema_view(
|
||||||
list=extend_schema(
|
|
||||||
parameters=[
|
|
||||||
OpenApiParameter(
|
|
||||||
name=name,
|
|
||||||
type=OpenApiTypes.INT,
|
|
||||||
many=True,
|
|
||||||
style="form",
|
|
||||||
explode=False,
|
|
||||||
)
|
|
||||||
for name, field in DocumentFilterSet.base_filters.items()
|
|
||||||
if isinstance(field, ObjectFilter)
|
|
||||||
],
|
|
||||||
),
|
|
||||||
retrieve=extend_schema(
|
retrieve=extend_schema(
|
||||||
description="Retrieve a single document",
|
description="Retrieve a single document",
|
||||||
responses={
|
responses={
|
||||||
@@ -1613,6 +1588,18 @@ class DocumentViewSet(
|
|||||||
if not ai_config.ai_enabled:
|
if not ai_config.ai_enabled:
|
||||||
return HttpResponseBadRequest("AI is required for this feature")
|
return HttpResponseBadRequest("AI is required for this feature")
|
||||||
|
|
||||||
|
from paperless_ai.ai_classifier import get_ai_document_classification
|
||||||
|
from paperless_ai.ai_classifier import get_llm_output_language
|
||||||
|
from paperless_ai.matching import extract_unmatched_names
|
||||||
|
from paperless_ai.matching import match_correspondents_by_name
|
||||||
|
from paperless_ai.matching import match_document_types_by_name
|
||||||
|
from paperless_ai.matching import match_storage_paths_by_name
|
||||||
|
from paperless_ai.matching import match_tags_by_name
|
||||||
|
from paperless_ai.matching import resolve_correspondent_ids
|
||||||
|
from paperless_ai.matching import resolve_document_type_ids
|
||||||
|
from paperless_ai.matching import resolve_storage_path_ids
|
||||||
|
from paperless_ai.matching import resolve_tag_ids
|
||||||
|
|
||||||
output_language = get_llm_output_language(
|
output_language = get_llm_output_language(
|
||||||
ai_config=ai_config,
|
ai_config=ai_config,
|
||||||
user=request.user,
|
user=request.user,
|
||||||
@@ -2446,6 +2433,9 @@ class ChatStreamingView(GenericAPIView[Any]):
|
|||||||
)
|
)
|
||||||
unrestricted = user_is_unrestricted(request.user)
|
unrestricted = user_is_unrestricted(request.user)
|
||||||
|
|
||||||
|
from paperless_ai.ai_classifier import get_llm_output_language
|
||||||
|
from paperless_ai.chat import stream_chat_with_documents
|
||||||
|
|
||||||
output_language = get_llm_output_language(
|
output_language = get_llm_output_language(
|
||||||
ai_config=ai_config,
|
ai_config=ai_config,
|
||||||
user=request.user,
|
user=request.user,
|
||||||
@@ -2467,6 +2457,17 @@ class ChatStreamingView(GenericAPIView[Any]):
|
|||||||
list=extend_schema(
|
list=extend_schema(
|
||||||
description="Document views including search",
|
description="Document views including search",
|
||||||
parameters=[
|
parameters=[
|
||||||
|
*(
|
||||||
|
OpenApiParameter(
|
||||||
|
name=name,
|
||||||
|
type=OpenApiTypes.INT,
|
||||||
|
many=True,
|
||||||
|
style="form",
|
||||||
|
explode=False,
|
||||||
|
)
|
||||||
|
for name, field in DocumentFilterSet.base_filters.items()
|
||||||
|
if isinstance(field, ObjectFilter)
|
||||||
|
),
|
||||||
OpenApiParameter(
|
OpenApiParameter(
|
||||||
name="text",
|
name="text",
|
||||||
type=OpenApiTypes.STR,
|
type=OpenApiTypes.STR,
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Afrikaans\n"
|
"Language-Team: Afrikaans\n"
|
||||||
"Language: af_ZA\n"
|
"Language: af_ZA\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Dokumente"
|
msgstr "Dokumente"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "Waarde moet geldige JSON wees."
|
msgstr "Waarde moet geldige JSON wees."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Ongeldige gepasmaakte veldnavraaguitdrukking"
|
msgstr "Ongeldige gepasmaakte veldnavraaguitdrukking"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Ongeldige uitdrukking lys. Moet nie leeg wees nie."
|
msgstr "Ongeldige uitdrukking lys. Moet nie leeg wees nie."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Ongeldige logiese uitdrukking {op!r}"
|
msgstr "Ongeldige logiese uitdrukking {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Ongeldige veranderlike bespeur."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1920,40 +1920,40 @@ msgstr ""
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Amharic\n"
|
"Language-Team: Amharic\n"
|
||||||
"Language: am_ET\n"
|
"Language: am_ET\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "መዝገባት"
|
msgstr "መዝገባት"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "የሚሰራው እሴት \"JSON\" መሆን አለበት"
|
msgstr "የሚሰራው እሴት \"JSON\" መሆን አለበት"
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "ልክ ያልሆነ የተወሰነ የቦታ መጠይቅ አገላለጽ"
|
msgstr "ልክ ያልሆነ የተወሰነ የቦታ መጠይቅ አገላለጽ"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "ልክ ያልሆነ የመግለጫ ዝርዝር። ባዶ መሆን የለበትም።"
|
msgstr "ልክ ያልሆነ የመግለጫ ዝርዝር። ባዶ መሆን የለበትም።"
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "ልክ ያልሆነ የሎጂክ ኦፕሬተር {op!r}"
|
msgstr "ልክ ያልሆነ የሎጂክ ኦፕሬተር {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "ከፍተኛው የጥያቄ ሁኔታዎች/መጠን ብዛት አልፏል።"
|
msgstr "ከፍተኛው የጥያቄ ሁኔታዎች/መጠን ብዛት አልፏል።"
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{name!r} ይሄ ታዐማኒነት ያለው ልማድ አይደለም።"
|
msgstr "{name!r} ይሄ ታዐማኒነት ያለው ልማድ አይደለም።"
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "ጥያቄን አይደግፍም expr {expr!r}."
|
msgstr "ጥያቄን አይደግፍም expr {expr!r}."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "ከፍተኛው የጥገኝነት ጥልቀት አልፏል።"
|
msgstr "ከፍተኛው የጥገኝነት ጥልቀት አልፏል።"
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "ይህ ልማድ አልተገኘም"
|
msgstr "ይህ ልማድ አልተገኘም"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1680,7 +1680,7 @@ msgstr ""
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1920,40 +1920,40 @@ msgstr ""
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Arabic\n"
|
"Language-Team: Arabic\n"
|
||||||
"Language: ar_SA\n"
|
"Language: ar_SA\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "المستندات"
|
msgstr "المستندات"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "يجب أن تكون القيمة JSON."
|
msgstr "يجب أن تكون القيمة JSON."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "تعبير استعلام غير صالح للحقول المخصصة"
|
msgstr "تعبير استعلام غير صالح للحقول المخصصة"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "قائمة عبارة خاطئة."
|
msgstr "قائمة عبارة خاطئة."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "تجاوز الحد الأقصى لعدد شروط الاستعلام."
|
msgstr "تجاوز الحد الأقصى لعدد شروط الاستعلام."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{name!r} حقل مخصص غير صالح."
|
msgstr "{name!r} حقل مخصص غير صالح."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "{data_type} لا يدعم تعبير الاستعلام {expr!r}."
|
msgstr "{data_type} لا يدعم تعبير الاستعلام {expr!r}."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "لم يتم العثور على حقل مخصص"
|
msgstr "لم يتم العثور على حقل مخصص"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "اكتشاف متغير خاطئ."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1921,40 +1921,40 @@ msgstr "كخطوة أخيرة، يرجى ملء النموذج التالي:"
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Belarusian\n"
|
"Language-Team: Belarusian\n"
|
||||||
"Language: be_BY\n"
|
"Language: be_BY\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Дакументы"
|
msgstr "Дакументы"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Выяўлена няправільная зменная."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1920,40 +1920,40 @@ msgstr ""
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Bulgarian\n"
|
"Language-Team: Bulgarian\n"
|
||||||
"Language: bg_BG\n"
|
"Language: bg_BG\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Документи"
|
msgstr "Документи"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "Стойността трябва да е валидна JSON."
|
msgstr "Стойността трябва да е валидна JSON."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Невалидна заявка на персонализираното полето"
|
msgstr "Невалидна заявка на персонализираното полето"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Списък с невалиден израз. Не може да е празно."
|
msgstr "Списък с невалиден израз. Не може да е празно."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Невалиден логически оператор {op!r}"
|
msgstr "Невалиден логически оператор {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "Надвишен е максимален брой за заявки."
|
msgstr "Надвишен е максимален брой за заявки."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{name!r} не е валидно персонализирано поле."
|
msgstr "{name!r} не е валидно персонализирано поле."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "{data_type} не поддържа заявка expr {expr!r}."
|
msgstr "{data_type} не поддържа заявка expr {expr!r}."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "Надвишена е максималната дълбочина на вмъкване."
|
msgstr "Надвишена е максималната дълбочина на вмъкване."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "Персонализирано поле не е намерено"
|
msgstr "Персонализирано поле не е намерено"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr "стартиране на работните процеси"
|
msgstr "стартиране на работните процеси"
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Засечена е невалидна променлива."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1921,40 +1921,40 @@ msgstr "Като последна стъпка, моля, попълнете с
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Catalan\n"
|
"Language-Team: Catalan\n"
|
||||||
"Language: ca_ES\n"
|
"Language: ca_ES\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Documents "
|
msgstr "Documents "
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "Valor ha de ser un JSON valid."
|
msgstr "Valor ha de ser un JSON valid."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Expressió de camp de consulta invàlid"
|
msgstr "Expressió de camp de consulta invàlid"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Expressió de llista invàlida. No ha d'estar buida."
|
msgstr "Expressió de llista invàlida. No ha d'estar buida."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Invàlid operand lògic {op!r}"
|
msgstr "Invàlid operand lògic {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "Condicions de consulta excedits."
|
msgstr "Condicions de consulta excedits."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{name!r} no és un camp personalitzat vàlid."
|
msgstr "{name!r} no és un camp personalitzat vàlid."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "{data_type} no suporta expressió de consulta {expr!r}."
|
msgstr "{data_type} no suporta expressió de consulta {expr!r}."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "Màxima profunditat anidada excedida."
|
msgstr "Màxima profunditat anidada excedida."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "Camp personalitzat no trobat"
|
msgstr "Camp personalitzat no trobat"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr "flux corrents"
|
msgstr "flux corrents"
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr "Permisos insuficients."
|
msgstr "Permisos insuficients."
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Variable detectada invàlida."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr "Duplicat d'identificadors de documents no permès."
|
msgstr "Duplicat d'identificadors de documents no permès."
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr "Documents no trobats: %(ids)s"
|
msgstr "Documents no trobats: %(ids)s"
|
||||||
@@ -1921,40 +1921,40 @@ msgstr "Com a pas final, completa el següent formulari:"
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr "Especifica només un dels següents valors: text, title_search, query o more_like_id."
|
msgstr "Especifica només un dels següents valors: text, title_search, query o more_like_id."
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr "Invalid more_like_id"
|
msgstr "Invalid more_like_id"
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr "Configuració AI invàlida."
|
msgstr "Configuració AI invàlida."
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr "Permisos insuficients per compartir document %(id)s."
|
msgstr "Permisos insuficients per compartir document %(id)s."
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr "Paquet ja s'està processant."
|
msgstr "Paquet ja s'està processant."
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr "El paquet de link encarà s'està preparant. Prova de nou més tard."
|
msgstr "El paquet de link encarà s'està preparant. Prova de nou més tard."
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr "El paquet d'enllaç no està disponible."
|
msgstr "El paquet d'enllaç no està disponible."
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Czech\n"
|
"Language-Team: Czech\n"
|
||||||
"Language: cs_CZ\n"
|
"Language: cs_CZ\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Dokumenty"
|
msgstr "Dokumenty"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "Hodnota musí být platný JSON."
|
msgstr "Hodnota musí být platný JSON."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Neplatný výraz dotazu na vlastní pole"
|
msgstr "Neplatný výraz dotazu na vlastní pole"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Neplatný seznam výrazů. Nesmí být prázdný."
|
msgstr "Neplatný seznam výrazů. Nesmí být prázdný."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Neplatný logický operátor {op!r}"
|
msgstr "Neplatný logický operátor {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "Překročen maximální počet podmínek dotazu."
|
msgstr "Překročen maximální počet podmínek dotazu."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{name!r} není platné vlastní pole."
|
msgstr "{name!r} není platné vlastní pole."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "{data_type} nepodporuje výraz dotazu {expr!r}."
|
msgstr "{data_type} nepodporuje výraz dotazu {expr!r}."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "Překročena maximální hloubka větvení."
|
msgstr "Překročena maximální hloubka větvení."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "Vlastní pole nebylo nalezeno"
|
msgstr "Vlastní pole nebylo nalezeno"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr "spuštění pracovních postupů"
|
msgstr "spuštění pracovních postupů"
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr "Nedostatečná oprávnění."
|
msgstr "Nedostatečná oprávnění."
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Zjištěna neplatná proměnná."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1921,40 +1921,40 @@ msgstr "Jako poslední krok vyplňte následující formulář:"
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr "Nedostatečná oprávnění ke sdílení dokumentu %(id)s."
|
msgstr "Nedostatečná oprávnění ke sdílení dokumentu %(id)s."
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Danish\n"
|
"Language-Team: Danish\n"
|
||||||
"Language: da_DK\n"
|
"Language: da_DK\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Dokumenter"
|
msgstr "Dokumenter"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "Værdien skal være gyldig JSON."
|
msgstr "Værdien skal være gyldig JSON."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Ugyldigt tilpasset feltforespørgselsudtryk"
|
msgstr "Ugyldigt tilpasset feltforespørgselsudtryk"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Ugyldig udtryksliste. Må ikke være tom."
|
msgstr "Ugyldig udtryksliste. Må ikke være tom."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Ugyldig logisk operatør {op!r}"
|
msgstr "Ugyldig logisk operatør {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "Maksimalt antal forespørgselsbetingelser overskredet."
|
msgstr "Maksimalt antal forespørgselsbetingelser overskredet."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{name!r} er ikke et gyldigt tilpasset felt."
|
msgstr "{name!r} er ikke et gyldigt tilpasset felt."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "{data_type} understøtter ikke forespørgsel expr {expr!r}."
|
msgstr "{data_type} understøtter ikke forespørgsel expr {expr!r}."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "Maksimal indlejringsdybde overskredet."
|
msgstr "Maksimal indlejringsdybde overskredet."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "Tilpasset felt ikke fundet"
|
msgstr "Tilpasset felt ikke fundet"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr "workflow-kørsler"
|
msgstr "workflow-kørsler"
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Ugyldig variabel fundet."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1921,40 +1921,40 @@ msgstr "Som sidste trin, udfyld venligst flg. formular:"
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: German, Switzerland\n"
|
"Language-Team: German, Switzerland\n"
|
||||||
"Language: de_CH\n"
|
"Language: de_CH\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Dokumente"
|
msgstr "Dokumente"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "Wert muss gültiges JSON sein."
|
msgstr "Wert muss gültiges JSON sein."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Ungültiger benutzerdefinierter Feldabfrageausdruck"
|
msgstr "Ungültiger benutzerdefinierter Feldabfrageausdruck"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Ungültige Ausdrucksliste. Darf nicht leer sein."
|
msgstr "Ungültige Ausdrucksliste. Darf nicht leer sein."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Ungültiger logischer Operator {op!r}"
|
msgstr "Ungültiger logischer Operator {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "Maximale Anzahl an Abfragebedingungen überschritten."
|
msgstr "Maximale Anzahl an Abfragebedingungen überschritten."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{name!r} ist kein gültiges Zusatzfeld."
|
msgstr "{name!r} ist kein gültiges Zusatzfeld."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "{data_type} unterstützt den Abfrageausdruck {expr!r} nicht."
|
msgstr "{data_type} unterstützt den Abfrageausdruck {expr!r} nicht."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "Maximale Verschachtelungstiefe überschritten."
|
msgstr "Maximale Verschachtelungstiefe überschritten."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "Benutzerdefiniertes Feld nicht gefunden"
|
msgstr "Benutzerdefiniertes Feld nicht gefunden"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr "Arbeitsablauf wird ausgeführt"
|
msgstr "Arbeitsablauf wird ausgeführt"
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr "Unzureichende Berechtigungen."
|
msgstr "Unzureichende Berechtigungen."
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Ungültige Variable erkannt."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr "Doppelte Dokumentbezeichner sind nicht erlaubt."
|
msgstr "Doppelte Dokumentbezeichner sind nicht erlaubt."
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr "Dokumente nicht gefunden: %(ids)s"
|
msgstr "Dokumente nicht gefunden: %(ids)s"
|
||||||
@@ -1921,40 +1921,40 @@ msgstr "Bitte füllen Sie zum Abschluss folgendes Formular aus:"
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr "Geben Sie nur einen von text, title_search, query, oder more_like_id an."
|
msgstr "Geben Sie nur einen von text, title_search, query, oder more_like_id an."
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr "Ungültige more_like_id"
|
msgstr "Ungültige more_like_id"
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr "Ungültige KI-Konfiguration."
|
msgstr "Ungültige KI-Konfiguration."
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr "Unzureichende Berechtigungen, um Dokument %(id)s zu teilen."
|
msgstr "Unzureichende Berechtigungen, um Dokument %(id)s zu teilen."
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr "Paket wird bereits verarbeitet."
|
msgstr "Paket wird bereits verarbeitet."
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr "Das Freigabelink-Paket wird noch vorbereitet. Bitte versuchen Sie es später erneut."
|
msgstr "Das Freigabelink-Paket wird noch vorbereitet. Bitte versuchen Sie es später erneut."
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr "Das Freigabelink-Paket ist nicht verfügbar."
|
msgstr "Das Freigabelink-Paket ist nicht verfügbar."
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: German\n"
|
"Language-Team: German\n"
|
||||||
"Language: de_DE\n"
|
"Language: de_DE\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Dokumente"
|
msgstr "Dokumente"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr "Datum oder ein relatives Datum erwartet, wie etwa „heute“ oder „in 30 Tagen“."
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "Wert muss gültiges JSON sein."
|
msgstr "Wert muss gültiges JSON sein."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Ungültiger Zusatzfeld-Abfrageausdruck"
|
msgstr "Ungültiger Zusatzfeld-Abfrageausdruck"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Ungültige Ausdrucksliste. Darf nicht leer sein."
|
msgstr "Ungültige Ausdrucksliste. Darf nicht leer sein."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Ungültiger logischer Operator {op!r}"
|
msgstr "Ungültiger logischer Operator {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "Maximale Anzahl an Abfragebedingungen überschritten."
|
msgstr "Maximale Anzahl an Abfragebedingungen überschritten."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{name!r} ist kein gültiges Zusatzfeld."
|
msgstr "{name!r} ist kein gültiges Zusatzfeld."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "{data_type} unterstützt den Abfrageausdruck {expr!r} nicht."
|
msgstr "{data_type} unterstützt den Abfrageausdruck {expr!r} nicht."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "Maximale Verschachtelungstiefe überschritten."
|
msgstr "Maximale Verschachtelungstiefe überschritten."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "Zusatzfeld nicht gefunden"
|
msgstr "Zusatzfeld nicht gefunden"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr "Arbeitsablauf wird ausgeführt"
|
msgstr "Arbeitsablauf wird ausgeführt"
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr "Unzureichende Berechtigungen."
|
msgstr "Unzureichende Berechtigungen."
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Ungültige Variable erkannt."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr "Doppelte Dokumentbezeichner sind nicht erlaubt."
|
msgstr "Doppelte Dokumentbezeichner sind nicht erlaubt."
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr "Dokumente nicht gefunden: %(ids)s"
|
msgstr "Dokumente nicht gefunden: %(ids)s"
|
||||||
@@ -1921,40 +1921,40 @@ msgstr "Bitte füllen Sie zum Abschluss folgendes Formular aus:"
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ", "
|
msgstr ", "
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr "Geben Sie nur einen von text, title_search, query, oder more_like_id an."
|
msgstr "Geben Sie nur einen von text, title_search, query, oder more_like_id an."
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr "Ungültige more_like_id"
|
msgstr "Ungültige more_like_id"
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr "Ungültige KI-Konfiguration."
|
msgstr "Ungültige KI-Konfiguration."
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr "Zeitüberschreitung bei der KI-Backendanfrage."
|
msgstr "Zeitüberschreitung bei der KI-Backendanfrage."
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr "Das KI-Backend hat die Anfrage abgelehnt. Details in den Protokollen."
|
msgstr "Das KI-Backend hat die Anfrage abgelehnt. Details in den Protokollen."
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr "Unzureichende Berechtigungen, um Dokument %(id)s zu teilen."
|
msgstr "Unzureichende Berechtigungen, um Dokument %(id)s zu teilen."
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr "Paket wird bereits verarbeitet."
|
msgstr "Paket wird bereits verarbeitet."
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr "Das Freigabelink-Paket wird noch vorbereitet. Bitte versuchen Sie es später erneut."
|
msgstr "Das Freigabelink-Paket wird noch vorbereitet. Bitte versuchen Sie es später erneut."
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr "Das Freigabelink-Paket ist nicht verfügbar."
|
msgstr "Das Freigabelink-Paket ist nicht verfügbar."
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Greek\n"
|
"Language-Team: Greek\n"
|
||||||
"Language: el_GR\n"
|
"Language: el_GR\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Έγγραφα"
|
msgstr "Έγγραφα"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "Η τιμή πρέπει να είναι σε έγκυρη μορφή JSON."
|
msgstr "Η τιμή πρέπει να είναι σε έγκυρη μορφή JSON."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Μη έγκυρη έκφραση προσαρμοσμένου ερωτήματος πεδίου"
|
msgstr "Μη έγκυρη έκφραση προσαρμοσμένου ερωτήματος πεδίου"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Μη έγκυρη λίστα έκφρασης. Πρέπει να είναι μη κενή."
|
msgstr "Μη έγκυρη λίστα έκφρασης. Πρέπει να είναι μη κενή."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Μη έγκυρος λογικός τελεστής {op!r}"
|
msgstr "Μη έγκυρος λογικός τελεστής {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "Υπέρβαση μέγιστου αριθμού συνθηκών ερωτήματος."
|
msgstr "Υπέρβαση μέγιστου αριθμού συνθηκών ερωτήματος."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "Το προσαρμοσμένο πεδίο {name!r} δεν είναι ένα έγκυρο."
|
msgstr "Το προσαρμοσμένο πεδίο {name!r} δεν είναι ένα έγκυρο."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "Το {data_type} δεν υποστηρίζει το ερώτημα expr {expr!r}s."
|
msgstr "Το {data_type} δεν υποστηρίζει το ερώτημα expr {expr!r}s."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "Υπέρβαση μέγιστου βάθους εμφώλευσης."
|
msgstr "Υπέρβαση μέγιστου βάθους εμφώλευσης."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "Το προσαρμοσμένο πεδίο δε βρέθηκε"
|
msgstr "Το προσαρμοσμένο πεδίο δε βρέθηκε"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr "εκτελέσεις ροής εργασίας"
|
msgstr "εκτελέσεις ροής εργασίας"
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Εντοπίστηκε μη έγκυρη μεταβλητή."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1921,40 +1921,40 @@ msgstr "Ως τελικό βήμα, παρακαλούμε να συμπληρώ
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2022-02-17 04:17\n"
|
"PO-Revision-Date: 2022-02-17 04:17\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: English\n"
|
"Language-Team: English\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -1657,7 +1657,7 @@ msgid "workflow runs"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1698,7 +1698,7 @@ msgstr ""
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1949,40 +1949,40 @@ msgstr ""
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:49\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Spanish\n"
|
"Language-Team: Spanish\n"
|
||||||
"Language: es_ES\n"
|
"Language: es_ES\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Documentos"
|
msgstr "Documentos"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "El valor debe ser un JSON válido."
|
msgstr "El valor debe ser un JSON válido."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Expresión de consulta de campo personalizado no válida"
|
msgstr "Expresión de consulta de campo personalizado no válida"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Lista de expresiones no válida. No debe estar vacía."
|
msgstr "Lista de expresiones no válida. No debe estar vacía."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Operador lógico inválido {op!r}"
|
msgstr "Operador lógico inválido {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "Se ha superado el número máximo de condiciones de consulta."
|
msgstr "Se ha superado el número máximo de condiciones de consulta."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{nombre!r} no es un campo personalizado válido."
|
msgstr "{nombre!r} no es un campo personalizado válido."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "{data_type} no admite la consulta expr {expr!r}."
|
msgstr "{data_type} no admite la consulta expr {expr!r}."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "Profundidad máxima de nidificación superada."
|
msgstr "Profundidad máxima de nidificación superada."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "Campo personalizado no encontrado"
|
msgstr "Campo personalizado no encontrado"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr "ejecuciones de flujo de trabajo"
|
msgstr "ejecuciones de flujo de trabajo"
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr "Permisos insuficientes."
|
msgstr "Permisos insuficientes."
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "Variable inválida."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr "No se permiten identificadores de documento duplicados."
|
msgstr "No se permiten identificadores de documento duplicados."
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr "Documentos no encontrados: %(ids)s"
|
msgstr "Documentos no encontrados: %(ids)s"
|
||||||
@@ -1921,40 +1921,40 @@ msgstr "Como último paso, por favor complete el siguiente formulario:"
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr "Especifique solo uno entre text, title_search, query, o more_like_id."
|
msgstr "Especifique solo uno entre text, title_search, query, o more_like_id."
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr "Configuración de IA inválida."
|
msgstr "Configuración de IA inválida."
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr "Permisos insuficientes para compartir el documento %(id)s."
|
msgstr "Permisos insuficientes para compartir el documento %(id)s."
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr "El paquete ya está siendo procesado."
|
msgstr "El paquete ya está siendo procesado."
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr "El paquete de enlace compartido aún está siendo preparado. Por favor, inténtalo de nuevo más tarde."
|
msgstr "El paquete de enlace compartido aún está siendo preparado. Por favor, inténtalo de nuevo más tarde."
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr "El paquete de enlace compartido no está disponible."
|
msgstr "El paquete de enlace compartido no está disponible."
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:48\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Estonian\n"
|
"Language-Team: Estonian\n"
|
||||||
"Language: et_EE\n"
|
"Language: et_EE\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "Dokumendid"
|
msgstr "Dokumendid"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "Väärtus peab olema lubatav JSON."
|
msgstr "Väärtus peab olema lubatav JSON."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Vigane kohandatud välja päringu avaldis"
|
msgstr "Vigane kohandatud välja päringu avaldis"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "Vigane avaldiste loend. Peab olema mittetühi."
|
msgstr "Vigane avaldiste loend. Peab olema mittetühi."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr "Vigane loogikaoperaator {op!r}"
|
msgstr "Vigane loogikaoperaator {op!r}"
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "Päringutingimuste suurim hulk on ületatud."
|
msgstr "Päringutingimuste suurim hulk on ületatud."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{name!r} ei ole lubatud kohandatud väli."
|
msgstr "{name!r} ei ole lubatud kohandatud väli."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr "{data_type} ei toeta päringu avaldist {expr!r}."
|
msgstr "{data_type} ei toeta päringu avaldist {expr!r}."
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "Suurim pesastamis sügavus ületatud."
|
msgstr "Suurim pesastamis sügavus ületatud."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "Kohandatud välja ei leitud"
|
msgstr "Kohandatud välja ei leitud"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1680,7 +1680,7 @@ msgstr ""
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1920,40 +1920,40 @@ msgstr ""
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: paperless-ngx\n"
|
"Project-Id-Version: paperless-ngx\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2026-10-29 17:25+0000\n"
|
"POT-Creation-Date: 2026-10-31 04:47+0000\n"
|
||||||
"PO-Revision-Date: 2026-10-29 17:27\n"
|
"PO-Revision-Date: 2026-10-31 04:49\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: Persian\n"
|
"Language-Team: Persian\n"
|
||||||
"Language: fa_IR\n"
|
"Language: fa_IR\n"
|
||||||
@@ -21,43 +21,43 @@ msgstr ""
|
|||||||
msgid "Documents"
|
msgid "Documents"
|
||||||
msgstr "اسناد و مدارک"
|
msgstr "اسناد و مدارک"
|
||||||
|
|
||||||
#: documents/filters.py:337
|
#: documents/filters.py:336
|
||||||
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
msgid "Expected a date or a relative date such as \"today\" or \"in 30 days\"."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:513
|
#: documents/filters.py:514
|
||||||
msgid "Value must be valid JSON."
|
msgid "Value must be valid JSON."
|
||||||
msgstr "مقدار باید JSON معتبر باشد."
|
msgstr "مقدار باید JSON معتبر باشد."
|
||||||
|
|
||||||
#: documents/filters.py:534
|
#: documents/filters.py:535
|
||||||
msgid "Invalid custom field query expression"
|
msgid "Invalid custom field query expression"
|
||||||
msgstr "Invalid custom field query expression"
|
msgstr "Invalid custom field query expression"
|
||||||
|
|
||||||
#: documents/filters.py:544
|
#: documents/filters.py:545
|
||||||
msgid "Invalid expression list. Must be nonempty."
|
msgid "Invalid expression list. Must be nonempty."
|
||||||
msgstr "لیست عبارتها نامعتبر است. نباید خالی باشد."
|
msgstr "لیست عبارتها نامعتبر است. نباید خالی باشد."
|
||||||
|
|
||||||
#: documents/filters.py:565
|
#: documents/filters.py:566
|
||||||
msgid "Invalid logical operator {op!r}"
|
msgid "Invalid logical operator {op!r}"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:579
|
#: documents/filters.py:580
|
||||||
msgid "Maximum number of query conditions exceeded."
|
msgid "Maximum number of query conditions exceeded."
|
||||||
msgstr "حداکثر تعداد شرایط پرس و جو از آن فراتر رفته است."
|
msgstr "حداکثر تعداد شرایط پرس و جو از آن فراتر رفته است."
|
||||||
|
|
||||||
#: documents/filters.py:643
|
#: documents/filters.py:644
|
||||||
msgid "{name!r} is not a valid custom field."
|
msgid "{name!r} is not a valid custom field."
|
||||||
msgstr "{نام! R} یک زمینه سفارشی معتبر نیست."
|
msgstr "{نام! R} یک زمینه سفارشی معتبر نیست."
|
||||||
|
|
||||||
#: documents/filters.py:680
|
#: documents/filters.py:681
|
||||||
msgid "{data_type} does not support query expr {expr!r}."
|
msgid "{data_type} does not support query expr {expr!r}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/filters.py:801 documents/models.py:137
|
#: documents/filters.py:802 documents/models.py:137
|
||||||
msgid "Maximum nesting depth exceeded."
|
msgid "Maximum nesting depth exceeded."
|
||||||
msgstr "حداکثر عمق تودرتویی بیش از حد مجاز است."
|
msgstr "حداکثر عمق تودرتویی بیش از حد مجاز است."
|
||||||
|
|
||||||
#: documents/filters.py:1178
|
#: documents/filters.py:1179
|
||||||
msgid "Custom field not found"
|
msgid "Custom field not found"
|
||||||
msgstr "زمینه سفارشی یافت نشد"
|
msgstr "زمینه سفارشی یافت نشد"
|
||||||
|
|
||||||
@@ -1640,7 +1640,7 @@ msgid "workflow runs"
|
|||||||
msgstr "گردش کار اجرا می شود"
|
msgstr "گردش کار اجرا می شود"
|
||||||
|
|
||||||
#: documents/serialisers.py:483 documents/serialisers.py:840
|
#: documents/serialisers.py:483 documents/serialisers.py:840
|
||||||
#: documents/serialisers.py:2872 documents/views.py:360 documents/views.py:2730
|
#: documents/serialisers.py:2872 documents/views.py:348 documents/views.py:2731
|
||||||
#: paperless_mail/serialisers.py:156
|
#: paperless_mail/serialisers.py:156
|
||||||
msgid "Insufficient permissions."
|
msgid "Insufficient permissions."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1680,7 +1680,7 @@ msgstr "متغیر نامعتبر شناسایی شده است."
|
|||||||
msgid "Duplicate document identifiers are not allowed."
|
msgid "Duplicate document identifiers are not allowed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/serialisers.py:2958 documents/views.py:4780
|
#: documents/serialisers.py:2958 documents/views.py:4781
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Documents not found: %(ids)s"
|
msgid "Documents not found: %(ids)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -1920,40 +1920,40 @@ msgstr "به عنوان مرحله آخر ، لطفاً فرم زیر را تک
|
|||||||
msgid ", "
|
msgid ", "
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:315
|
#: documents/views.py:303
|
||||||
msgid "Specify only one of text, title_search, query, or more_like_id."
|
msgid "Specify only one of text, title_search, query, or more_like_id."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:353 documents/views.py:2727
|
#: documents/views.py:341 documents/views.py:2728
|
||||||
msgid "Invalid more_like_id"
|
msgid "Invalid more_like_id"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1665
|
#: documents/views.py:1652
|
||||||
msgid "Invalid AI configuration."
|
msgid "Invalid AI configuration."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1676
|
#: documents/views.py:1663
|
||||||
msgid "AI backend request timed out."
|
msgid "AI backend request timed out."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:1688
|
#: documents/views.py:1675
|
||||||
msgid "AI backend rejected the request. Check logs for details."
|
msgid "AI backend rejected the request. Check logs for details."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4796
|
#: documents/views.py:4797
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Insufficient permissions to share document %(id)s."
|
msgid "Insufficient permissions to share document %(id)s."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4843
|
#: documents/views.py:4844
|
||||||
msgid "Bundle is already being processed."
|
msgid "Bundle is already being processed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4909
|
#: documents/views.py:4910
|
||||||
msgid "The share link bundle is still being prepared. Please try again later."
|
msgid "The share link bundle is still being prepared. Please try again later."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: documents/views.py:4923
|
#: documents/views.py:4924
|
||||||
msgid "The share link bundle is unavailable."
|
msgid "The share link bundle is unavailable."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
Loaded 100 of 143 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user