Compare commits

..
132 changed files with 40740 additions and 40396 deletions
+12
View File
@@ -2047,6 +2047,18 @@ password. All of these options come from their similarly-named [Django settings]
Defaults to None. Defaults to None.
#### [`PAPERLESS_REMOTE_OCR_MODE=<str>`](#PAPERLESS_REMOTE_OCR_MODE) {#PAPERLESS_REMOTE_OCR_MODE}
: Which documents are sent to the remote OCR engine.
- `always`: every document of a supported file type is sent to the remote
engine, bypassing the local OCR engine.
- `workflow_only`: documents are processed locally unless a workflow
explicitly enables remote OCR for them, letting you use the remote engine
selectively.
Defaults to "always".
## AI {#ai} ## AI {#ai}
#### [`PAPERLESS_AI_ENABLED=<bool>`](#PAPERLESS_AI_ENABLED) {#PAPERLESS_AI_ENABLED} #### [`PAPERLESS_AI_ENABLED=<bool>`](#PAPERLESS_AI_ENABLED) {#PAPERLESS_AI_ENABLED}
+14
View File
@@ -456,6 +456,20 @@ def score(
return 10 return 10
``` ```
**Remote services**
If your parser sends document content to a remote service, declare it:
```python
class MyCustomParser:
uses_remote_service = True
```
Paperless-ngx excludes such parsers when the document being consumed has not
been marked for remote processing, so users can keep remote OCR off by default
and enable it selectively with a workflow. Parsers that do not declare the
attribute are treated as fully local and are always considered.
**Archive and rendition flags** **Archive and rendition flags**
```python ```python
+7 -4
View File
@@ -576,9 +576,7 @@ The following workflow action types are available:
- Tags, correspondent, document type and storage path - Tags, correspondent, document type and storage path
- Document owner - Document owner
- View and / or edit permissions to users or groups - View and / or edit permissions to users or groups
- Custom fields, optionally with a value. If no value is set, the field is only added to the - Custom fields. Note that no value for the field will be set
document and any value it may already have is left untouched. If a value is set, it will
overwrite an existing value of that field on the document.
##### Removal {#workflow-action-removal} ##### Removal {#workflow-action-removal}
@@ -1086,11 +1084,16 @@ Paperless-ngx supports performing OCR on documents using remote services. At the
[Microsoft's Azure "Document Intelligence" service](https://azure.microsoft.com/en-us/products/ai-services/ai-document-intelligence). [Microsoft's Azure "Document Intelligence" service](https://azure.microsoft.com/en-us/products/ai-services/ai-document-intelligence).
This is of course a paid service (with a free tier) which requires an Azure account and subscription. Azure AI is not affiliated with This is of course a paid service (with a free tier) which requires an Azure account and subscription. Azure AI is not affiliated with
Paperless-ngx in any way. When enabled, Paperless-ngx will automatically send appropriate documents to Azure for OCR processing, bypassing Paperless-ngx in any way. When enabled, Paperless-ngx will automatically send appropriate documents to Azure for OCR processing, bypassing
the local OCR engine. See the [configuration](configuration.md#PAPERLESS_REMOTE_OCR_ENGINE) options for more details. the local OCR engine. See the [configuration](configuration.md#PAPERLESS_REMOTE_OCR_ENGINE) options for more details. These
settings can be supplied as environment variables or via **Application Configuration**.
Additionally, when using a commercial service with this feature, consider both potential costs as well as any associated file size Additionally, when using a commercial service with this feature, consider both potential costs as well as any associated file size
or page limitations (e.g. with a free tier). or page limitations (e.g. with a free tier).
By default, every document of a supported file type is sent to the remote engine. To use it more selectively, set the
[remote OCR mode](configuration.md#PAPERLESS_REMOTE_OCR_MODE) to `workflow_only`. Documents are then processed locally
unless a workflow explicitly enables remote OCR for them, so you can limit the remote engine to particular documents.
## Architecture ## Architecture
Paperless-ngx consists of the following components: Paperless-ngx consists of the following components:
+8 -8
View File
@@ -599,7 +599,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.html</context> <context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.html</context>
<context context-type="linenumber">85,86</context> <context context-type="linenumber">84,85</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3768927257183755959" datatype="html"> <trans-unit id="3768927257183755959" datatype="html">
@@ -670,7 +670,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.html</context> <context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.html</context>
<context context-type="linenumber">86,87</context> <context context-type="linenumber">85,86</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="5079885666748292382" datatype="html"> <trans-unit id="5079885666748292382" datatype="html">
@@ -9907,7 +9907,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context> <context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
<context context-type="linenumber">314</context> <context context-type="linenumber">296</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="2620006875434695386" datatype="html"> <trans-unit id="2620006875434695386" datatype="html">
@@ -10234,7 +10234,7 @@
</context-group> </context-group>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context> <context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
<context context-type="linenumber">308</context> <context context-type="linenumber">290</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="3501895737484542570" datatype="html"> <trans-unit id="3501895737484542570" datatype="html">
@@ -10346,28 +10346,28 @@
<source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source> <source>Saved view &quot;<x id="PH" equiv-text="savedView.name"/>&quot; deleted.</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context> <context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
<context context-type="linenumber">178</context> <context context-type="linenumber">160</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1660419335376265526" datatype="html"> <trans-unit id="1660419335376265526" datatype="html">
<source>Views saved successfully.</source> <source>Views saved successfully.</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context> <context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
<context context-type="linenumber">255</context> <context context-type="linenumber">237</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1699877326523238632" datatype="html"> <trans-unit id="1699877326523238632" datatype="html">
<source>Error while saving views.</source> <source>Error while saving views.</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context> <context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
<context context-type="linenumber">260</context> <context context-type="linenumber">242</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="4919025779187821586" datatype="html"> <trans-unit id="4919025779187821586" datatype="html">
<source>Note: Sharing saved views does not share the underlying documents.</source> <source>Note: Sharing saved views does not share the underlying documents.</source>
<context-group purpose="location"> <context-group purpose="location">
<context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context> <context context-type="sourcefile">src/app/components/manage/saved-views/saved-views.component.ts</context>
<context context-type="linenumber">296</context> <context context-type="linenumber">278</context>
</context-group> </context-group>
</trans-unit> </trans-unit>
<trans-unit id="1229748338333965418" datatype="html"> <trans-unit id="1229748338333965418" datatype="html">
@@ -14,43 +14,48 @@
<a ngbNavLink>{{category}}</a> <a ngbNavLink>{{category}}</a>
<ng-template ngbNavContent> <ng-template ngbNavContent>
<div class="p-3"> <div class="p-3">
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-2"> @for (section of getCategorySections(category); track section) {
@for (option of getCategoryOptions(category); track option.key) { @if (section) {
<div class="col"> <h5 class="mt-4 mb-3">{{section}}</h5>
<div class="card bg-light"> }
<div class="card-body"> <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-2">
<div class="card-title d-flex align-items-center"> @for (option of getCategoryOptions(category, section); track option.key) {
<h6 class="mb-0"> <div class="col">
{{option.title}} <div class="card bg-light">
</h6> <div class="card-body">
<a class="btn btn-sm btn-link" title="Read the documentation about this setting" i18n-title [href]="getDocsUrl(option.config_key)" target="_blank" referrerpolicy="no-referrer"> <div class="card-title d-flex align-items-center">
<i-bs name="info-circle"></i-bs> <h6 class="mb-0">
</a> {{option.title}}
@if (isSet(option.key)) { </h6>
<button type="button" class="btn btn-sm btn-link text-danger ms-auto pe-0" title="Reset" i18n-title (click)="resetOption(option.key)"> <a class="btn btn-sm btn-link" title="Read the documentation about this setting" i18n-title [href]="getDocsUrl(option.config_key)" target="_blank" referrerpolicy="no-referrer">
<i-bs class="me-1" name="x"></i-bs><ng-container i18n>Reset</ng-container> <i-bs name="info-circle"></i-bs>
</button> </a>
@if (isSet(option.key)) {
<button type="button" class="btn btn-sm btn-link text-danger ms-auto pe-0" title="Reset" i18n-title (click)="resetOption(option.key)">
<i-bs class="me-1" name="x"></i-bs><ng-container i18n>Reset</ng-container>
</button>
}
</div>
<div class="mb-n3">
@switch (option.type) {
@case (ConfigOptionType.Select) { <pngx-input-select [formControlName]="option.key" [error]="errors[option.key]" [items]="option.choices" [allowNull]="true"></pngx-input-select> }
@case (ConfigOptionType.Number) { <pngx-input-number [formControlName]="option.key" [error]="errors[option.key]" [showAdd]="false"></pngx-input-number> }
@case (ConfigOptionType.Boolean) { <pngx-input-switch [formControlName]="option.key" [error]="errors[option.key]" [showUnsetNote]="true" [horizontal]="true" title="Enable" i18n-title></pngx-input-switch> }
@case (ConfigOptionType.String) { <pngx-input-text [formControlName]="option.key" [error]="errors[option.key]"></pngx-input-text> }
@case (ConfigOptionType.JSON) { <pngx-input-text [formControlName]="option.key" [error]="errors[option.key]"></pngx-input-text> }
@case (ConfigOptionType.File) { <pngx-input-file [formControlName]="option.key" (upload)="uploadFile($event, option.key)" [error]="errors[option.key]"></pngx-input-file> }
@case (ConfigOptionType.Password) { <pngx-input-password [formControlName]="option.key" [error]="errors[option.key]"></pngx-input-password> }
}
</div>
@if (option.note) {
<div class="form-text fst-italic">{{option.note}}</div>
} }
</div> </div>
<div class="mb-n3">
@switch (option.type) {
@case (ConfigOptionType.Select) { <pngx-input-select [formControlName]="option.key" [error]="errors[option.key]" [items]="option.choices" [allowNull]="true"></pngx-input-select> }
@case (ConfigOptionType.Number) { <pngx-input-number [formControlName]="option.key" [error]="errors[option.key]" [showAdd]="false"></pngx-input-number> }
@case (ConfigOptionType.Boolean) { <pngx-input-switch [formControlName]="option.key" [error]="errors[option.key]" [showUnsetNote]="true" [horizontal]="true" title="Enable" i18n-title></pngx-input-switch> }
@case (ConfigOptionType.String) { <pngx-input-text [formControlName]="option.key" [error]="errors[option.key]"></pngx-input-text> }
@case (ConfigOptionType.JSON) { <pngx-input-text [formControlName]="option.key" [error]="errors[option.key]"></pngx-input-text> }
@case (ConfigOptionType.File) { <pngx-input-file [formControlName]="option.key" (upload)="uploadFile($event, option.key)" [error]="errors[option.key]"></pngx-input-file> }
@case (ConfigOptionType.Password) { <pngx-input-password [formControlName]="option.key" [error]="errors[option.key]"></pngx-input-password> }
}
</div>
@if (option.note) {
<div class="form-text fst-italic">{{option.note}}</div>
}
</div> </div>
</div> </div>
</div> }
} </div>
</div> }
</div> </div>
</ng-template> </ng-template>
</li> </li>
@@ -8,7 +8,11 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { NgSelectModule } from '@ng-select/ng-select' import { NgSelectModule } from '@ng-select/ng-select'
import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons' import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons'
import { of, throwError } from 'rxjs' import { of, throwError } from 'rxjs'
import { OutputTypeConfig } from 'src/app/data/paperless-config' import {
ConfigCategory,
ConfigSection,
OutputTypeConfig,
} from 'src/app/data/paperless-config'
import { ConfigService } from 'src/app/services/config.service' import { ConfigService } from 'src/app/services/config.service'
import { SettingsService } from 'src/app/services/settings.service' import { SettingsService } from 'src/app/services/settings.service'
import { ToastService } from 'src/app/services/toast.service' import { ToastService } from 'src/app/services/toast.service'
@@ -158,4 +162,24 @@ describe('ConfigComponent', () => {
component.resetOption('barcodes_enabled') component.resetOption('barcodes_enabled')
expect(component.configForm.get('barcodes_enabled').value).toBeNull() expect(component.configForm.get('barcodes_enabled').value).toBeNull()
}) })
it('should group options into sections within a category, or not', () => {
const sections = component.getCategorySections(ConfigCategory.OCR)
expect(sections).toEqual([null, ConfigSection.RemoteOCR])
expect(
component
.getCategoryOptions(ConfigCategory.OCR)
.map((option) => option.key)
).toContain('output_type')
expect(
component
.getCategoryOptions(ConfigCategory.OCR, ConfigSection.RemoteOCR)
.map((option) => option.key)
).toEqual([
'remote_ocr_engine',
'remote_ocr_api_key',
'remote_ocr_endpoint',
'remote_ocr_mode',
])
})
}) })
@@ -74,8 +74,20 @@ export class ConfigComponent
return Object.values(ConfigCategory) return Object.values(ConfigCategory)
} }
getCategoryOptions(category: string): ConfigOption[] { getCategorySections(category: string): string[] {
return PaperlessConfigOptions.filter((o) => o.category === category) return [
...new Set(
PaperlessConfigOptions.filter((o) => o.category === category).map(
(o) => o.section ?? null // null means no section
)
),
]
}
getCategoryOptions(category: string, section: string = null): ConfigOption[] {
return PaperlessConfigOptions.filter(
(o) => o.category === category && (o.section ?? null) === section
)
} }
initialConfig: PaperlessConfig initialConfig: PaperlessConfig
@@ -52,10 +52,10 @@ describe('CustomFieldsValuesComponent', () => {
}) })
it('should set selectedFields and map values correctly', () => { it('should set selectedFields and map values correctly', () => {
component.value = { 1: 'value1', 3: 0, 4: false } component.value = { 1: 'value1' }
component.selectedFields = [1, 2, 3, 4] component.selectedFields = [1, 2]
expect(component.selectedFields).toEqual([1, 2, 3, 4]) expect(component.selectedFields).toEqual([1, 2])
expect(component.value).toEqual({ 1: 'value1', 2: null, 3: 0, 4: false }) expect(component.value).toEqual({ 1: 'value1', 2: null })
}) })
it('should return the correct custom field by id', () => { it('should return the correct custom field by id', () => {
@@ -77,7 +77,7 @@ export class CustomFieldsValuesComponent extends AbstractInputComponent<Object>
this._selectedFields = newFields this._selectedFields = newFields
// map the selected fields to an object with field_id as key and value as value // map the selected fields to an object with field_id as key and value as value
this.value = newFields.reduce((acc, fieldId) => { this.value = newFields.reduce((acc, fieldId) => {
acc[fieldId] = this.value?.[fieldId] ?? null acc[fieldId] = this.value?.[fieldId] || null
return acc return acc
}, {}) }, {})
this.onChange(this.value) this.onChange(this.value)
@@ -7,7 +7,7 @@
</pngx-page-header> </pngx-page-header>
<form [formGroup]="savedViewsForm" (ngSubmit)="save()"> <form [formGroup]="savedViewsForm" (ngSubmit)="save()">
<ul class="list-group mb-3" formGroupName="savedViews"> <ul class="list-group mb-3" formGroupName="savedViews">
@for (view of pagedSavedViews(); track view) { @for (view of savedViews(); track view) {
<li class="list-group-item py-3"> <li class="list-group-item py-3">
<div [formGroupName]="view.id"> <div [formGroupName]="view.id">
<div class="row"> <div class="row">
@@ -81,11 +81,6 @@
} }
</ul> </ul>
<div class="d-flex align-items-center mb-3"> <button type="button" (click)="reset()" class="btn btn-outline-secondary mb-2" [disabled]="(isDirty$ | async) === false" i18n>Cancel</button>
<button type="button" (click)="reset()" class="btn btn-outline-secondary mb-2" [disabled]="(isDirty$ | async) === false" i18n>Cancel</button> <button type="submit" class="btn btn-primary ms-2 mb-2" [disabled]="(isDirty$ | async) === false" i18n>Save</button>
<button type="submit" class="btn btn-primary ms-2 mb-2" [disabled]="(isDirty$ | async) === false" i18n>Save</button>
@if (savedViews()?.length > pageSize) {
<ngb-pagination class="ms-auto" [pageSize]="pageSize" [collectionSize]="savedViews().length" [page]="page()" [maxSize]="5" (pageChange)="page.set($event)" size="sm" aria-label="Pagination"></ngb-pagination>
}
</div>
</form> </form>
@@ -4,7 +4,6 @@ import { provideHttpClientTesting } from '@angular/common/http/testing'
import { signal } from '@angular/core' import { signal } from '@angular/core'
import { ComponentFixture, TestBed } from '@angular/core/testing' import { ComponentFixture, TestBed } from '@angular/core/testing'
import { FormsModule, ReactiveFormsModule } from '@angular/forms' import { FormsModule, ReactiveFormsModule } from '@angular/forms'
import { By } from '@angular/platform-browser'
import { NgbModal, NgbModule } from '@ng-bootstrap/ng-bootstrap' import { NgbModal, NgbModule } from '@ng-bootstrap/ng-bootstrap'
import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons' import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons'
import { Subject, of, throwError } from 'rxjs' import { Subject, of, throwError } from 'rxjs'
@@ -223,44 +222,6 @@ describe('SavedViewsComponent', () => {
).toEqual(view.show_on_dashboard) ).toEqual(view.show_on_dashboard)
}) })
it('should page saved views, clamp the page if views are removed', () => {
const manyViews = Array.from({ length: 30 }, (_, i) => ({
id: i + 1,
name: `view${i + 1}`,
})) as SavedView[]
const listSpy = jest.spyOn(savedViewService, 'list').mockReturnValue(
of({
all: manyViews.map((v) => v.id),
count: manyViews.length,
results: manyViews.concat([]),
})
)
component.ngOnInit()
fixture.detectChanges()
expect(listSpy).toHaveBeenCalledWith(1, 100000, null, false, {
full_perms: true,
})
expect(component.pagedSavedViews()).toHaveLength(25)
expect(fixture.debugElement.query(By.css('ngb-pagination'))).not.toBeNull()
// all views have controls, not just the current page
expect(
Object.keys(component.savedViewsForm.get('savedViews').value)
).toHaveLength(30)
component.page.set(2)
expect(component.pagedSavedViews()).toHaveLength(5)
listSpy.mockReturnValue(
of({
all: manyViews.slice(0, 25).map((v) => v.id),
count: 25,
results: manyViews.slice(0, 25),
})
)
component.ngOnInit()
expect(component.page()).toEqual(1)
})
it('should support editing permissions', () => { it('should support editing permissions', () => {
const confirmClicked = new Subject<any>() const confirmClicked = new Subject<any>()
const modalRef = { const modalRef = {
@@ -1,19 +1,12 @@
import { AsyncPipe } from '@angular/common' import { AsyncPipe } from '@angular/common'
import { import { Component, OnDestroy, OnInit, inject, signal } from '@angular/core'
Component,
OnDestroy,
OnInit,
computed,
inject,
signal,
} from '@angular/core'
import { import {
FormControl, FormControl,
FormGroup, FormGroup,
FormsModule, FormsModule,
ReactiveFormsModule, ReactiveFormsModule,
} from '@angular/forms' } from '@angular/forms'
import { NgbModal, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap' import { NgbModal } from '@ng-bootstrap/ng-bootstrap'
import { dirtyCheck } from '@ngneat/dirty-check-forms' import { dirtyCheck } from '@ngneat/dirty-check-forms'
import { NgxBootstrapIconsModule } from 'ngx-bootstrap-icons' import { NgxBootstrapIconsModule } from 'ngx-bootstrap-icons'
import { BehaviorSubject, Observable, of, switchMap, takeUntil } from 'rxjs' import { BehaviorSubject, Observable, of, switchMap, takeUntil } from 'rxjs'
@@ -49,7 +42,6 @@ import { LoadingComponentWithPermissions } from '../../loading-component/loading
FormsModule, FormsModule,
ReactiveFormsModule, ReactiveFormsModule,
AsyncPipe, AsyncPipe,
NgbPaginationModule,
NgxBootstrapIconsModule, NgxBootstrapIconsModule,
], ],
}) })
@@ -66,14 +58,6 @@ export class SavedViewsComponent
DisplayMode = DisplayMode DisplayMode = DisplayMode
readonly savedViews = signal<SavedView[]>(undefined) readonly savedViews = signal<SavedView[]>(undefined)
readonly page = signal(1)
public readonly pageSize = 25
// All views are loaded at init, so paging is only for display
readonly pagedSavedViews = computed(() => {
const start = (this.page() - 1) * this.pageSize
return this.savedViews()?.slice(start, start + this.pageSize)
})
private savedViewsGroup = new FormGroup({}) private savedViewsGroup = new FormGroup({})
public savedViewsForm: FormGroup = new FormGroup({ public savedViewsForm: FormGroup = new FormGroup({
savedViews: this.savedViewsGroup, savedViews: this.savedViewsGroup,
@@ -100,11 +84,9 @@ export class SavedViewsComponent
private reloadViews(): void { private reloadViews(): void {
this.loading.set(true) this.loading.set(true)
this.savedViewService this.savedViewService
.list(1, 100000, null, false, { full_perms: true }) .list(null, null, null, false, { full_perms: true })
.subscribe((r) => { .subscribe((r) => {
this.savedViews.set(r.results) this.savedViews.set(r.results)
const pageCount = Math.ceil(r.results.length / this.pageSize)
this.page.update((page) => Math.min(page, Math.max(1, pageCount)))
this.initialize() this.initialize()
}) })
} }
+55
View File
@@ -54,6 +54,10 @@ export const ConfigCategory = {
AI: $localize`AI Settings`, AI: $localize`AI Settings`,
} }
export const ConfigSection = {
RemoteOCR: $localize`Remote OCR`,
}
export const LLMEmbeddingBackendConfig = { export const LLMEmbeddingBackendConfig = {
OPENAI_LIKE: 'openai-like', OPENAI_LIKE: 'openai-like',
HUGGINGFACE: 'huggingface', HUGGINGFACE: 'huggingface',
@@ -65,6 +69,15 @@ export const LLMBackendConfig = {
OLLAMA: 'ollama', OLLAMA: 'ollama',
} }
export const RemoteOCREngineConfig = {
AZURE_AI: 'azureai',
}
export const RemoteOCRModeConfig = {
ALWAYS: 'always',
WORKFLOW_ONLY: 'workflow_only',
}
export interface ConfigOption { export interface ConfigOption {
key: string key: string
title: string title: string
@@ -72,6 +85,7 @@ export interface ConfigOption {
choices?: Array<{ id: string; name: string }> choices?: Array<{ id: string; name: string }>
config_key?: string config_key?: string
category: string category: string
section?: string
note?: string note?: string
} }
@@ -181,6 +195,43 @@ export const PaperlessConfigOptions: ConfigOption[] = [
config_key: 'PAPERLESS_OCR_USER_ARGS', config_key: 'PAPERLESS_OCR_USER_ARGS',
category: ConfigCategory.OCR, category: ConfigCategory.OCR,
}, },
{
key: 'remote_ocr_engine',
title: $localize`Remote OCR Engine`,
type: ConfigOptionType.Select,
choices: mapToItems(RemoteOCREngineConfig),
config_key: 'PAPERLESS_REMOTE_OCR_ENGINE',
category: ConfigCategory.OCR,
section: ConfigSection.RemoteOCR,
note: $localize`Enabling remote OCR sends documents to a third-party service for processing. Consider the privacy implications as well as potential costs before enabling.`,
},
{
key: 'remote_ocr_api_key',
title: $localize`Remote OCR API Key`,
type: ConfigOptionType.Password,
config_key: 'PAPERLESS_REMOTE_OCR_API_KEY',
category: ConfigCategory.OCR,
section: ConfigSection.RemoteOCR,
},
{
key: 'remote_ocr_endpoint',
title: $localize`Remote OCR Endpoint`,
type: ConfigOptionType.String,
config_key: 'PAPERLESS_REMOTE_OCR_ENDPOINT',
category: ConfigCategory.OCR,
section: ConfigSection.RemoteOCR,
note: $localize`Required when using the Azure AI engine.`,
},
{
key: 'remote_ocr_mode',
title: $localize`Remote OCR Mode`,
type: ConfigOptionType.Select,
choices: mapToItems(RemoteOCRModeConfig),
config_key: 'PAPERLESS_REMOTE_OCR_MODE',
category: ConfigCategory.OCR,
section: ConfigSection.RemoteOCR,
note: $localize`Which documents are sent to the remote engine. Use 'workflow_only' to keep remote OCR off unless a workflow enables it for a document.`,
},
{ {
key: 'app_logo', key: 'app_logo',
title: $localize`Application Logo`, title: $localize`Application Logo`,
@@ -398,6 +449,10 @@ export interface PaperlessConfig extends ObjectWithId {
barcode_enable_tag: boolean barcode_enable_tag: boolean
barcode_tag_mapping: object barcode_tag_mapping: object
barcode_tag_split: boolean barcode_tag_split: boolean
remote_ocr_engine: string
remote_ocr_api_key: string
remote_ocr_endpoint: string
remote_ocr_mode: string
ai_enabled: boolean ai_enabled: boolean
llm_embedding_backend: string llm_embedding_backend: string
llm_embedding_model: string llm_embedding_model: string
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+8
View File
@@ -53,6 +53,7 @@ from documents.utils import copy_basic_file_stats
from documents.utils import copy_file_with_basic_stats from documents.utils import copy_file_with_basic_stats
from documents.utils import run_subprocess from documents.utils import run_subprocess
from paperless.config import OcrConfig from paperless.config import OcrConfig
from paperless.config import RemoteOCRConfig
from paperless.models import ArchiveFileGenerationChoices from paperless.models import ArchiveFileGenerationChoices
from paperless.parsers import ParserContext from paperless.parsers import ParserContext
from paperless.parsers import ParserProtocol from paperless.parsers import ParserProtocol
@@ -451,12 +452,19 @@ class ConsumerPlugin(
except Exception as e: except Exception as e:
self.log.error(f"Error attempting to clean PDF: {e}") self.log.error(f"Error attempting to clean PDF: {e}")
# Workflows have already run at this point, so the metadata knows
# whether this document was singled out for remote OCR
allow_remote = (
self.metadata.remote_ocr or RemoteOCRConfig().remote_ocr_by_default
)
# Based on the mime type, get the parser for that type # Based on the mime type, get the parser for that type
parser_class: type[ParserProtocol] | None = ( parser_class: type[ParserProtocol] | None = (
get_parser_registry().get_parser_for_file( get_parser_registry().get_parser_for_file(
mime_type, mime_type,
self.filename, self.filename,
self.working_copy, self.working_copy,
allow_remote=allow_remote,
) )
) )
if not parser_class: if not parser_class:
+3
View File
@@ -34,6 +34,7 @@ class DocumentMetadataOverrides:
skip_asn_if_exists: bool = False skip_asn_if_exists: bool = False
version_label: str | None = None version_label: str | None = None
actor_id: int | None = None actor_id: int | None = None
remote_ocr: bool = False
def update(self, other: "DocumentMetadataOverrides") -> "DocumentMetadataOverrides": def update(self, other: "DocumentMetadataOverrides") -> "DocumentMetadataOverrides":
""" """
@@ -57,6 +58,8 @@ class DocumentMetadataOverrides:
self.actor_id = other.actor_id self.actor_id = other.actor_id
if other.skip_asn_if_exists: if other.skip_asn_if_exists:
self.skip_asn_if_exists = True self.skip_asn_if_exists = True
if other.remote_ocr:
self.remote_ocr = True
if other.version_label is not None: if other.version_label is not None:
self.version_label = other.version_label self.version_label = other.version_label
-7
View File
@@ -3213,13 +3213,6 @@ class WorkflowActionSerializer(serializers.ModelSerializer[WorkflowAction]):
{"assign_title": f'Invalid f-string detected: "{e.args[0]}"'}, {"assign_title": f'Invalid f-string detected: "{e.args[0]}"'},
) )
if attrs.get("assign_custom_fields_values"):
# Empty strings treated as None to avoid unexpected behavior
attrs["assign_custom_fields_values"] = {
field_id: (None if value == "" else value)
for field_id, value in attrs["assign_custom_fields_values"].items()
}
if ( if (
"type" in attrs "type" in attrs
and attrs["type"] == WorkflowAction.WorkflowActionType.EMAIL and attrs["type"] == WorkflowAction.WorkflowActionType.EMAIL
+10 -1
View File
@@ -66,6 +66,7 @@ from documents.utils import compute_checksum
from documents.utils import identity from documents.utils import identity
from documents.workflows.utils import get_workflows_for_trigger from documents.workflows.utils import get_workflows_for_trigger
from paperless.config import AIConfig from paperless.config import AIConfig
from paperless.config import RemoteOCRConfig
from paperless.logging import consume_task_id 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
@@ -337,10 +338,17 @@ def bulk_update_documents(document_ids) -> None:
@shared_task @shared_task
def update_document_content_maybe_archive_file(document_id) -> None: def update_document_content_maybe_archive_file(
document_id,
*,
remote_ocr: bool = False,
) -> None:
""" """
Re-creates OCR content and thumbnail for a document, and archive file if Re-creates OCR content and thumbnail for a document, and archive file if
it exists. it exists.
Remote OCR is used only when the engine is configured to handle everything
or if explicitly asked for via ``remote_ocr``.
""" """
document = Document.objects.get(id=document_id) document = Document.objects.get(id=document_id)
@@ -350,6 +358,7 @@ def update_document_content_maybe_archive_file(document_id) -> None:
mime_type, mime_type,
document.original_filename or "", document.original_filename or "",
document.source_path, document.source_path,
allow_remote=remote_ocr or RemoteOCRConfig().remote_ocr_by_default,
) )
if not parser_class: if not parser_class:
@@ -72,6 +72,10 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
"barcode_enable_tag": None, "barcode_enable_tag": None,
"barcode_tag_mapping": None, "barcode_tag_mapping": None,
"barcode_tag_split": None, "barcode_tag_split": None,
"remote_ocr_engine": None,
"remote_ocr_api_key": None,
"remote_ocr_endpoint": None,
"remote_ocr_mode": None,
"ai_enabled": False, "ai_enabled": False,
"llm_embedding_backend": None, "llm_embedding_backend": None,
"llm_embedding_model": None, "llm_embedding_model": None,
@@ -870,6 +874,49 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
config.refresh_from_db() config.refresh_from_db()
self.assertEqual(config.llm_api_key, None) self.assertEqual(config.llm_api_key, None)
def test_update_remote_ocr_api_key(self) -> None:
"""
GIVEN:
- Existing config with remote_ocr_api_key specified
WHEN:
- API to update remote_ocr_api_key is called with all *s
- API to update remote_ocr_api_key is called with empty string
THEN:
- remote_ocr_api_key is unchanged
- remote_ocr_api_key is set to None
"""
config = ApplicationConfiguration.objects.first()
assert config is not None
config.remote_ocr_api_key = "1234567890"
config.save()
# Test with all *
response = self.client.patch(
f"{self.ENDPOINT}1/",
json.dumps(
{
"remote_ocr_api_key": "*" * 32,
},
),
content_type="application/json",
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
config.refresh_from_db()
self.assertEqual(config.remote_ocr_api_key, "1234567890")
# Test with empty string
response = self.client.patch(
f"{self.ENDPOINT}1/",
json.dumps(
{
"remote_ocr_api_key": "",
},
),
content_type="application/json",
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
config.refresh_from_db()
self.assertEqual(config.remote_ocr_api_key, None)
def test_enable_ai_index_triggers_update(self) -> None: def test_enable_ai_index_triggers_update(self) -> None:
""" """
GIVEN: GIVEN:
@@ -422,11 +422,6 @@ class TestApiWorkflows(DirectoriesMixin, APITestCase):
json.dumps( json.dumps(
{ {
"assign_title": "", "assign_title": "",
"assign_custom_fields": [self.cf1.id, self.cf2.id],
"assign_custom_fields_values": {
str(self.cf1.id): "",
str(self.cf2.id): 0,
},
}, },
), ),
content_type="application/json", content_type="application/json",
@@ -434,10 +429,6 @@ class TestApiWorkflows(DirectoriesMixin, APITestCase):
self.assertEqual(response.status_code, status.HTTP_201_CREATED) self.assertEqual(response.status_code, status.HTTP_201_CREATED)
action = WorkflowAction.objects.get(id=response.data["id"]) action = WorkflowAction.objects.get(id=response.data["id"])
self.assertIsNone(action.assign_title) self.assertIsNone(action.assign_title)
self.assertEqual(
action.assign_custom_fields_values,
{str(self.cf1.id): None, str(self.cf2.id): 0},
)
response = self.client.post( response = self.client.post(
self.ENDPOINT_TRIGGERS, self.ENDPOINT_TRIGGERS,
+80
View File
@@ -1559,6 +1559,72 @@ class PostConsumeTestCase(DirectoriesMixin, GetConsumerMixin, TestCase):
consumer.run_post_consume_script(doc) consumer.run_post_consume_script(doc)
class TestConsumerRemoteOCR(
DirectoriesMixin,
FileSystemAssertsMixin,
GetConsumerMixin,
TestCase,
):
"""
The consumer resolves the remote OCR mode and the per-document request from
workflows into the allow_remote flag it hands to the parser registry.
"""
def setUp(self) -> None:
super().setUp()
patcher = mock.patch("documents.consumer.get_parser_registry")
self.mock_registry = patcher.start()
self.mock_registry.return_value.get_parser_for_file.return_value = DummyParser
self.addCleanup(patcher.stop)
def _consume(self, *, overrides: DocumentMetadataOverrides | None = None) -> bool:
src = (
Path(__file__).parent
/ "samples"
/ "documents"
/ "originals"
/ "0000001.pdf"
)
dst = self.dirs.scratch_dir / "sample.pdf"
shutil.copy(src, dst)
with self.get_consumer(dst, overrides=overrides) as consumer:
consumer.run()
_, kwargs = self.mock_registry.return_value.get_parser_for_file.call_args
return kwargs["allow_remote"]
@override_settings(REMOTE_OCR_MODE="always")
def test_always_mode_allows_remote(self) -> None:
"""
GIVEN: Remote OCR mode is 'always'.
WHEN: A document is consumed without any workflow asking for it.
THEN: The registry is allowed to pick the remote parser.
"""
self.assertTrue(self._consume())
@override_settings(REMOTE_OCR_MODE="workflow_only")
def test_workflow_only_mode_denies_remote_by_default(self) -> None:
"""
GIVEN: Remote OCR mode is 'workflow_only'.
WHEN: A document is consumed and nothing asked for remote OCR.
THEN: The remote parser is excluded.
"""
self.assertFalse(self._consume())
@override_settings(REMOTE_OCR_MODE="workflow_only")
def test_workflow_only_mode_allows_remote_when_requested(self) -> None:
"""
GIVEN: Remote OCR mode is 'workflow_only'.
WHEN: A workflow set remote_ocr on the metadata overrides.
THEN: The registry is allowed to pick the remote parser.
"""
self.assertTrue(
self._consume(overrides=DocumentMetadataOverrides(remote_ocr=True)),
)
class TestMetadataOverrides(TestCase): class TestMetadataOverrides(TestCase):
def test_update_skip_asn_if_exists(self) -> None: def test_update_skip_asn_if_exists(self) -> None:
base = DocumentMetadataOverrides() base = DocumentMetadataOverrides()
@@ -1566,6 +1632,20 @@ class TestMetadataOverrides(TestCase):
base.update(incoming) base.update(incoming)
self.assertTrue(base.skip_asn_if_exists) self.assertTrue(base.skip_asn_if_exists)
def test_update_remote_ocr(self) -> None:
base = DocumentMetadataOverrides()
base.update(DocumentMetadataOverrides(remote_ocr=True))
self.assertTrue(base.remote_ocr)
def test_update_remote_ocr_is_not_unset(self) -> None:
"""
A later workflow that says nothing must not undo an earlier one that
asked for remote OCR.
"""
base = DocumentMetadataOverrides(remote_ocr=True)
base.update(DocumentMetadataOverrides())
self.assertTrue(base.remote_ocr)
def test_update_actor_and_version_label(self) -> None: def test_update_actor_and_version_label(self) -> None:
base = DocumentMetadataOverrides( base = DocumentMetadataOverrides(
actor_id=1, actor_id=1,
+39
View File
@@ -287,6 +287,45 @@ class TestUpdateContent(DirectoriesMixin, TestCase):
self.assertNotEqual(Document.objects.get(pk=doc.pk).content, "test") self.assertNotEqual(Document.objects.get(pk=doc.pk).content, "test")
class TestUpdateContentRemoteOCR(DirectoriesMixin, TestCase):
"""
Consumption workflows do not run on reprocess, so the remote parser is
used only in 'always' mode or when the caller explicitly asks for it.
"""
def setUp(self) -> None:
super().setUp()
patcher = mock.patch("documents.tasks.get_parser_registry")
self.mock_registry = patcher.start()
self.mock_registry.return_value.get_parser_for_file.return_value = None
self.addCleanup(patcher.stop)
self.doc = Document.objects.create(
title="test",
content="my document",
checksum="wow",
mime_type="application/pdf",
)
def _allow_remote(self, **kwargs) -> bool:
tasks.update_document_content_maybe_archive_file(self.doc.pk, **kwargs)
_, call_kwargs = self.mock_registry.return_value.get_parser_for_file.call_args
return call_kwargs["allow_remote"]
@override_settings(REMOTE_OCR_MODE="always")
def test_always_mode_allows_remote(self) -> None:
self.assertTrue(self._allow_remote())
@override_settings(REMOTE_OCR_MODE="workflow_only")
def test_workflow_only_mode_denies_remote_by_default(self) -> None:
self.assertFalse(self._allow_remote())
@override_settings(REMOTE_OCR_MODE="workflow_only")
def test_workflow_only_mode_allows_remote_when_requested(self) -> None:
self.assertTrue(self._allow_remote(remote_ocr=True))
class TestAIIndex(DirectoriesMixin, TestCase): class TestAIIndex(DirectoriesMixin, TestCase):
@override_settings( @override_settings(
AI_ENABLED=True, AI_ENABLED=True,
-49
View File
@@ -2000,55 +2000,6 @@ class TestWorkflows(
r"Doc added in \w{3,}", r"Doc added in \w{3,}",
) # Match any 3-letter month name ) # Match any 3-letter month name
def test_document_updated_workflow_existing_custom_field_empty_value(self) -> None:
"""
GIVEN:
- Existing workflow with UPDATED trigger and action that assigns a custom field
with an empty value
WHEN:
- Document is updated that already contains the field with a value
THEN:
- The existing value is left untouched, see GH #13627
"""
trigger = WorkflowTrigger.objects.create(
type=WorkflowTrigger.WorkflowTriggerType.DOCUMENT_UPDATED,
filter_has_document_type=self.dt,
)
action = WorkflowAction.objects.create()
action.assign_custom_fields.add(self.cf1)
action.assign_custom_fields_values = {self.cf1.pk: ""}
action.save()
w = Workflow.objects.create(
name="Workflow 1",
order=0,
)
w.triggers.add(trigger)
w.actions.add(action)
w.save()
doc = Document.objects.create(
title="sample test",
correspondent=self.c,
original_filename="sample.pdf",
)
CustomFieldInstance.objects.create(
document=doc,
field=self.cf1,
value_text="existing value",
)
superuser = User.objects.create_superuser("superuser")
self.client.force_authenticate(user=superuser)
self.client.patch(
f"/api/documents/{doc.id}/",
{"document_type": self.dt.id},
format="json",
)
doc.refresh_from_db()
self.assertEqual(doc.custom_fields.get(field=self.cf1).value, "existing value")
def test_document_updated_workflow_existing_custom_field(self) -> None: def test_document_updated_workflow_existing_custom_field(self) -> None:
""" """
GIVEN: GIVEN:
+1 -2
View File
@@ -105,8 +105,7 @@ def apply_assignment_to_document(
field=field, field=field,
document=document, document=document,
).first() ).first()
# empty string is indistinguishable from no value in the UI if instance and args[value_field_name] is not None:
if instance and args[value_field_name] not in (None, ""):
setattr(instance, value_field_name, args[value_field_name]) setattr(instance, value_field_name, args[value_field_name])
instance.save() instance.save()
elif not instance: elif not instance:
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Afrikaans\n" "Language-Team: Afrikaans\n"
"Language: af_ZA\n" "Language: af_ZA\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumente" msgstr "Dokumente"
#: documents/filters.py:471 #: documents/filters.py:472
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:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Ongeldige gepasmaakte veldnavraaguitdrukking" msgstr "Ongeldige gepasmaakte veldnavraaguitdrukking"
#: documents/filters.py:500 #: documents/filters.py:501
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:521 #: documents/filters.py:522
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:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "" msgstr ""
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "" msgstr ""
#: documents/filters.py:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "" msgstr ""
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "" msgstr ""
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Ongeldige kleur." msgstr "Ongeldige kleur."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Lêertipe %(type)s word nie ondersteun nie" msgstr "Lêertipe %(type)s word nie ondersteun nie"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Ongeldige veranderlike bespeur." msgstr "Ongeldige veranderlike bespeur."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Amharic\n" "Language-Team: Amharic\n"
"Language: am_ET\n" "Language: am_ET\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "መዝገባት" msgstr "መዝገባት"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "የሚሰራው እሴት \"JSON\" መሆን አለበት" msgstr "የሚሰራው እሴት \"JSON\" መሆን አለበት"
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "ልክ ያልሆነ የተወሰነ የቦታ መጠይቅ አገላለጽ" msgstr "ልክ ያልሆነ የተወሰነ የቦታ መጠይቅ አገላለጽ"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "ልክ ያልሆነ የመግለጫ ዝርዝር። ባዶ መሆን የለበትም።" msgstr "ልክ ያልሆነ የመግለጫ ዝርዝር። ባዶ መሆን የለበትም።"
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "ልክ ያልሆነ የሎጂክ ኦፕሬተር {op!r}" msgstr "ልክ ያልሆነ የሎጂክ ኦፕሬተር {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "ከፍተኛው የጥያቄ ሁኔታዎች/መጠን ብዛት አልፏል።" msgstr "ከፍተኛው የጥያቄ ሁኔታዎች/መጠን ብዛት አልፏል።"
#: documents/filters.py:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "ከፍተኛው የጥገኝነት ጥልቀት አልፏል።" msgstr "ከፍተኛው የጥገኝነት ጥልቀት አልፏል።"
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "ይህ ልማድ አልተገኘም" msgstr "ይህ ልማድ አልተገኘም"
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "" msgstr ""
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "" msgstr ""
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "" msgstr ""
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Arabic\n" "Language-Team: Arabic\n"
"Language: ar_SA\n" "Language: ar_SA\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "المستندات" msgstr "المستندات"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "يجب أن تكون القيمة JSON." msgstr "يجب أن تكون القيمة JSON."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "تعبير استعلام غير صالح للحقول المخصصة" msgstr "تعبير استعلام غير صالح للحقول المخصصة"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "قائمة عبارة خاطئة." msgstr "قائمة عبارة خاطئة."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "" msgstr ""
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "تجاوز الحد الأقصى لعدد شروط الاستعلام." msgstr "تجاوز الحد الأقصى لعدد شروط الاستعلام."
#: documents/filters.py:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "" msgstr ""
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "لم يتم العثور على حقل مخصص" msgstr "لم يتم العثور على حقل مخصص"
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "لون خاطئ." msgstr "لون خاطئ."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "نوع الملف %(type)s غير مدعوم" msgstr "نوع الملف %(type)s غير مدعوم"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "اكتشاف متغير خاطئ." msgstr "اكتشاف متغير خاطئ."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1635,36 +1635,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Belarusian\n" "Language-Team: Belarusian\n"
"Language: be_BY\n" "Language: be_BY\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Дакументы" msgstr "Дакументы"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "" msgstr ""
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "" msgstr ""
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "" msgstr ""
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "" msgstr ""
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "" msgstr ""
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "" msgstr ""
#: documents/filters.py:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "" msgstr ""
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "" msgstr ""
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Няправільны колер." msgstr "Няправільны колер."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Тып файла %(type)s не падтрымліваецца" msgstr "Тып файла %(type)s не падтрымліваецца"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Выяўлена няправільная зменная." msgstr "Выяўлена няправільная зменная."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Bulgarian\n" "Language-Team: Bulgarian\n"
"Language: bg_BG\n" "Language: bg_BG\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Документи" msgstr "Документи"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "Стойността трябва да е валидна JSON." msgstr "Стойността трябва да е валидна JSON."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Невалидна заявка на персонализираното полето" msgstr "Невалидна заявка на персонализираното полето"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "Списък с невалиден израз. Не може да е празно." msgstr "Списък с невалиден израз. Не може да е празно."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "Невалиден логически оператор {op!r}" msgstr "Невалиден логически оператор {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "Надвишен е максимален брой за заявки." msgstr "Надвишен е максимален брой за заявки."
#: documents/filters.py:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Надвишена е максималната дълбочина на вмъкване." msgstr "Надвишена е максималната дълбочина на вмъкване."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Персонализирано поле не е намерено" msgstr "Персонализирано поле не е намерено"
@@ -1338,48 +1338,48 @@ msgstr "стартиране на работния процес"
msgid "workflow runs" msgid "workflow runs"
msgstr "стартиране на работните процеси" msgstr "стартиране на работните процеси"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Невалиден цвят." msgstr "Невалиден цвят."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Файловия тип %(type)s не се поддържа" msgstr "Файловия тип %(type)s не се поддържа"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Засечена е невалидна променлива." msgstr "Засечена е невалидна променлива."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1635,36 +1635,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Catalan\n" "Language-Team: Catalan\n"
"Language: ca_ES\n" "Language: ca_ES\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Documents " msgstr "Documents "
#: documents/filters.py:471 #: documents/filters.py:472
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:490 #: documents/filters.py:491
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:500 #: documents/filters.py:501
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:521 #: documents/filters.py:522
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:535 #: documents/filters.py:536
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:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
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:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Camp personalitzat no trobat" msgstr "Camp personalitzat no trobat"
@@ -1338,48 +1338,48 @@ msgstr "data del flux"
msgid "workflow runs" msgid "workflow runs"
msgstr "flux corrents" msgstr "flux corrents"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Permisos insuficients." msgstr "Permisos insuficients."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Color Invàlid." msgstr "Color Invàlid."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Tipus arxiu %(type)s no suportat" msgstr "Tipus arxiu %(type)s no suportat"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "ID de camp personalizat ha de ser enter: %(id)s" msgstr "ID de camp personalizat ha de ser enter: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "Camp personalitzat amb ID %(id)s no existeix" msgstr "Camp personalitzat amb ID %(id)s no existeix"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Camps personalitzats han de ser una llista d'enters o un objecte que mapegi els identificadors amb els valors." msgstr "Camps personalitzats han de ser una llista d'enters o un objecte que mapegi els identificadors amb els valors."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Alguns camps personalitzats no existeixen o s'han especificat dues vegades." msgstr "Alguns camps personalitzats no existeixen o s'han especificat dues vegades."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Variable detectada invàlida." msgstr "Variable detectada invàlida."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
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:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, 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"
@@ -1635,36 +1635,36 @@ msgstr "L'esquema d'URI '{parts.scheme}' no està permès. Esquemes permesos: {'
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "No s'ha pogut analitzar l'URI {value}" msgstr "No s'ha pogut analitzar l'URI {value}"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "Invalid more_like_id" msgstr "Invalid more_like_id"
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "Configuració AI invàlida." msgstr "Configuració AI invàlida."
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
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:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
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."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Czech\n" "Language-Team: Czech\n"
"Language: cs_CZ\n" "Language: cs_CZ\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumenty" msgstr "Dokumenty"
#: documents/filters.py:471 #: documents/filters.py:472
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:490 #: documents/filters.py:491
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:500 #: documents/filters.py:501
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:521 #: documents/filters.py:522
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:535 #: documents/filters.py:536
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:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
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:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Vlastní pole nebylo nalezeno" msgstr "Vlastní pole nebylo nalezeno"
@@ -1338,48 +1338,48 @@ msgstr "spuštění pracovního postupu"
msgid "workflow runs" msgid "workflow runs"
msgstr "spuštění pracovních postupů" msgstr "spuštění pracovních postupů"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Nedostatečná oprávnění." msgstr "Nedostatečná oprávnění."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Neplatná barva." msgstr "Neplatná barva."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Typ souboru %(type)s není podporován" msgstr "Typ souboru %(type)s není podporován"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "Vlastní ID pole musí být celé číslo: %(id)s" msgstr "Vlastní ID pole musí být celé číslo: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "Vlastní pole s ID %(id)s neexistuje" msgstr "Vlastní pole s ID %(id)s neexistuje"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Vlastní pole musí být seznam celých čísel nebo ID pro mapování objektů na hodnoty." msgstr "Vlastní pole musí být seznam celých čísel nebo ID pro mapování objektů na hodnoty."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Některá vlastní pole neexistují nebo byla zadána dvakrát." msgstr "Některá vlastní pole neexistují nebo byla zadána dvakrát."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Zjištěna neplatná proměnná." msgstr "Zjištěna neplatná proměnná."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1636,36 +1636,36 @@ msgstr "URI schéma '{parts.scheme}' není povoleno. Povolená schémata: {',\n"
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "Nelze zpracovat URI {value}" msgstr "Nelze zpracovat URI {value}"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Danish\n" "Language-Team: Danish\n"
"Language: da_DK\n" "Language: da_DK\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumenter" msgstr "Dokumenter"
#: documents/filters.py:471 #: documents/filters.py:472
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:490 #: documents/filters.py:491
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:500 #: documents/filters.py:501
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:521 #: documents/filters.py:522
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:535 #: documents/filters.py:536
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:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Maksimal indlejringsdybde overskredet." msgstr "Maksimal indlejringsdybde overskredet."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Tilpasset felt ikke fundet" msgstr "Tilpasset felt ikke fundet"
@@ -1338,48 +1338,48 @@ msgstr "workflow-kørsel"
msgid "workflow runs" msgid "workflow runs"
msgstr "workflow-kørsler" msgstr "workflow-kørsler"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Ugyldig farve." msgstr "Ugyldig farve."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Filtype %(type)s understøttes ikke" msgstr "Filtype %(type)s understøttes ikke"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Ugyldig variabel fundet." msgstr "Ugyldig variabel fundet."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1635,36 +1635,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:28\n" "PO-Revision-Date: 2026-07-31 16:15\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,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumente" msgstr "Dokumente"
#: documents/filters.py:471 #: documents/filters.py:472
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:490 #: documents/filters.py:491
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:500 #: documents/filters.py:501
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:521 #: documents/filters.py:522
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:535 #: documents/filters.py:536
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:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Maximale Verschachtelungstiefe überschritten." msgstr "Maximale Verschachtelungstiefe überschritten."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Benutzerdefiniertes Feld nicht gefunden" msgstr "Benutzerdefiniertes Feld nicht gefunden"
@@ -1338,48 +1338,48 @@ msgstr "Arbeitsablauf-Ausführung"
msgid "workflow runs" msgid "workflow runs"
msgstr "Arbeitsablauf wird ausgeführt" msgstr "Arbeitsablauf wird ausgeführt"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Unzureichende Berechtigungen." msgstr "Unzureichende Berechtigungen."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Ungültige Farbe." msgstr "Ungültige Farbe."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Dateityp %(type)s nicht unterstützt" msgstr "Dateityp %(type)s nicht unterstützt"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "Feld-ID eines benutzerdefinierten Felds muss eine Ganzzahl sein: %(id)s" msgstr "Feld-ID eines benutzerdefinierten Felds muss eine Ganzzahl sein: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "Benutzerdefiniertes Feld mit ID %(id)s existiert nicht" msgstr "Benutzerdefiniertes Feld mit ID %(id)s existiert nicht"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Benutzerdefinierte Felder müssen eine Liste von Ganzzahlen oder ein Objekt mit Zuordnung von IDs zu Werten sein." msgstr "Benutzerdefinierte Felder müssen eine Liste von Ganzzahlen oder ein Objekt mit Zuordnung von IDs zu Werten sein."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Einige benutzerdefinierte Felder existieren nicht oder wurden zweimal angegeben." msgstr "Einige benutzerdefinierte Felder existieren nicht oder wurden zweimal angegeben."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Ungültige Variable erkannt." msgstr "Ungültige Variable erkannt."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
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:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, 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"
@@ -1635,36 +1635,36 @@ msgstr "URI-Schema „{parts.scheme}“ ist nicht erlaubt. Erlaubte Schemata: {'
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "URI {value} kann nicht gelesen werden" msgstr "URI {value} kann nicht gelesen werden"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
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:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "Ungültige KI-Konfiguration." msgstr "Ungültige KI-Konfiguration."
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
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:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
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."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: German\n" "Language-Team: German\n"
"Language: de_DE\n" "Language: de_DE\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumente" msgstr "Dokumente"
#: documents/filters.py:471 #: documents/filters.py:472
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:490 #: documents/filters.py:491
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:500 #: documents/filters.py:501
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:521 #: documents/filters.py:522
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:535 #: documents/filters.py:536
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:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Maximale Verschachtelungstiefe überschritten." msgstr "Maximale Verschachtelungstiefe überschritten."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Zusatzfeld nicht gefunden" msgstr "Zusatzfeld nicht gefunden"
@@ -1338,48 +1338,48 @@ msgstr "Arbeitsablauf-Ausführung"
msgid "workflow runs" msgid "workflow runs"
msgstr "Arbeitsablauf wird ausgeführt" msgstr "Arbeitsablauf wird ausgeführt"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Unzureichende Berechtigungen." msgstr "Unzureichende Berechtigungen."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Ungültige Farbe." msgstr "Ungültige Farbe."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Dateityp %(type)s nicht unterstützt" msgstr "Dateityp %(type)s nicht unterstützt"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "Zusatzfeld-ID muss eine Ganzzahl sein: %(id)s" msgstr "Zusatzfeld-ID muss eine Ganzzahl sein: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "Zusatzfeld mit ID %(id)s existiert nicht" msgstr "Zusatzfeld mit ID %(id)s existiert nicht"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Zusatzfelder müssen eine Liste von Ganzzahlen oder ein Objekt mit Zuordnung von IDs zu Werten sein." msgstr "Zusatzfelder müssen eine Liste von Ganzzahlen oder ein Objekt mit Zuordnung von IDs zu Werten sein."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Einige Zusatzfelder existieren nicht oder wurden zweimal angegeben." msgstr "Einige Zusatzfelder existieren nicht oder wurden zweimal angegeben."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Ungültige Variable erkannt." msgstr "Ungültige Variable erkannt."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
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:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, 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"
@@ -1635,36 +1635,36 @@ msgstr "URI-Schema „{parts.scheme}“ ist nicht erlaubt. Erlaubte Schemata: {'
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "URI {value} kann nicht gelesen werden" msgstr "URI {value} kann nicht gelesen werden"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
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:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "Ungültige KI-Konfiguration." msgstr "Ungültige KI-Konfiguration."
#: documents/views.py:1575 #: documents/views.py:1576
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:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
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:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
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."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Greek\n" "Language-Team: Greek\n"
"Language: el_GR\n" "Language: el_GR\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Έγγραφα" msgstr "Έγγραφα"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "Η τιμή πρέπει να είναι σε έγκυρη μορφή JSON." msgstr "Η τιμή πρέπει να είναι σε έγκυρη μορφή JSON."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Μη έγκυρη έκφραση προσαρμοσμένου ερωτήματος πεδίου" msgstr "Μη έγκυρη έκφραση προσαρμοσμένου ερωτήματος πεδίου"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "Μη έγκυρη λίστα έκφρασης. Πρέπει να είναι μη κενή." msgstr "Μη έγκυρη λίστα έκφρασης. Πρέπει να είναι μη κενή."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "Μη έγκυρος λογικός τελεστής {op!r}" msgstr "Μη έγκυρος λογικός τελεστής {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "Υπέρβαση μέγιστου αριθμού συνθηκών ερωτήματος." msgstr "Υπέρβαση μέγιστου αριθμού συνθηκών ερωτήματος."
#: documents/filters.py:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Υπέρβαση μέγιστου βάθους εμφώλευσης." msgstr "Υπέρβαση μέγιστου βάθους εμφώλευσης."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Το προσαρμοσμένο πεδίο δε βρέθηκε" msgstr "Το προσαρμοσμένο πεδίο δε βρέθηκε"
@@ -1338,48 +1338,48 @@ msgstr "εκτέλεση ροής εργασίας"
msgid "workflow runs" msgid "workflow runs"
msgstr "εκτελέσεις ροής εργασίας" msgstr "εκτελέσεις ροής εργασίας"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Άκυρο χρώμα." msgstr "Άκυρο χρώμα."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Ο τύπος αρχείου %(type)s δεν υποστηρίζεται" msgstr "Ο τύπος αρχείου %(type)s δεν υποστηρίζεται"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Εντοπίστηκε μη έγκυρη μεταβλητή." msgstr "Εντοπίστηκε μη έγκυρη μεταβλητή."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1635,36 +1635,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Spanish\n" "Language-Team: Spanish\n"
"Language: es_ES\n" "Language: es_ES\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Documentos" msgstr "Documentos"
#: documents/filters.py:471 #: documents/filters.py:472
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:490 #: documents/filters.py:491
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:500 #: documents/filters.py:501
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:521 #: documents/filters.py:522
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:535 #: documents/filters.py:536
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:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
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:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Campo personalizado no encontrado" msgstr "Campo personalizado no encontrado"
@@ -1338,48 +1338,48 @@ msgstr "ejecución del flujo de trabajo"
msgid "workflow runs" msgid "workflow runs"
msgstr "ejecuciones de flujo de trabajo" msgstr "ejecuciones de flujo de trabajo"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Permisos insuficientes." msgstr "Permisos insuficientes."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Color inválido." msgstr "Color inválido."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Tipo de fichero %(type)s no suportado" msgstr "Tipo de fichero %(type)s no suportado"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "El id del campo personalizado debe ser un entero: %(id)s" msgstr "El id del campo personalizado debe ser un entero: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "El campo personalizado con identificador %(id)s no existe" msgstr "El campo personalizado con identificador %(id)s no existe"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Los campos personalizados deben ser una lista de enteros o un identificador de mapeo de objetos a valores." msgstr "Los campos personalizados deben ser una lista de enteros o un identificador de mapeo de objetos a valores."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Algunos campos personalizados no existen o fueron especificados dos veces." msgstr "Algunos campos personalizados no existen o fueron especificados dos veces."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Variable inválida." msgstr "Variable inválida."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
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:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, 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"
@@ -1635,36 +1635,36 @@ msgstr "El esquema URI '{parts.scheme}' no está permitido. Esquemas permitidos:
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "No se puede analizar la URI {value}" msgstr "No se puede analizar la URI {value}"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
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:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
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:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
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."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Estonian\n" "Language-Team: Estonian\n"
"Language: et_EE\n" "Language: et_EE\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumendid" msgstr "Dokumendid"
#: documents/filters.py:471 #: documents/filters.py:472
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:490 #: documents/filters.py:491
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:500 #: documents/filters.py:501
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:521 #: documents/filters.py:522
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:535 #: documents/filters.py:536
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:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
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:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Kohandatud välja ei leitud" msgstr "Kohandatud välja ei leitud"
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "" msgstr ""
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "" msgstr ""
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "" msgstr ""
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Persian\n" "Language-Team: Persian\n"
"Language: fa_IR\n" "Language: fa_IR\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "اسناد و مدارک" msgstr "اسناد و مدارک"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "مقدار باید JSON معتبر باشد." msgstr "مقدار باید JSON معتبر باشد."
#: documents/filters.py:490 #: documents/filters.py:491
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:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "لیست عبارت‌ها نامعتبر است. نباید خالی باشد." msgstr "لیست عبارت‌ها نامعتبر است. نباید خالی باشد."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "" msgstr ""
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "حداکثر تعداد شرایط پرس و جو از آن فراتر رفته است." msgstr "حداکثر تعداد شرایط پرس و جو از آن فراتر رفته است."
#: documents/filters.py:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "حداکثر عمق تودرتویی بیش از حد مجاز است." msgstr "حداکثر عمق تودرتویی بیش از حد مجاز است."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "زمینه سفارشی یافت نشد" msgstr "زمینه سفارشی یافت نشد"
@@ -1338,48 +1338,48 @@ msgstr "گردش کار"
msgid "workflow runs" msgid "workflow runs"
msgstr "گردش کار اجرا می شود" msgstr "گردش کار اجرا می شود"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "رنگ نامعتبر" msgstr "رنگ نامعتبر"
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "" msgstr ""
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "متغیر نامعتبر شناسایی شده است." msgstr "متغیر نامعتبر شناسایی شده است."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Finnish\n" "Language-Team: Finnish\n"
"Language: fi_FI\n" "Language: fi_FI\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Asiakirjat" msgstr "Asiakirjat"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "Arvon on oltava kelvollista JSON:ia." msgstr "Arvon on oltava kelvollista JSON:ia."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "" msgstr ""
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "" msgstr ""
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "" msgstr ""
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "" msgstr ""
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "" msgstr ""
#: documents/filters.py:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "" msgstr ""
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "" msgstr ""
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Virheellinen väri." msgstr "Virheellinen väri."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Tiedostotyyppiä %(type)s ei tueta" msgstr "Tiedostotyyppiä %(type)s ei tueta"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Virheellinen muuttuja havaittu." msgstr "Virheellinen muuttuja havaittu."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1635,36 +1635,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: French\n" "Language-Team: French\n"
"Language: fr_FR\n" "Language: fr_FR\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Documents" msgstr "Documents"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "La valeur doit être un JSON valide." msgstr "La valeur doit être un JSON valide."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Requête de champ personnalisé invalide" msgstr "Requête de champ personnalisé invalide"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "Liste d'expressions invalide. Doit être non vide." msgstr "Liste d'expressions invalide. Doit être non vide."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "Opérateur logique {op!r} invalide" msgstr "Opérateur logique {op!r} invalide"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "Nombre maximum de conditions dans la requête dépassé." msgstr "Nombre maximum de conditions dans la requête dépassé."
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "{name!r} n'est pas un champ personnalisé valide." msgstr "{name!r} n'est pas un champ personnalisé valide."
#: documents/filters.py:636 #: documents/filters.py:637
msgid "{data_type} does not support query expr {expr!r}." msgid "{data_type} does not support query expr {expr!r}."
msgstr "{data_type} ne supporte pas l'expression {expr!r}." msgstr "{data_type} ne supporte pas l'expression {expr!r}."
#: documents/filters.py:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Profondeur de récursion maximale dépassée." msgstr "Profondeur de récursion maximale dépassée."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Champ personnalisé non trouvé" msgstr "Champ personnalisé non trouvé"
@@ -1338,48 +1338,48 @@ msgstr "exécution du workflow"
msgid "workflow runs" msgid "workflow runs"
msgstr "le flux de travail s'exécute" msgstr "le flux de travail s'exécute"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Droits insuffisants." msgstr "Droits insuffisants."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Couleur incorrecte." msgstr "Couleur incorrecte."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Type de fichier %(type)s non pris en charge" msgstr "Type de fichier %(type)s non pris en charge"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "L'id du champ personnalisé doit être un entier : %(id)s" msgstr "L'id du champ personnalisé doit être un entier : %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "Le champ personnalisé avec l'id %(id)s n'existe pas" msgstr "Le champ personnalisé avec l'id %(id)s n'existe pas"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Les champs personnalisés doivent être une liste d'entiers ou un mappage d'identifiants à des valeurs." msgstr "Les champs personnalisés doivent être une liste d'entiers ou un mappage d'identifiants à des valeurs."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Certains champs personnalisés n'existent pas ou ont été spécifiés deux fois." msgstr "Certains champs personnalisés n'existent pas ou ont été spécifiés deux fois."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Variable invalide détectée." msgstr "Variable invalide détectée."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "Les identificateurs de document en double ne sont pas autorisés." msgstr "Les identificateurs de document en double ne sont pas autorisés."
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "Documents introuvables : %(ids)s" msgstr "Documents introuvables : %(ids)s"
@@ -1634,36 +1634,36 @@ msgstr "Le schéma d'URI « {parts.scheme} » n'est pas autorisé. Schémas aut
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "Impossible d'analyser l'URI {value}" msgstr "Impossible d'analyser l'URI {value}"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "More_like_id invalide" msgstr "More_like_id invalide"
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "Configuration IA invalide." msgstr "Configuration IA invalide."
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "La requête d'arrière-plan IA a expiré." msgstr "La requête d'arrière-plan IA a expiré."
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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 "Spécifiez seulement un texte, titre, recherche ou more_like_id." msgstr "Spécifiez seulement un texte, titre, recherche ou more_like_id."
#: documents/views.py:4522 #: documents/views.py:4529
#, python-format #, python-format
msgid "Insufficient permissions to share document %(id)s." msgid "Insufficient permissions to share document %(id)s."
msgstr "Droits d'accès insuffisant pour partager %(id)s document." msgstr "Droits d'accès insuffisant pour partager %(id)s document."
#: documents/views.py:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "Le paquet est déjà en cours de traitement." msgstr "Le paquet est déjà en cours de traitement."
#: documents/views.py:4629 #: documents/views.py:4636
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 "Le lot de liens de partage est en cours de préparation. Veuillez réessayer plus tard." msgstr "Le lot de liens de partage est en cours de préparation. Veuillez réessayer plus tard."
#: documents/views.py:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "Le lot de liens de partage n'est pas disponible." msgstr "Le lot de liens de partage n'est pas disponible."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Hebrew\n" "Language-Team: Hebrew\n"
"Language: he_IL\n" "Language: he_IL\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "מסמכים" msgstr "מסמכים"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "ערך חייב להיות JSON תקין." msgstr "ערך חייב להיות JSON תקין."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "ביטוי שאילתה לא חוקי של שדה מותאם אישית" msgstr "ביטוי שאילתה לא חוקי של שדה מותאם אישית"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "רשימת ביטויים לא חוקית. חייב לכלול ערך." msgstr "רשימת ביטויים לא חוקית. חייב לכלול ערך."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "סימן פעולה לוגית לא חוקי {op!r}" msgstr "סימן פעולה לוגית לא חוקי {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "חריגה ממספר תנאי השאילתה המרבי." msgstr "חריגה ממספר תנאי השאילתה המרבי."
#: documents/filters.py:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "חריגה מעומק הקינון המרבי." msgstr "חריגה מעומק הקינון המרבי."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "שדה מותאם אישית לא נמצא" msgstr "שדה מותאם אישית לא נמצא"
@@ -1339,48 +1339,48 @@ msgstr "הרצת זרימת עבודה"
msgid "workflow runs" msgid "workflow runs"
msgstr "הרצות זרימת עבודה" msgstr "הרצות זרימת עבודה"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "הרשאות אינן מספיקות." msgstr "הרשאות אינן מספיקות."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "צבע לא חוקי." msgstr "צבע לא חוקי."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "סוג קובץ %(type)s לא נתמך" msgstr "סוג קובץ %(type)s לא נתמך"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "שדה מותאם אישית id חייב להיות מספרי: %(id)s" msgstr "שדה מותאם אישית id חייב להיות מספרי: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "שדה מותאם אישית עם מזהה %(id)s איננו קיים" msgstr "שדה מותאם אישית עם מזהה %(id)s איננו קיים"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "שדות מותאמים אישית חייבים להיות רשימה של מספרים שלמים או אובייקט הממפה מזהים לערכים." msgstr "שדות מותאמים אישית חייבים להיות רשימה של מספרים שלמים או אובייקט הממפה מזהים לערכים."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "חלק מהשדות המותאמים אישית אינם קיימים או שהוגדרו פעמיים." msgstr "חלק מהשדות המותאמים אישית אינם קיימים או שהוגדרו פעמיים."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "משתנה לא חוקי זוהה." msgstr "משתנה לא חוקי זוהה."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "מזהי מסמכים כפולים אינם מורשים." msgstr "מזהי מסמכים כפולים אינם מורשים."
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "מסמכים לא נמצאו: %(ids)s" msgstr "מסמכים לא נמצאו: %(ids)s"
@@ -1636,36 +1636,36 @@ msgstr "פרוטוקול ה-URI '{parts.scheme}' אינו מורשה. הפר
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "לא ניתן לפענח את ה URI {value}" msgstr "לא ניתן לפענח את ה URI {value}"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "מזהה more_like_id אינו תקין" msgstr "מזהה more_like_id אינו תקין"
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "הגדרות בינה מלאכותית שגויות." msgstr "הגדרות בינה מלאכותית שגויות."
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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 "יש לציין רק אחד מהבאים: text, title_search, query או more_like_id." msgstr "יש לציין רק אחד מהבאים: text, title_search, query או more_like_id."
#: documents/views.py:4522 #: documents/views.py:4529
#, python-format #, python-format
msgid "Insufficient permissions to share document %(id)s." msgid "Insufficient permissions to share document %(id)s."
msgstr "הרשאות לא מספיקות לשיתוף מסמך %(id)s." msgstr "הרשאות לא מספיקות לשיתוף מסמך %(id)s."
#: documents/views.py:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "החבילה (Bundle) כבר נמצאת בתהליך עיבוד." msgstr "החבילה (Bundle) כבר נמצאת בתהליך עיבוד."
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "חבילת קישור השיתוף אינה זמינה." msgstr "חבילת קישור השיתוף אינה זמינה."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Hindi\n" "Language-Team: Hindi\n"
"Language: hi_IN\n" "Language: hi_IN\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "दस्तावेज़" msgstr "दस्तावेज़"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "मान वैध JSON होना चाहिए." msgstr "मान वैध JSON होना चाहिए."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "अमान्य कस्टम फ़ील्ड क्वेरी एक्सप्रेशन" msgstr "अमान्य कस्टम फ़ील्ड क्वेरी एक्सप्रेशन"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "अमान्य एक्सप्रेशन सूची। खाली नहीं होनी चाहिए।" msgstr "अमान्य एक्सप्रेशन सूची। खाली नहीं होनी चाहिए।"
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "अमान्य लॉजिकल ऑपरेटर {op!r}" msgstr "अमान्य लॉजिकल ऑपरेटर {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "क्वेरी शर्तों की अधिकतम संख्या पार हो गई है।" msgstr "क्वेरी शर्तों की अधिकतम संख्या पार हो गई है।"
#: documents/filters.py:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "अधिकतम नेस्टिंग डेप्थ पार हो गई है।" msgstr "अधिकतम नेस्टिंग डेप्थ पार हो गई है।"
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "कस्टम फ़ील्ड नहीं मिला" msgstr "कस्टम फ़ील्ड नहीं मिला"
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "" msgstr ""
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "" msgstr ""
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "" msgstr ""
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Croatian\n" "Language-Team: Croatian\n"
"Language: hr_HR\n" "Language: hr_HR\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumenti" msgstr "Dokumenti"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "Vrijednost mora biti važeći JSON." msgstr "Vrijednost mora biti važeći JSON."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Nevažeći izraz upita prilagođenog polja" msgstr "Nevažeći izraz upita prilagođenog polja"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "Nevažeći popis izraza. Ne smije biti prazno." msgstr "Nevažeći popis izraza. Ne smije biti prazno."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "Nevažeći logički operator {op!r}" msgstr "Nevažeći logički operator {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "Premašen je maksimalan broj uvjeta upita." msgstr "Premašen je maksimalan broj uvjeta upita."
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "{name!r} nije važeće prilagođeno polje." msgstr "{name!r} nije važeće prilagođeno polje."
#: documents/filters.py:636 #: documents/filters.py:637
msgid "{data_type} does not support query expr {expr!r}." msgid "{data_type} does not support query expr {expr!r}."
msgstr "{data_type} ne podržava upit izraz {expr!r}." msgstr "{data_type} ne podržava upit izraz {expr!r}."
#: documents/filters.py:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Premašena je najveća razina ugniježđivanja." msgstr "Premašena je najveća razina ugniježđivanja."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Prilagođeno polje nije pronađeno" msgstr "Prilagođeno polje nije pronađeno"
@@ -1338,48 +1338,48 @@ msgstr "pokretanje tijeka rada"
msgid "workflow runs" msgid "workflow runs"
msgstr "tijek rada pokrenut" msgstr "tijek rada pokrenut"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Nedovoljne ovlasti." msgstr "Nedovoljne ovlasti."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Nevažeća boja." msgstr "Nevažeća boja."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Vrsta datoteke %(type)s nije podržana" msgstr "Vrsta datoteke %(type)s nije podržana"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "ID prilagođenog polja mora biti cijeli broj: %(id)s" msgstr "ID prilagođenog polja mora biti cijeli broj: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "Prilagođeno polje s ID-om %(id)s ne postoji" msgstr "Prilagođeno polje s ID-om %(id)s ne postoji"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Prilagođena polja moraju biti popis cijelih brojeva ili ID-ova objekata koji preslikavaju vrijednosti." msgstr "Prilagođena polja moraju biti popis cijelih brojeva ili ID-ova objekata koji preslikavaju vrijednosti."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Neka prilagođena polja ne postoje ili su navedena dvaput." msgstr "Neka prilagođena polja ne postoje ili su navedena dvaput."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Otkrivena je nevaljana vrsta datoteke." msgstr "Otkrivena je nevaljana vrsta datoteke."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "Duplicirani identifikatori dokumenata nisu dopušteni." msgstr "Duplicirani identifikatori dokumenata nisu dopušteni."
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "Dokumenti nisu pronađeni: %(ids)s" msgstr "Dokumenti nisu pronađeni: %(ids)s"
@@ -1635,36 +1635,36 @@ msgstr "URI shema '{parts.scheme}' nije dopuštena. Dopuštene sheme: {', '.join
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "Nije moguće raščlaniti URI {value}" msgstr "Nije moguće raščlaniti URI {value}"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "Nevažeći more_like_id" msgstr "Nevažeći more_like_id"
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "Nevažeća AI konfiguracija." msgstr "Nevažeća AI konfiguracija."
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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 "Navedite samo jedno od: text, title_search, query ili more_like_id." msgstr "Navedite samo jedno od: text, title_search, query ili more_like_id."
#: documents/views.py:4522 #: documents/views.py:4529
#, python-format #, python-format
msgid "Insufficient permissions to share document %(id)s." msgid "Insufficient permissions to share document %(id)s."
msgstr "Nedovoljne ovlasti za dijeljenje dokumenta %(id)s." msgstr "Nedovoljne ovlasti za dijeljenje dokumenta %(id)s."
#: documents/views.py:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "Paket se već obrađuje." msgstr "Paket se već obrađuje."
#: documents/views.py:4629 #: documents/views.py:4636
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 "Paket linka za dijeljenje se još priprema. Pokušajte ponovo kasnije." msgstr "Paket linka za dijeljenje se još priprema. Pokušajte ponovo kasnije."
#: documents/views.py:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "Paket linka za dijeljenje nije dostupan." msgstr "Paket linka za dijeljenje nije dostupan."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:28\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Hungarian\n" "Language-Team: Hungarian\n"
"Language: hu_HU\n" "Language: hu_HU\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumentumok" msgstr "Dokumentumok"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "Érvényes JSON érték szükséges." msgstr "Érvényes JSON érték szükséges."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Érvénytelen egyéni mező lekérdezési kifejezés" msgstr "Érvénytelen egyéni mező lekérdezési kifejezés"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "Érvénytelen kifejezéslista. Nem lehet üres." msgstr "Érvénytelen kifejezéslista. Nem lehet üres."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "Érvénytelen logikai operátor {op!r}" msgstr "Érvénytelen logikai operátor {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "Maximum lekérdezési feltételszám átlépve." msgstr "Maximum lekérdezési feltételszám átlépve."
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "{name!r} nem érvényes egyéni mező." msgstr "{name!r} nem érvényes egyéni mező."
#: documents/filters.py:636 #: documents/filters.py:637
msgid "{data_type} does not support query expr {expr!r}." msgid "{data_type} does not support query expr {expr!r}."
msgstr "A(z) {data_type} nem támogatja a {expr!r} kifejezés lekérdezést." msgstr "A(z) {data_type} nem támogatja a {expr!r} kifejezés lekérdezést."
#: documents/filters.py:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Maximum beágyazási mélység túllépve." msgstr "Maximum beágyazási mélység túllépve."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Az egyéni mező nem található" msgstr "Az egyéni mező nem található"
@@ -1338,48 +1338,48 @@ msgstr "munkafolyamat futtatás"
msgid "workflow runs" msgid "workflow runs"
msgstr "munkafolyamat futtatások" msgstr "munkafolyamat futtatások"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Nincs jogosúltsága." msgstr "Nincs jogosúltsága."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Érvénytelen szín." msgstr "Érvénytelen szín."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "%(type)s fájltípus nem támogatott" msgstr "%(type)s fájltípus nem támogatott"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "Az egyéni mező azonosítójának egész számnak kell lennie: %(id)s" msgstr "Az egyéni mező azonosítójának egész számnak kell lennie: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "A(z) %(id)s azonosítójú egyéni mező nem létezik" msgstr "A(z) %(id)s azonosítójú egyéni mező nem létezik"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Az egyéni mezőknek egész számok listájának vagy azonosítókat értékekhez rendelő objektumnak kell lenniük." msgstr "Az egyéni mezőknek egész számok listájának vagy azonosítókat értékekhez rendelő objektumnak kell lenniük."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Néhány egyéni mező nem létezik, vagy kétszer lett megadva." msgstr "Néhány egyéni mező nem létezik, vagy kétszer lett megadva."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Érvénytelen változó észlelve." msgstr "Érvénytelen változó észlelve."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "A dokumentumazonosítók duplikálása nem megengedett." msgstr "A dokumentumazonosítók duplikálása nem megengedett."
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "Dokumentumok nem találhatók: %(ids)s" msgstr "Dokumentumok nem találhatók: %(ids)s"
@@ -1635,36 +1635,36 @@ msgstr "A '{parts.scheme}' séma nem engedélyezett. Engedélyezett sémák: {',
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "A {value} URI értelmezése sikertelen" msgstr "A {value} URI értelmezése sikertelen"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "Érvénytelen more_like_id" msgstr "Érvénytelen more_like_id"
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "Érvénytelen MI konfiguráció." msgstr "Érvénytelen MI konfiguráció."
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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 "A text, title_search, query, vagy more_like_id közül csak egyet adjon meg." msgstr "A text, title_search, query, vagy more_like_id közül csak egyet adjon meg."
#: documents/views.py:4522 #: documents/views.py:4529
#, python-format #, python-format
msgid "Insufficient permissions to share document %(id)s." msgid "Insufficient permissions to share document %(id)s."
msgstr "Nincs megfelelő jogosultság a %(id)s dokumentum megosztásához." msgstr "Nincs megfelelő jogosultság a %(id)s dokumentum megosztásához."
#: documents/views.py:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "A csomag feldolgozása már folyamatban van." msgstr "A csomag feldolgozása már folyamatban van."
#: documents/views.py:4629 #: documents/views.py:4636
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 "A megosztási linkcsomag készítése folyamatban. Kérjük, próbálja meg később." msgstr "A megosztási linkcsomag készítése folyamatban. Kérjük, próbálja meg később."
#: documents/views.py:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "A megosztási linkcsomag nem elérhető." msgstr "A megosztási linkcsomag nem elérhető."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Indonesian\n" "Language-Team: Indonesian\n"
"Language: id_ID\n" "Language: id_ID\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumen" msgstr "Dokumen"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "Nilai harus berupa JSON yang valid." msgstr "Nilai harus berupa JSON yang valid."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Ekspresi pencarian bidang khusus tidak valid" msgstr "Ekspresi pencarian bidang khusus tidak valid"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "Daftar ekspresi tidak valid. Tidak boleh kosong." msgstr "Daftar ekspresi tidak valid. Tidak boleh kosong."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "Operator logika {op!r} tidak valid" msgstr "Operator logika {op!r} tidak valid"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "Jumlah maksimal kondisi pencarian terlampaui." msgstr "Jumlah maksimal kondisi pencarian terlampaui."
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "{name!r} bukan bidang khusus yang valid." msgstr "{name!r} bukan bidang khusus yang valid."
#: documents/filters.py:636 #: documents/filters.py:637
msgid "{data_type} does not support query expr {expr!r}." msgid "{data_type} does not support query expr {expr!r}."
msgstr "{data_type} tidak mendukung ekspresi pencarian expr {expr!r}." msgstr "{data_type} tidak mendukung ekspresi pencarian expr {expr!r}."
#: documents/filters.py:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Kedalaman susunan maksimal terlampaui." msgstr "Kedalaman susunan maksimal terlampaui."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Bidang khusus tidak ditemukan" msgstr "Bidang khusus tidak ditemukan"
@@ -1338,48 +1338,48 @@ msgstr "jalankan alur kerja"
msgid "workflow runs" msgid "workflow runs"
msgstr "daftar jalankan alur kerja" msgstr "daftar jalankan alur kerja"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Izin tidak mencukupi" msgstr "Izin tidak mencukupi"
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Warna tidak sesuai." msgstr "Warna tidak sesuai."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Jenis berkas %(type)s tidak didukung" msgstr "Jenis berkas %(type)s tidak didukung"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "Id kolom kustom harus berupa bilangan bulat: %(id)s" msgstr "Id kolom kustom harus berupa bilangan bulat: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "Kolom kustom dengan id %(id)s tidak ada" msgstr "Kolom kustom dengan id %(id)s tidak ada"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Kolom kustom harus berupa daftar bilangan bulat atau objek yang memetakan id ke nilai." msgstr "Kolom kustom harus berupa daftar bilangan bulat atau objek yang memetakan id ke nilai."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Beberapa kolom kustom tidak ada atau ditentukan dua kali." msgstr "Beberapa kolom kustom tidak ada atau ditentukan dua kali."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Variabel ilegal terdeteksi." msgstr "Variabel ilegal terdeteksi."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "Penggunaan pengenal dokumen ganda tidak diperbolehkan." msgstr "Penggunaan pengenal dokumen ganda tidak diperbolehkan."
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "Dokumen tidak ditemukan: %(ids)s" msgstr "Dokumen tidak ditemukan: %(ids)s"
@@ -1635,36 +1635,36 @@ msgstr "Skema URI '{parts.scheme}' tidak diizinkan. Skema yang diizinkan: {', '.
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "Gagal membaca URI {value}" msgstr "Gagal membaca URI {value}"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, python-format #, python-format
msgid "Insufficient permissions to share document %(id)s." msgid "Insufficient permissions to share document %(id)s."
msgstr "Izin tidak mencukupi untuk berbagi dokumen %(id)s" msgstr "Izin tidak mencukupi untuk berbagi dokumen %(id)s"
#: documents/views.py:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "Paket sedang diproses." msgstr "Paket sedang diproses."
#: documents/views.py:4629 #: documents/views.py:4636
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 "Bundel tautan berbagi masih dalam proses persiapan. Silakan coba lagi nanti." msgstr "Bundel tautan berbagi masih dalam proses persiapan. Silakan coba lagi nanti."
#: documents/views.py:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "Bundel tautan berbagi tidak tersedia." msgstr "Bundel tautan berbagi tidak tersedia."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-11 14:12\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Italian\n" "Language-Team: Italian\n"
"Language: it_IT\n" "Language: it_IT\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Documenti" msgstr "Documenti"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "Il valore deve essere un JSON valido." msgstr "Il valore deve essere un JSON valido."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Campo personalizzato della query non valido" msgstr "Campo personalizzato della query non valido"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "Elenco delle espressioni non valido. Deve essere non vuoto." msgstr "Elenco delle espressioni non valido. Deve essere non vuoto."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "Operatore logico non valido {op!r}" msgstr "Operatore logico non valido {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "Numero massimo di condizioni di query superato." msgstr "Numero massimo di condizioni di query superato."
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "{name!r} non è un campo personalizzato valido." msgstr "{name!r} non è un campo personalizzato valido."
#: documents/filters.py:636 #: documents/filters.py:637
msgid "{data_type} does not support query expr {expr!r}." msgid "{data_type} does not support query expr {expr!r}."
msgstr "{data_type} Non supporta la jQuery Expo {Expo!r}." msgstr "{data_type} Non supporta la jQuery Expo {Expo!r}."
#: documents/filters.py:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Profondità massima di nidificazione superata." msgstr "Profondità massima di nidificazione superata."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Campo personalizzato non trovato" msgstr "Campo personalizzato non trovato"
@@ -1338,48 +1338,48 @@ msgstr "esecuzione del flusso di lavoro"
msgid "workflow runs" msgid "workflow runs"
msgstr "esecuzioni del flusso di lavoro" msgstr "esecuzioni del flusso di lavoro"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "Autorizzazioni insufficienti." msgstr "Autorizzazioni insufficienti."
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Colore non valido." msgstr "Colore non valido."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Il tipo di file %(type)s non è supportato" msgstr "Il tipo di file %(type)s non è supportato"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "L'ID del campo personalizzato deve essere un numero intero: %(id)s" msgstr "L'ID del campo personalizzato deve essere un numero intero: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "Il campo personalizzato con ID %(id)s non esiste" msgstr "Il campo personalizzato con ID %(id)s non esiste"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "I campi personalizzati devono essere un elenco di numeri interi o un oggetto che mappa gli ID ai valori." msgstr "I campi personalizzati devono essere un elenco di numeri interi o un oggetto che mappa gli ID ai valori."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Alcuni campi personalizzati non esistono o sono stati specificati due volte." msgstr "Alcuni campi personalizzati non esistono o sono stati specificati due volte."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Variabile non valida rilevata." msgstr "Variabile non valida rilevata."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "Non sono consentiti identificatori di documenti duplicati." msgstr "Non sono consentiti identificatori di documenti duplicati."
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "Documenti non trovati: %(ids)s" msgstr "Documenti non trovati: %(ids)s"
@@ -1635,36 +1635,36 @@ msgstr "Lo schema URI '{parts.scheme}' non è consentito. Schemi consentiti: {',
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "Impossibile analizzare l'URI {value}" msgstr "Impossibile analizzare l'URI {value}"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "more_like_id non valido" msgstr "more_like_id non valido"
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "Configurazione AI non valida." msgstr "Configurazione AI non valida."
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "Richiesta di backend AI scaduta." msgstr "Richiesta di backend AI scaduta."
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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 "Specificare solo uno tra text, title_search, query o more_like_id." msgstr "Specificare solo uno tra text, title_search, query o more_like_id."
#: documents/views.py:4522 #: documents/views.py:4529
#, python-format #, python-format
msgid "Insufficient permissions to share document %(id)s." msgid "Insufficient permissions to share document %(id)s."
msgstr "Autorizzazioni insufficienti per condividere il documento %(id)s." msgstr "Autorizzazioni insufficienti per condividere il documento %(id)s."
#: documents/views.py:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "Il pacchetto è già in fase di elaborazione." msgstr "Il pacchetto è già in fase di elaborazione."
#: documents/views.py:4629 #: documents/views.py:4636
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 "Il pacchetto di link di condivisione è ancora in fase di preparazione. Riprova più tardi." msgstr "Il pacchetto di link di condivisione è ancora in fase di preparazione. Riprova più tardi."
#: documents/views.py:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "Il pacchetto di link di condivisione non è disponibile." msgstr "Il pacchetto di link di condivisione non è disponibile."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Japanese\n" "Language-Team: Japanese\n"
"Language: ja_JP\n" "Language: ja_JP\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "ドキュメント" msgstr "ドキュメント"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "値は有効なJSONである必要があります。" msgstr "値は有効なJSONである必要があります。"
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "無効なカスタムフィールドクエリ式" msgstr "無効なカスタムフィールドクエリ式"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "無効な式リストです。空であってはなりません。" msgstr "無効な式リストです。空であってはなりません。"
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "無効な論理演算子 {op!r}" msgstr "無効な論理演算子 {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "クエリ条件の最大数を超えました。" msgstr "クエリ条件の最大数を超えました。"
#: documents/filters.py:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "最大ネストの深さを超えました。" msgstr "最大ネストの深さを超えました。"
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "カスタムフィールドが見つかりません" msgstr "カスタムフィールドが見つかりません"
@@ -1338,48 +1338,48 @@ msgstr "ワークフローの実行"
msgid "workflow runs" msgid "workflow runs"
msgstr "ワークフローの実行" msgstr "ワークフローの実行"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "無効な色" msgstr "無効な色"
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "ファイルタイプ %(type)s はサポートされていません" msgstr "ファイルタイプ %(type)s はサポートされていません"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "無効な変数を検出しました" msgstr "無効な変数を検出しました"
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1635,36 +1635,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Korean\n" "Language-Team: Korean\n"
"Language: ko_KR\n" "Language: ko_KR\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "문서" msgstr "문서"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "값은 유효한 JSON이어야 합니다." msgstr "값은 유효한 JSON이어야 합니다."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "잘못된 사용자 정의 필드 쿼리 표현식" msgstr "잘못된 사용자 정의 필드 쿼리 표현식"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "잘못된 표현식 목록입니다. 비어 있지 않아야 합니다." msgstr "잘못된 표현식 목록입니다. 비어 있지 않아야 합니다."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "잘못된 논리 연산자 {op!r}" msgstr "잘못된 논리 연산자 {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "쿼리 조건의 최대 개수를 초과했습니다." msgstr "쿼리 조건의 최대 개수를 초과했습니다."
#: documents/filters.py:599 #: documents/filters.py:600
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:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "최대 중첩 깊이를 초과했습니다." msgstr "최대 중첩 깊이를 초과했습니다."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "사용자 지정 필드를 찾을 수 없음" msgstr "사용자 지정 필드를 찾을 수 없음"
@@ -1338,48 +1338,48 @@ msgstr "워크플로 실행"
msgid "workflow runs" msgid "workflow runs"
msgstr "워크플로우 실행" msgstr "워크플로우 실행"
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "" msgstr ""
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "" msgstr ""
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "사용자 정의 ID 필드는 반드시 정수여야 합니다: %(id)s" msgstr "사용자 정의 ID 필드는 반드시 정수여야 합니다: %(id)s"
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "%(id)s를 ID로 가지는 사용자 정의 필드가 존재하지 않습니다." msgstr "%(id)s를 ID로 가지는 사용자 정의 필드가 존재하지 않습니다."
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "사용자 정의 필드는 정수 리스트이거나, ID를 값에 매핑하는 객체여야 합니다." msgstr "사용자 정의 필드는 정수 리스트이거나, ID를 값에 매핑하는 객체여야 합니다."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "존재하지 않거나 중복된 사용자 정의 필드가 있습니다." msgstr "존재하지 않거나 중복된 사용자 정의 필드가 있습니다."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "잘못된 변수가 감지되었습니다." msgstr "잘못된 변수가 감지되었습니다."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1635,36 +1635,36 @@ msgstr "URI 스킴 '{parts.scheme}'는 허용되지 않습니다. 허용된 스
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "{value} URI를 파싱할 수 없음" msgstr "{value} URI를 파싱할 수 없음"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Luxembourgish\n" "Language-Team: Luxembourgish\n"
"Language: lb_LU\n" "Language: lb_LU\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumenter" msgstr "Dokumenter"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "" msgstr ""
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "" msgstr ""
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "" msgstr ""
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "" msgstr ""
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "" msgstr ""
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "" msgstr ""
#: documents/filters.py:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "" msgstr ""
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "" msgstr ""
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Ongëlteg Faarf." msgstr "Ongëlteg Faarf."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Fichierstyp %(type)s net ënnerstëtzt" msgstr "Fichierstyp %(type)s net ënnerstëtzt"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Ongëlteg Zeechen detektéiert." msgstr "Ongëlteg Zeechen detektéiert."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:27\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Lithuanian\n" "Language-Team: Lithuanian\n"
"Language: lt_LT\n" "Language: lt_LT\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumentai" msgstr "Dokumentai"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "Reikšmė turi būti galiojantis JSON." msgstr "Reikšmė turi būti galiojantis JSON."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Neteisinga pasirinktinio lauko užklausos išraiška" msgstr "Neteisinga pasirinktinio lauko užklausos išraiška"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "Neteisingas išraiškos sąrašas. Jis turi būti netuščias." msgstr "Neteisingas išraiškos sąrašas. Jis turi būti netuščias."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "Neteisingas loginis operatorius {op!r}" msgstr "Neteisingas loginis operatorius {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "Viršytas maksimalus užklausos sąlygų skaičius." msgstr "Viršytas maksimalus užklausos sąlygų skaičius."
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "{name!r} nėra galiojantis pasirinktas laukas." msgstr "{name!r} nėra galiojantis pasirinktas laukas."
#: documents/filters.py:636 #: documents/filters.py:637
msgid "{data_type} does not support query expr {expr!r}." msgid "{data_type} does not support query expr {expr!r}."
msgstr "{data_type} nepalaiko užklausos išraiškos {expr!r}." msgstr "{data_type} nepalaiko užklausos išraiškos {expr!r}."
#: documents/filters.py:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Viršytas maksimalus įdėjimo gylis." msgstr "Viršytas maksimalus įdėjimo gylis."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Pasirinktinis laukas nerastas" msgstr "Pasirinktinis laukas nerastas"
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "" msgstr ""
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "" msgstr ""
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "" msgstr ""
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr "URI schema '{parts.scheme}' nėra leistina. Galimos schemos: {', '.join(
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "Nepavyko apdoroti URI {value}" msgstr "Nepavyko apdoroti URI {value}"
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, python-format #, python-format
msgid "Insufficient permissions to share document %(id)s." msgid "Insufficient permissions to share document %(id)s."
msgstr "Nepakanka leidimų bendrinti dokumentą %(id)s." msgstr "Nepakanka leidimų bendrinti dokumentą %(id)s."
#: documents/views.py:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "Rinkinys jau apdorojamas." msgstr "Rinkinys jau apdorojamas."
#: documents/views.py:4629 #: documents/views.py:4636
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 "Bendrinimo nuorodų rinkinys vis dar ruošiamas. Bandykite dar kartą vėliau." msgstr "Bendrinimo nuorodų rinkinys vis dar ruošiamas. Bandykite dar kartą vėliau."
#: documents/views.py:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "Dalinimos nuorodų rinkinys yra nepasiekiamas." msgstr "Dalinimos nuorodų rinkinys yra nepasiekiamas."
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:28\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Latvian\n" "Language-Team: Latvian\n"
"Language: lv_LV\n" "Language: lv_LV\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokuments" msgstr "Dokuments"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "" msgstr ""
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "" msgstr ""
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "" msgstr ""
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "" msgstr ""
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "" msgstr ""
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "" msgstr ""
#: documents/filters.py:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "" msgstr ""
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "" msgstr ""
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "" msgstr ""
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "" msgstr ""
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "" msgstr ""
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:28\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Macedonian\n" "Language-Team: Macedonian\n"
"Language: mk_MK\n" "Language: mk_MK\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "" msgstr ""
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "" msgstr ""
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "" msgstr ""
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "" msgstr ""
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "" msgstr ""
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "" msgstr ""
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "" msgstr ""
#: documents/filters.py:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "" msgstr ""
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "" msgstr ""
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "" msgstr ""
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "" msgstr ""
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "" msgstr ""
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:28\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Malay\n" "Language-Team: Malay\n"
"Language: ms_MY\n" "Language: ms_MY\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Dokumen" msgstr "Dokumen"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "" msgstr ""
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "" msgstr ""
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "" msgstr ""
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "" msgstr ""
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "" msgstr ""
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "" msgstr ""
#: documents/filters.py:636 #: documents/filters.py:637
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:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "" msgstr ""
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "" msgstr ""
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "" msgstr ""
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "" msgstr ""
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "" msgstr ""
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "" msgstr ""
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "" msgstr ""
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "" msgstr ""
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1634,36 +1634,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""
+30 -30
View File
@@ -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-08-10 02:25+0000\n" "POT-Creation-Date: 2026-07-31 16:14+0000\n"
"PO-Revision-Date: 2026-08-10 02:28\n" "PO-Revision-Date: 2026-07-31 16:15\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: Dutch\n" "Language-Team: Dutch\n"
"Language: nl_NL\n" "Language: nl_NL\n"
@@ -21,39 +21,39 @@ msgstr ""
msgid "Documents" msgid "Documents"
msgstr "Documenten" msgstr "Documenten"
#: documents/filters.py:471 #: documents/filters.py:472
msgid "Value must be valid JSON." msgid "Value must be valid JSON."
msgstr "Waarde moet een geldige JSON zijn." msgstr "Waarde moet een geldige JSON zijn."
#: documents/filters.py:490 #: documents/filters.py:491
msgid "Invalid custom field query expression" msgid "Invalid custom field query expression"
msgstr "Ongeldige aangepaste veld query expressie" msgstr "Ongeldige aangepaste veld query expressie"
#: documents/filters.py:500 #: documents/filters.py:501
msgid "Invalid expression list. Must be nonempty." msgid "Invalid expression list. Must be nonempty."
msgstr "Ongeldige expressielijst mag niet leeg zijn." msgstr "Ongeldige expressielijst mag niet leeg zijn."
#: documents/filters.py:521 #: documents/filters.py:522
msgid "Invalid logical operator {op!r}" msgid "Invalid logical operator {op!r}"
msgstr "Ongeldige logische operator {op!r}" msgstr "Ongeldige logische operator {op!r}"
#: documents/filters.py:535 #: documents/filters.py:536
msgid "Maximum number of query conditions exceeded." msgid "Maximum number of query conditions exceeded."
msgstr "Maximum aantal query voorwaarden overschreden." msgstr "Maximum aantal query voorwaarden overschreden."
#: documents/filters.py:599 #: documents/filters.py:600
msgid "{name!r} is not a valid custom field." msgid "{name!r} is not a valid custom field."
msgstr "{name!r} is geen geldig aangepast veld." msgstr "{name!r} is geen geldig aangepast veld."
#: documents/filters.py:636 #: documents/filters.py:637
msgid "{data_type} does not support query expr {expr!r}." msgid "{data_type} does not support query expr {expr!r}."
msgstr "{data_type} ondersteunt geen query expr {expr!r}." msgstr "{data_type} ondersteunt geen query expr {expr!r}."
#: documents/filters.py:755 documents/models.py:136 #: documents/filters.py:752 documents/models.py:136
msgid "Maximum nesting depth exceeded." msgid "Maximum nesting depth exceeded."
msgstr "Maximale nestdiepte overschreden." msgstr "Maximale nestdiepte overschreden."
#: documents/filters.py:1079 #: documents/filters.py:1094
msgid "Custom field not found" msgid "Custom field not found"
msgstr "Aangepast veld niet gevonden" msgstr "Aangepast veld niet gevonden"
@@ -1338,48 +1338,48 @@ msgstr ""
msgid "workflow runs" msgid "workflow runs"
msgstr "" msgstr ""
#: documents/serialisers.py:521 documents/serialisers.py:873 #: documents/serialisers.py:522 documents/serialisers.py:874
#: documents/serialisers.py:2767 documents/views.py:299 documents/views.py:2555 #: documents/serialisers.py:2776 documents/views.py:299 documents/views.py:2558
#: paperless_mail/serialisers.py:155 #: paperless_mail/serialisers.py:155
msgid "Insufficient permissions." msgid "Insufficient permissions."
msgstr "" msgstr ""
#: documents/serialisers.py:709 #: documents/serialisers.py:710
msgid "Invalid color." msgid "Invalid color."
msgstr "Ongeldig kleur." msgstr "Ongeldig kleur."
#: documents/serialisers.py:2244 #: documents/serialisers.py:2248
#, python-format #, python-format
msgid "File type %(type)s not supported" msgid "File type %(type)s not supported"
msgstr "Bestandstype %(type)s niet ondersteund" msgstr "Bestandstype %(type)s niet ondersteund"
#: documents/serialisers.py:2288 #: documents/serialisers.py:2292
#, python-format #, python-format
msgid "Custom field id must be an integer: %(id)s" msgid "Custom field id must be an integer: %(id)s"
msgstr "" msgstr ""
#: documents/serialisers.py:2295 #: documents/serialisers.py:2299
#, python-format #, python-format
msgid "Custom field with id %(id)s does not exist" msgid "Custom field with id %(id)s does not exist"
msgstr "Aangepast veld met id %(id)s bestaat niet" msgstr "Aangepast veld met id %(id)s bestaat niet"
#: documents/serialisers.py:2312 documents/serialisers.py:2322 #: documents/serialisers.py:2316 documents/serialisers.py:2326
msgid "Custom fields must be a list of integers or an object mapping ids to values." msgid "Custom fields must be a list of integers or an object mapping ids to values."
msgstr "Aangepaste velden moeten een lijst van numerieke waarden zijn of een object mapping id naar waarden." msgstr "Aangepaste velden moeten een lijst van numerieke waarden zijn of een object mapping id naar waarden."
#: documents/serialisers.py:2317 #: documents/serialisers.py:2321
msgid "Some custom fields don't exist or were specified twice." msgid "Some custom fields don't exist or were specified twice."
msgstr "Sommige aangepaste velden bestaan niet of zijn dubbel opgegeven." msgstr "Sommige aangepaste velden bestaan niet of zijn dubbel opgegeven."
#: documents/serialisers.py:2464 #: documents/serialisers.py:2468
msgid "Invalid variable detected." msgid "Invalid variable detected."
msgstr "Ongeldige variabele ontdekt." msgstr "Ongeldige variabele ontdekt."
#: documents/serialisers.py:2823 #: documents/serialisers.py:2832
msgid "Duplicate document identifiers are not allowed." msgid "Duplicate document identifiers are not allowed."
msgstr "" msgstr ""
#: documents/serialisers.py:2853 documents/views.py:4509 #: documents/serialisers.py:2862 documents/views.py:4517
#, python-format #, python-format
msgid "Documents not found: %(ids)s" msgid "Documents not found: %(ids)s"
msgstr "" msgstr ""
@@ -1635,36 +1635,36 @@ msgstr ""
msgid "Unable to parse URI {value}" msgid "Unable to parse URI {value}"
msgstr "" msgstr ""
#: documents/views.py:292 documents/views.py:2552 #: documents/views.py:292 documents/views.py:2555
msgid "Invalid more_like_id" msgid "Invalid more_like_id"
msgstr "" msgstr ""
#: documents/views.py:1566 #: documents/views.py:1567
msgid "Invalid AI configuration." msgid "Invalid AI configuration."
msgstr "" msgstr ""
#: documents/views.py:1575 #: documents/views.py:1576
msgid "AI backend request timed out." msgid "AI backend request timed out."
msgstr "" msgstr ""
#: documents/views.py:2377 documents/views.py:2698 #: documents/views.py:2380 documents/views.py:2701
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:4522 #: documents/views.py:4529
#, 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:4568 #: documents/views.py:4575
msgid "Bundle is already being processed." msgid "Bundle is already being processed."
msgstr "" msgstr ""
#: documents/views.py:4629 #: documents/views.py:4636
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:4639 #: documents/views.py:4646
msgid "The share link bundle is unavailable." msgid "The share link bundle is unavailable."
msgstr "" msgstr ""

Some files were not shown because too many files have changed in this diff Show More