Compare commits

...

172 Commits

Author SHA1 Message Date
jonaswinkler
cd43bc1f66 changelog 2021-08-22 17:15:14 +02:00
jonaswinkler
1b24136590 version bump 2021-08-22 17:11:36 +02:00
jonaswinkler
e8d5b549de documentation 2021-08-22 17:10:10 +02:00
jonaswinkler
3866a77d68 Merge branch 'master' into dev 2021-08-22 17:03:58 +02:00
jonaswinkler
360fe68f92 fix whitespace 2021-08-22 17:03:45 +02:00
Jonas Winkler
c9229f9c80 Merge pull request #1066 from holzhannes/patch-3
Info for The input device is not a TTY Errors
2021-08-22 17:02:08 +02:00
Jonas Winkler
e5b92d895d Update docs/administration.rst
Co-authored-by: Stéphane Brunner <stephane.brunner@camptocamp.com>
2021-08-22 17:00:36 +02:00
jonaswinkler
a7643c1c29 Merge branch 'master' into dev 2021-08-22 16:27:59 +02:00
jonaswinkler
45fd4e8565 fix whitespace 2021-08-22 16:27:44 +02:00
jonaswinkler
211a9d720a changelog 2021-08-22 16:26:58 +02:00
Jonas Winkler
da9c2735b4 Merge pull request #1201 from pewter77/patch-1
update configuration docs for languages
2021-08-22 16:26:27 +02:00
jonaswinkler
d31baca442 downgrade numpy due to armv7 issues 2021-08-19 16:18:49 +02:00
jonaswinkler
499d6f79aa Merge remote-tracking branch 'origin/master' into dev 2021-08-19 00:06:47 +02:00
jonaswinkler
49e049f1c5 Merge branch 'dev' of github.com:jonaswinkler/paperless-ng into dev 2021-08-19 00:06:37 +02:00
jonaswinkler
7411d7c1e2 update dependencies 2021-08-19 00:06:23 +02:00
Jonas Winkler
3f5d3d15fd Merge pull request #1209 from Unkn0wnCat/patch-1
Add Doxie Q to scanners.rst
2021-08-18 23:53:14 +02:00
Jonas Winkler
68fb85ceca Merge pull request #1221 from AlD/master
Make ignores configurable
2021-08-18 22:41:27 +02:00
Daniel Albers
3ebe6d5aef Make ignores configurable
Adds config file setting PAPERLESS_CONSUMER_IGNORE_PATTERNS.
2021-08-18 22:23:18 +02:00
jonaswinkler
566b3ed53d Merge branch 'dev' of github.com:jonaswinkler/paperless-ng into dev 2021-08-18 22:03:31 +02:00
Jonas Winkler
a688c747d7 New Crowdin updates (#1198) 2021-08-18 21:56:59 +02:00
jonaswinkler
83b90e1416 install required dependency for building paperless-ng on GitHub CI 2021-08-18 18:40:27 +02:00
jonaswinkler
23c6f849d6 fix bug with DPI calculation 2021-08-18 18:33:33 +02:00
jonaswinkler
ba6843df83 update python dependencies 2021-08-18 18:21:41 +02:00
jonaswinkler
0b90e69119 update dockerfile 2021-08-18 18:21:31 +02:00
jonaswinkler
dbe820323e switch to python 3.9 2021-08-18 17:47:53 +02:00
Kevin Kandlbinder
47d95d5b0a Add Doxie Q to scanners.rst
The Doxie Q / Q2 is a budget-scanner I've been using for my paperless-usage. It has POST-Support to a custom endpoint like paperless over WiFi and has a rather open API (See https://help.getdoxie.com/doxieq/wifi/api/).
2021-08-04 15:23:12 +02:00
pewter77
971192f6f3 update configuration docs for languages
Due to tesseract naming scheme, packages use '-' but the internal OCR uses '_' . This is to clarify in the documentation that this is the case for new users.
2021-07-30 23:21:22 +08:00
Jonas Winkler
fbfc7df593 Merge pull request #1173 from mweimerskirch/feature/l10n-lb_LU
Added support for Luxembourgish (lb_LU) as an interface language
2021-07-18 21:42:58 +02:00
Jonas Winkler
3c7644ce79 Merge pull request #1153 from jonaswinkler/l10n_dev
New Crowdin updates
2021-07-18 17:36:14 +02:00
Jonas Winkler
4e4a8bcca8 New translations messages.xlf (Luxembourgish)
[ci skip]
2021-07-16 17:20:14 +02:00
Michel Weimerskirch
dc5586b16d Added support for Luxembourgish (lb_LU) as an interface language 2021-07-16 16:43:55 +02:00
Jonas Winkler
1d87b48471 New translations messages.xlf (Luxembourgish)
[ci skip]
2021-07-16 16:22:10 +02:00
Jonas Winkler
353a3432df New translations django.po (Luxembourgish)
[ci skip]
2021-07-16 16:22:08 +02:00
Jonas Winkler
efe94bbf18 New translations messages.xlf (Luxembourgish)
[ci skip]
2021-07-16 15:01:08 +02:00
Jonas Winkler
cea6ec09bc New translations django.po (Luxembourgish)
[ci skip]
2021-07-16 15:01:07 +02:00
Jonas Winkler
4a3276f69c New translations messages.xlf (Luxembourgish)
[ci skip]
2021-07-16 13:47:43 +02:00
Jonas Winkler
f164def2ed New translations django.po (Luxembourgish)
[ci skip]
2021-07-16 13:47:42 +02:00
Jonas Winkler
511c76ae7a New translations messages.xlf (Luxembourgish)
[ci skip]
2021-07-15 10:58:18 +02:00
Jonas Winkler
bfa6dda0de New translations django.po (Luxembourgish)
[ci skip]
2021-07-15 10:58:16 +02:00
Jonas Winkler
54af734971 New translations django.po (Luxembourgish)
[ci skip]
2021-07-15 09:42:47 +02:00
Jonas Winkler
5b9763ecb4 New translations messages.xlf (Luxembourgish)
[ci skip]
2021-07-14 18:00:31 +02:00
Jonas Winkler
438bad23e8 New translations django.po (Luxembourgish)
[ci skip]
2021-07-14 18:00:29 +02:00
Jonas Winkler
ae5a205ba3 New translations django.po (Luxembourgish)
[ci skip]
2021-07-14 10:42:55 +02:00
Jonas Winkler
19b683e7b0 New translations messages.xlf (Luxembourgish)
[ci skip]
2021-07-13 23:45:12 +02:00
Jonas Winkler
0c92027414 New translations django.po (Luxembourgish)
[ci skip]
2021-07-13 23:45:11 +02:00
Jonas Winkler
c4e3b2ca2f New translations messages.xlf (Luxembourgish)
[ci skip]
2021-07-13 22:18:15 +02:00
Jonas Winkler
ba67b89db7 New translations django.po (Luxembourgish)
[ci skip]
2021-07-13 22:18:14 +02:00
Jonas Winkler
06f308ede3 New translations messages.xlf (Spanish)
[ci skip]
2021-07-11 12:20:36 +02:00
Jonas Winkler
214fb8204b New translations messages.xlf (Spanish)
[ci skip]
2021-07-11 10:29:21 +02:00
Jonas Winkler
2a2d7be9f9 New translations django.po (Spanish)
[ci skip]
2021-07-11 10:29:20 +02:00
Jonas Winkler
23304c3746 New translations django.po (Spanish)
[ci skip]
2021-07-11 09:21:44 +02:00
Jonas Winkler
20829c90b2 New translations django.po (German)
[ci skip]
2021-07-05 13:17:50 +02:00
Jonas Winkler
33cc3ce7e0 Merge pull request #1127 from jonaswinkler/l10n_dev
New Crowdin updates
2021-07-04 12:47:07 +02:00
Jonas Winkler
3487b23e88 New translations django.po (English, United Kingdom)
[ci skip]
2021-06-19 23:20:13 +02:00
Jonas Winkler
4718fe13c2 Merge pull request #1116 from ytzelf/patch-1
Update scanners.rst
2021-06-14 18:18:57 +02:00
ytzelf
8592acf6b8 Update scanners.rst
Added ADS-1100w which has FTP (and only FTP) capabilities but is quite cheap
2021-06-14 18:11:06 +02:00
jonaswinkler
88042d7072 fix wording 2021-06-13 21:30:20 +02:00
jonaswinkler
bf92e52d5c update dependencies 2021-06-13 21:21:56 +02:00
jonaswinkler
419580b3be changelog, versions 2021-06-13 19:17:29 +02:00
jonaswinkler
5ee1f6b82b Merge branch 'normalize-whitespace' into dev 2021-06-13 19:06:08 +02:00
Michael Lynch
410bb6a84e Fix trailing newlines in configuration.rst 2021-06-13 10:57:58 -04:00
Michael Lynch
af2b5fef13 Add checkout step to whitespace CI job 2021-06-13 10:57:40 -04:00
Michael Lynch
372ac3a40c Normalize whitespace in source files
Ensure that no source files have trailing whitespace at end of lines and ensure that all files end with a single trailing newline.

This also adds Github Actions to enforce whitespace conventions.
2021-06-13 10:57:40 -04:00
jonaswinkler
a1507d6079 update django-q 2021-06-13 16:36:05 +02:00
jonaswinkler
9242a8901a update django-q 2021-06-13 15:43:32 +02:00
jonaswinkler
1d4f25f930 update datepipe implementation due to interface change 2021-06-13 15:27:04 +02:00
jonaswinkler
7323ec8d16 update angular devkit 2021-06-13 15:18:23 +02:00
jonaswinkler
39d45367d0 replace ng-bootstrap with ngx-bootstrap 2021-06-13 15:12:56 +02:00
jonaswinkler
a6521952b0 update to Angular 11 2021-06-13 15:08:56 +02:00
jonaswinkler
7148c10f1b update docker entrypoint 2021-06-13 12:54:24 +02:00
jonaswinkler
4a1a66248d update requirements.txt 2021-06-13 12:40:28 +02:00
Jonas Winkler
67d0773231 Merge pull request #933 from sbrunner/suggest
Add suggest
2021-06-13 12:20:34 +02:00
jonaswinkler
ff370172b5 fix pycodestyle 2021-06-13 12:18:21 +02:00
jonaswinkler
1f707e86cc fix logging getting spammed with pdfminer warnings on JPG files 2021-06-13 12:09:16 +02:00
jonaswinkler
a3dae02cfb write classifier model to temporary file before copying to final location 2021-06-13 12:03:20 +02:00
jonaswinkler
3eae8a2210 update dependencies 2021-06-13 12:02:49 +02:00
Jonas Winkler
0f18fe1853 Merge pull request #1107 from MJWcodr/patch-1
Update setup.rst
2021-06-13 11:34:03 +02:00
Jonas Winkler
513c61eb79 Merge pull request #1113 from magnetic6/master
Document specification of the expected creation date order
2021-06-13 11:33:43 +02:00
Peter M
4031233fd4 Document specification of the expected creation date order 2021-06-12 10:15:51 -04:00
Matthias J. Wünsch
76ff6100a3 Update setup.rst 2021-06-09 16:46:53 +02:00
Jonas Winkler
05c36f91cf Merge pull request #1105 from mtlynch/single-install-cmd
Simplify installation command
2021-06-07 00:48:29 +02:00
Michael Lynch
6625f8962a Simplify installation command
The installation for docker is currently three separate commands, but it can be a single command if the user simply pipes to the sh interpreter directly. I know there are some who object to piping to sh from a URL, but the current method has no security benefit over piping directly to sh.
2021-06-06 18:02:23 -04:00
Jonas Winkler
63402b70d2 Merge pull request #1057 from muued/patch-6
adjust ansible README to installation instructions
2021-06-03 15:14:36 +02:00
Stéphane Brunner
2ae4a7806d Add suggest 2021-05-30 14:50:29 +02:00
Jonas Winkler
fcc4ecd007 Merge pull request #1068 from servusoft/dev
Solving issue with search criteria 'maximum age' for some mail server
2021-05-29 19:13:10 +02:00
Jonas Winkler
45497250cd Merge pull request #1074 from sbrunner/scan-to-paperless
Add Scan to Paperless as affiliated project
2021-05-29 19:12:46 +02:00
Stéphane Brunner
7dd957140e Add Scan to Paperless as affiliated project 2021-05-29 16:38:16 +02:00
servusoft
4cd772a39e Solving issue with search criteria maximum age for some mail server
Some mail servers (mail.ru) do not support search criteria for the maximum age. By setting the maximum age to 0, it is possible to hide the search criteria. This PR solves that problem.
2021-05-27 18:30:57 +02:00
HolzHannes
b3906e7bc1 Corrected position of info 2021-05-27 10:01:30 +02:00
HolzHannes
e5009b4cd2 Info for The input device is not a TTY Errors 2021-05-27 08:30:21 +02:00
Fabian Ohler
10bf9fd1f8 Adjusted paperlessng_version variable explanation 2021-05-26 08:30:17 +02:00
Jonas Winkler
bd8e68692e New translations django.po (Dutch) (#1048) 2021-05-25 00:01:38 +02:00
Jonas Winkler
b8386a1531 Merge pull request #1052 from muued/patch-5
Use ansible-galaxy during updates
2021-05-25 00:01:20 +02:00
Fabian Ohler
61534fb29d Apply suggestions from code review
Co-authored-by: Fabian Koller <C0nsultant@users.noreply.github.com>
2021-05-24 15:27:11 +02:00
Fabian Ohler
9ad81be38c adjust ansible README to installation instructions
and fix some typos
2021-05-24 15:10:41 +02:00
Fabian Ohler
cf7048e336 Use ansible-galaxy during updates
This mechanism is already used for the installation process.
2021-05-22 23:29:44 +02:00
jonaswinkler
a6105b3ad3 update frontend dependencies 2021-05-21 15:27:10 +02:00
jonaswinkler
a262a82cad Merge branch 'dev' of github.com:jonaswinkler/paperless-ng into dev 2021-05-19 23:11:43 +02:00
jonaswinkler
635c96accf better exception handling 2021-05-19 23:11:24 +02:00
Jonas Winkler
5c174a69c2 New Crowdin updates (#1043) 2021-05-19 23:00:51 +02:00
jonaswinkler
de08d17835 changelog 2021-05-19 23:00:03 +02:00
jonaswinkler
ca1e838c52 catch another exception regarding classifier loading 2021-05-19 22:57:52 +02:00
jonaswinkler
3b73146ecd changelog and version bump 2021-05-19 22:40:56 +02:00
jonaswinkler
8e3822f8e6 Merge remote-tracking branch 'origin/master' into dev 2021-05-19 22:37:01 +02:00
jonaswinkler
3b912a0de1 improved docker startup time 2021-05-19 22:26:51 +02:00
jonaswinkler
c72791bd21 Fix file permissions 2021-05-19 22:05:23 +02:00
jonaswinkler
80ba5b561f codestyle 2021-05-19 20:26:12 +02:00
jonaswinkler
f9f4d4c937 Merge branch 'dev' of github.com:jonaswinkler/paperless-ng into dev 2021-05-19 20:03:05 +02:00
jonaswinkler
0419c52d35 fix file permissions 2021-05-19 20:02:56 +02:00
jonaswinkler
93a79be1e2 delete macOS specific files 2021-05-19 20:02:47 +02:00
jonaswinkler
f8afbae2cd ignore macOS specific files 2021-05-19 19:56:01 +02:00
jonaswinkler
4a52d346f9 remove dead code 2021-05-19 19:55:35 +02:00
Jonas Winkler
7d59d11725 New Crowdin updates (#1026) 2021-05-18 14:46:12 +02:00
Jonas Winkler
5886348188 Merge pull request #1034 from steviehs/patch-1
Update setup.rst
2021-05-18 14:45:52 +02:00
steviehs
a8135528b1 Update setup.rst
Added hint to upgrade pip first.
2021-05-17 09:07:31 +02:00
jonaswinkler
df6b991161 File permissions 2021-05-16 23:01:41 +02:00
Jonas Winkler
3f33f66387 New Crowdin updates (#1023) 2021-05-16 13:13:54 +02:00
jonaswinkler
870808f3c2 add support for configuring mail server character set per server. fixes #548 2021-05-16 11:58:32 +02:00
Jonas Winkler
b12fcca20d Merge remote-tracking branch 'origin/dev' into dev 2021-05-16 01:23:07 +02:00
Jonas Winkler
61b47e358f correct file mode 2021-05-16 01:22:51 +02:00
Jonas Winkler
40a2fb7936 New Crowdin updates (#1022) 2021-05-15 21:14:03 +02:00
jonaswinkler
9afc8ba43d Merge branch 'dev' of github.com:jonaswinkler/paperless-ng into dev 2021-05-15 19:21:34 +02:00
jonaswinkler
b122a05c71 changelog and version bump 2021-05-15 19:21:15 +02:00
Jonas Winkler
f568a9fdfa Merge pull request #934 from sbrunner/no-progress
Add --no-progress-bar option to commands
2021-05-15 19:06:50 +02:00
jonaswinkler
a350bb3086 add translation hint 2021-05-15 18:58:23 +02:00
jonaswinkler
8ae4b7560b added some missing strings 2021-05-15 18:53:55 +02:00
jonaswinkler
96f4924911 frontend support for fulltext sorting 2021-05-15 18:48:39 +02:00
jonaswinkler
f3703fc6e3 only show score when sorting by score 2021-05-15 17:25:49 +02:00
jonaswinkler
0d5fd229bf disable reverse sorting by score 2021-05-15 17:11:26 +02:00
jonaswinkler
1519e66550 fix pycodestyle 2021-05-15 15:14:22 +02:00
Jonas Winkler
fcae461430 Merge pull request #1003 from puuu/baseurl
Fix sub path support
2021-05-15 15:12:00 +02:00
jonaswinkler
039d797dfc Merge branch 'dev' of github.com:jonaswinkler/paperless-ng into dev 2021-05-15 15:00:39 +02:00
Jonas Winkler
4f61868b28 New Crowdin updates (#989) 2021-05-15 15:00:00 +02:00
jonaswinkler
9efbc55fd6 update dependencies 2021-05-15 14:59:35 +02:00
Jonas Winkler
2e4e88114e Merge pull request #1019 from amenk/feature/print-css-for-doc-list
Add print css for document list
2021-05-15 14:35:02 +02:00
jonaswinkler
8ee2e8b23d sorting for full text queries 2021-05-15 13:58:11 +02:00
Alexander Menk
37287c3e7e Add print css for document list
Allow printing of the document list in a clean way

* Hide sidebar, filter
* Use full width
2021-05-15 12:26:04 +02:00
jonaswinkler
814d90745b Workaround for all PDFminer.six issues. 2021-05-15 12:15:32 +02:00
jonaswinkler
48e8076e34 Merge branch 'master' into dev 2021-05-15 12:04:45 +02:00
Jonas Winkler
edb9d934b2 Merge pull request #1017 from muued/patch-3
fix description of paperless-scheduler.service
2021-05-14 21:14:14 +02:00
Fabian Ohler
ed44f0cb04 fix description of paperless-scheduler.service 2021-05-14 13:43:39 +02:00
puuu
1c2f3cf9af Fix serving static files under root_path 2021-05-14 18:14:59 +09:00
puuu
13afd25690 Update documentation about PAPERLESS_FORCE_SCRIPT_NAME 2021-05-14 15:39:20 +09:00
puuu
f9b6374685 use {% url %} template to refere to root path 2021-05-14 14:44:13 +09:00
puuu
56c9b578e3 Make redirections respect root_path or STATIC_URL, name IndexView 2021-05-14 14:44:13 +09:00
puuu
e792a00feb Introduce BASE_URL, make LOGIN_URL and STATIC_URL work with subpath 2021-05-14 14:44:13 +09:00
puuu
c35c4eade9 Introduce ConfigurableWorker to make uvicorn respect FORCE_SCRIPT_NAME 2021-05-14 14:44:13 +09:00
puuu
5bf725546b use baseURI for websocket and api calls 2021-05-14 14:44:13 +09:00
puuu
6b6862705e make all links relative 2021-05-14 14:44:13 +09:00
jonaswinkler
b89b51b121 Merge branch 'master' into dev 2021-05-09 16:22:21 +02:00
Jonas Winkler
1b31388232 Merge pull request #995 from cmer/prevent-robot-indexing
Tell web crawlers to not index Paperless
2021-05-07 22:30:49 +02:00
Jonas Winkler
8256e73f04 Merge pull request #994 from shamoon/fix/issue-985
Respect user dark mode setting on login page
2021-05-07 22:30:03 +02:00
Carl Mercier
fc4e59ec00 Tell web crawlers to not index Paperless 2021-05-07 14:02:11 -04:00
Michael Shamoon
428e00ba23 Respect user dark mode setting on login page 2021-05-07 10:50:08 -07:00
Jonas Winkler
2ccbb08c3f Merge pull request #992 from muued/patch-2
Mention lacking support for ARM in ansible setup
2021-05-06 20:58:59 +02:00
Jonas Winkler
eefc026a17 Merge pull request #991 from muued/patch-1
Use ansible-galaxy for ansible setup
2021-05-06 17:51:21 +02:00
Fabian Ohler
d89022a280 Mention lacking support for ARM in ansible setup
Since the jbig2enc dependency is pulled from a repository that only provides i386 and amd64 packages, the installation will fail on arm hosts.
2021-05-06 14:15:12 +02:00
Fabian Ohler
93bd24c9d2 Update setup.rst
use ansible-galaxy to fetch the ansible scripts to have a role called paperless-ng instead of ansible
2021-05-06 14:08:49 +02:00
Jonas Winkler
197aec2945 New Crowdin updates (#988)
* New translations django.po (French)
[ci skip]

* New translations messages.xlf (French)
[ci skip]

* New translations django.po (Portuguese)
[ci skip]

* New translations messages.xlf (Portuguese)
[ci skip]
2021-05-05 22:36:22 +02:00
Jonas Winkler
e16d58cff5 New Crowdin updates (#986) 2021-05-05 14:49:08 +02:00
Jonas Winkler
92667009be add swedish locale 2021-05-04 17:01:39 +02:00
Jonas Winkler
c93657f40e New Crowdin updates (#976) 2021-05-04 15:28:10 +02:00
Jonas Winkler
16658f5939 Merge pull request #965 from jovandeginste/add-rtf
Add support for rtf
2021-04-30 19:11:07 +02:00
Jo Vandeginste
ec0af59596 Add support for rtf
Signed-off-by: Jo Vandeginste <Jo.Vandeginste@kuleuven.be>
2021-04-30 13:19:12 +02:00
Jonas Winkler
9e1f9d6d9d Merge pull request #960 from shamoon/fix/issue-65-2
Remove PDF type attribute to fix macOS Safari native PDF viewer crashing
2021-04-28 16:45:22 +02:00
Michael Shamoon
e652b927ce Remove type attribute of pdf object in document detail 2021-04-28 07:32:18 -07:00
Jonas Winkler
5a97f3f94b update libseccomp2 2021-04-28 02:12:55 +02:00
Jonas Winkler
9494c243a4 changelog, version bump 2021-04-27 22:52:50 +02:00
Jonas Winkler
c0a1be4325 Merge pull request #956 from WhiteHatTux/bugfix/879
Use gosu as it is less complicated than sudo
2021-04-27 09:59:05 +02:00
Jonas Winkler
70fda8e2f8 New Crowdin updates (#932) 2021-04-27 09:52:30 +02:00
Christopher Timm
5765893f69 Use gosu instead of sudo for easier configuration
#879
2021-04-26 19:06:30 -05:00
Stéphane Brunner
dc26c9b7cc Add --no-progress-bar option to commands 2021-04-18 16:16:11 +02:00
165 changed files with 30779 additions and 6785 deletions

View File

@@ -0,0 +1,37 @@
#!/bin/bash
# Verify that all text files end in a trailing newline.
# Exit on first failing command.
set -e
# Exit on unset variable.
set -u
success=0
function is_plaintext_file() {
local file="$1"
if [[ $file == *.svg ]]; then
echo ""
return
fi
file --brief "${file}" | grep text
}
# Split strings on newlines.
IFS='
'
for file in $(git ls-files)
do
if [[ -z $(is_plaintext_file "${file}") ]]; then
continue
fi
if ! [[ -z "$(tail -c 1 "${file}")" ]]; then
printf "File must end in a trailing newline: %s\n" "${file}" >&2
success=255
fi
done
exit "${success}"

View File

@@ -0,0 +1,26 @@
#!/bin/bash
# Check for trailing whitespace at end of lines.
# Exit on first failing command.
set -e
# Exit on unset variable.
set -u
FOUND_TRAILING_WHITESPACE=0
while read -r line; do
if grep \
"\s$" \
--line-number \
--with-filename \
--binary-files=without-match \
--exclude="*.svg" \
--exclude="*.eps" \
"${line}"; then
echo "ERROR: Found trailing whitespace" >&2;
FOUND_TRAILING_WHITESPACE=1
fi
done < <(git ls-files)
exit "${FOUND_TRAILING_WHITESPACE}"

View File

@@ -20,7 +20,7 @@ jobs:
name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
python-version: 3.9
-
name: Get pip cache dir
id: pip-cache
@@ -59,7 +59,7 @@ jobs:
name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
python-version: 3.9
-
name: Get pip cache dir
id: pip-cache
@@ -81,12 +81,26 @@ jobs:
run: |
cd src/
pycodestyle
whitespace:
runs-on: ubuntu-20.04
steps:
-
name: Checkout
uses: actions/checkout@v2
-
name: Ensure there are no trailing spaces
run: |
.github/workflow-scripts/check-trailing-whitespace
-
name: Ensure all text files end with a trailing newline
run: |
.github/workflow-scripts/check-trailing-whitespace
tests:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: ['3.6', '3.7', '3.8', '3.9']
python-version: ['3.7', '3.8', '3.9']
fail-fast: false
steps:
-
@@ -122,7 +136,7 @@ jobs:
pytest
-
name: Publish coverage results
if: matrix.python-version == '3.8'
if: matrix.python-version == '3.9'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# https://github.com/coveralls-clients/coveralls-python/issues/251
@@ -158,7 +172,7 @@ jobs:
path: src/documents/static/frontend/
build-release:
needs: [frontend, documentation, tests, codestyle]
needs: [frontend, documentation, tests, whitespace, codestyle]
runs-on: ubuntu-20.04
steps:
-
@@ -168,7 +182,7 @@ jobs:
name: Set up Python
uses: actions/setup-python@v2
with:
python-version: 3.7
python-version: 3.9
-
name: Install dependencies
run: |
@@ -268,7 +282,7 @@ jobs:
build-docker-image:
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/heads/feature-') || github.ref == 'refs/heads/dev' || startsWith(github.ref, 'refs/tags/ng-'))
runs-on: ubuntu-latest
needs: [frontend, tests, codestyle]
needs: [frontend, tests, whitespace, codestyle]
steps:
-
name: Prepare

View File

@@ -8,7 +8,7 @@ RUN git clone https://github.com/agl/jbig2enc .
RUN ./autogen.sh
RUN ./configure && make
FROM python:3.7-slim
FROM python:3.9-slim-bullseye
# Binary dependencies
RUN apt-get update \
@@ -19,7 +19,7 @@ RUN apt-get update \
imagemagick \
gettext \
tzdata \
sudo \
gosu \
# fonts for text file thumbnail generation
fonts-liberation \
# for Numpy
@@ -33,14 +33,11 @@ RUN apt-get update \
zlib1g \
ghostscript \
icc-profiles-free \
&& echo "deb http://deb.debian.org/debian bullseye main" > /etc/apt/sources.list.d/bullseye.list \
&& apt-get update \
&& apt-get -y --no-install-recommends install \
# Mime type detection
# Mime type detection
file \
libmagic-dev \
media-types \
# OCRmyPDF dependencies
# OCRmyPDF dependencies
liblept5 \
qpdf \
tesseract-ocr \
@@ -96,8 +93,8 @@ COPY src/ ./
RUN addgroup --gid 1000 paperless \
&& useradd --uid 1000 --gid paperless --home-dir /usr/src/paperless paperless \
&& chown -R paperless:paperless ../ \
&& sudo -HEu paperless python3 manage.py collectstatic --clear --no-input \
&& sudo -HEu paperless python3 manage.py compilemessages
&& gosu paperless python3 manage.py collectstatic --clear --no-input \
&& gosu paperless python3 manage.py compilemessages
VOLUME ["/usr/src/paperless/data", "/usr/src/paperless/media", "/usr/src/paperless/consume", "/usr/src/paperless/export"]
ENTRYPOINT ["/sbin/docker-entrypoint.sh"]

16
Pipfile
View File

@@ -14,15 +14,14 @@ django = "~=3.2"
django-cors-headers = "*"
django-extensions = "*"
django-filter = "~=2.4.0"
django-q = "==1.3.4"
django-q = "~=1.3.4"
djangorestframework = "~=3.12.2"
filelock = "*"
fuzzywuzzy = {extras = ["speedup"], version = "*"}
gunicorn = "*"
imap-tools = "*"
langdetect = "*"
# numpy 1.20.0 drops python 3.6 support
numpy = "~=1.19.5"
numpy = "~=1.20.0"
pathvalidate = "*"
pillow = "~=8.1"
pikepdf = "~=2.5"
@@ -34,13 +33,11 @@ psycopg2-binary = "*"
redis = "*"
# Pinned because aarch64 wheels and updates cause warnings when loading the classifier model.
scikit-learn="==0.24.0"
# Prevent scipy updates because 1.6 is incompatible with python 3.6
scipy="~=1.5.4"
whitenoise = "~=5.2.0"
watchdog = "~=1.0.0"
whitenoise = "~=5.3.0"
watchdog = "~=2.1.0"
whoosh="~=2.7.4"
inotifyrecursive = "~=0.3.4"
ocrmypdf = "~=11.6"
ocrmypdf = "~=12.3"
tqdm = "*"
tika = "*"
# TODO: This will sadly also install daphne+dependencies,
@@ -50,9 +47,10 @@ channels-redis = "*"
uvicorn = {extras = ["standard"], version = "*"}
concurrent-log-handler = "*"
# uvloop 0.15+ incompatible with python 3.6
uvloop = "~=0.14.0"
uvloop = "~=0.15"
cryptography = "~=3.4"
"pdfminer.six" = "*"
"backports.zoneinfo" = "*"
[dev-packages]
coveralls = "*"

1309
Pipfile.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -100,6 +100,7 @@ Paperless has been around a while now, and people are starting to build stuff on
* [Paperless App](https://github.com/bauerj/paperless_app): An Android/iOS app for Paperless. Updated to work with paperless-ng.
* [Paperless Share](https://github.com/qcasey/paperless_share). Share any files from your Android application with paperless. Very simple, but works with all of the mobile scanning apps out there that allow you to share scanned documents.
* [Scan to Paperless](https://github.com/sbrunner/scan-to-paperless): Scan and prepare (crop, deskew, OCR, ...) your documents for Paperless.
These projects also exist, but their status and compatibility with paperless-ng is unknown.

View File

@@ -12,27 +12,29 @@ Note that this role requires root access, so either run it in a playbook with a
- hosts: all
roles:
- role: ansible
- role: paperless-ng
become: yes
Role Variables
--------------
Most configuration variables from paperless-ng itself are available and accept their respective arguments.
Every `PAPERLESS_*` configuration varaible is lowercased and instead prefixed with `paperlessng_*` in `defaults/main.yml`.
Every `PAPERLESS_*` configuration variable is lowercased and instead prefixed with `paperlessng_*` in `defaults/main.yml`.
For a full listing including explainations and allowed values, see the current [documentation](https://paperless-ng.readthedocs.io/en/ng-0.9.14/configuration.html).
For a full listing including explanations and allowed values, see the current [documentation](https://paperless-ng.readthedocs.io/en/latest/configuration.html).
Additional variables available in this role are listed below, along with default values:
paperlessng_version: 0.9.14
paperlessng_version: latest
The [release](https://github.com/jonaswinkler/paperless-ng/releases) archive version of paperless-ng to install.
`latest` stands for the latest release of paperless-ng.
To install a specific version of paperless-ng, use the tag name of the release, e. g. `ng-1.4.4`, or specify a branch or commit id.
paperlessng_redis_host: localhost
paperlessng_redis_port: 6379
Seperate configuration values that combine into `PAPERLESS_REDIS`.
Separate configuration values that combine into `PAPERLESS_REDIS`.
paperlessng_db_type: sqlite
@@ -96,11 +98,11 @@ Example Playbook
- hosts: all
become: yes
vars_files:
- vars/main.yml
- vars/paperless-ng.yml
roles:
- ansible
- paperless-ng
`vars/main.yml`:
`vars/paperless-ng.yml`:
paperlessng_media_root: /mnt/media/smbshare

View File

@@ -4,37 +4,37 @@ set -e
# Source: https://github.com/sameersbn/docker-gitlab/
map_uidgid() {
USERMAP_ORIG_UID=$(id -u paperless)
USERMAP_ORIG_GID=$(id -g paperless)
USERMAP_NEW_UID=${USERMAP_UID:-$USERMAP_ORIG_UID}
USERMAP_NEW_GID=${USERMAP_GID:-${USERMAP_ORIG_GID:-$USERMAP_NEW_UID}}
if [[ ${USERMAP_NEW_UID} != "${USERMAP_ORIG_UID}" || ${USERMAP_NEW_GID} != "${USERMAP_ORIG_GID}" ]]; then
echo "Mapping UID and GID for paperless:paperless to $USERMAP_NEW_UID:$USERMAP_NEW_GID"
usermod -u "${USERMAP_NEW_UID}" paperless
groupmod -o -g "${USERMAP_NEW_GID}" paperless
fi
USERMAP_ORIG_UID=$(id -u paperless)
USERMAP_ORIG_GID=$(id -g paperless)
USERMAP_NEW_UID=${USERMAP_UID:-$USERMAP_ORIG_UID}
USERMAP_NEW_GID=${USERMAP_GID:-${USERMAP_ORIG_GID:-$USERMAP_NEW_UID}}
if [[ ${USERMAP_NEW_UID} != "${USERMAP_ORIG_UID}" || ${USERMAP_NEW_GID} != "${USERMAP_ORIG_GID}" ]]; then
echo "Mapping UID and GID for paperless:paperless to $USERMAP_NEW_UID:$USERMAP_NEW_GID"
usermod -u "${USERMAP_NEW_UID}" paperless
groupmod -o -g "${USERMAP_NEW_GID}" paperless
fi
}
initialize() {
map_uidgid
for dir in export data data/index media media/documents media/documents/originals media/documents/thumbnails; do
if [[ ! -d "../$dir" ]]
then
echo "creating directory ../$dir"
if [[ ! -d "../$dir" ]]; then
echo "Creating directory ../$dir"
mkdir ../$dir
fi
done
echo "creating directory /tmp/paperless"
echo "Creating directory /tmp/paperless"
mkdir -p /tmp/paperless
set +e
chown -R paperless:paperless ../
set +e
echo "Adjusting permissions of paperless files. This may take a while."
chown -R paperless:paperless /tmp/paperless
set -e
find .. -not \( -user paperless -and -group paperless \) -exec chown paperless:paperless {} +
set -e
sudo -HEu paperless /sbin/docker-prepare.sh
gosu paperless /sbin/docker-prepare.sh
}
install_languages() {
@@ -50,42 +50,42 @@ install_languages() {
apt-get update
for lang in "${langs[@]}"; do
pkg="tesseract-ocr-$lang"
# English is installed by default
#if [[ "$lang" == "eng" ]]; then
# continue
#fi
pkg="tesseract-ocr-$lang"
# English is installed by default
#if [[ "$lang" == "eng" ]]; then
# continue
#fi
if dpkg -s $pkg &> /dev/null; then
echo "package $pkg already installed!"
continue
fi
if dpkg -s $pkg &>/dev/null; then
echo "Package $pkg already installed!"
continue
fi
if ! apt-cache show $pkg &> /dev/null; then
echo "package $pkg not found! :("
continue
fi
if ! apt-cache show $pkg &>/dev/null; then
echo "Package $pkg not found! :("
continue
fi
echo "Installing package $pkg..."
if ! apt-get -y install "$pkg" &> /dev/null; then
echo "Could not install $pkg"
exit 1
fi
done
echo "Installing package $pkg..."
if ! apt-get -y install "$pkg" &>/dev/null; then
echo "Could not install $pkg"
exit 1
fi
done
}
echo "Paperless-ng docker container starting..."
# Install additional languages if specified
if [[ ! -z "$PAPERLESS_OCR_LANGUAGES" ]]; then
install_languages "$PAPERLESS_OCR_LANGUAGES"
if [[ ! -z "$PAPERLESS_OCR_LANGUAGES" ]]; then
install_languages "$PAPERLESS_OCR_LANGUAGES"
fi
initialize
if [[ "$1" != "/"* ]]; then
echo Executing management command "$@"
exec sudo -HEu paperless python3 manage.py "$@"
exec gosu paperless python3 manage.py "$@"
else
echo Executing "$@"
exec "$@"

View File

@@ -6,7 +6,7 @@ cd /usr/src/paperless/src/
if [[ $(id -u) == 0 ]] ;
then
sudo -HEu paperless python3 manage.py management_command "$@"
gosu paperless python3 manage.py management_command "$@"
elif [[ $(id -un) == "paperless" ]] ;
then
python3 manage.py management_command "$@"

View File

@@ -149,22 +149,15 @@ Ansible Route
Most of the update process is automated when using the ansible role.
1. Backup your defined role variables file outside the paperless source-tree:
1. Update the role to the target release tag to make sure the ansible scripts are compatible:
.. code:: shell-session
$ cp ansible/vars.yml ~/vars.yml.old
$ ansible-galaxy install git+https://github.com/jonaswinkler/paperless-ng.git,master --force
2. Pull the release tag you want to update to:
2. Update the role variable definitions ``vars/paperless-ng.yml`` (where appropriate).
.. code:: shell-session
$ git fetch --all
$ git checkout ng-0.9.14
3. Update the role variable definitions ``ansible/vars.yml`` (where appropriate).
4. Run the ansible playbook you created created during :ref:`installation <setup-ansible>` again:
3. Run the ansible playbook you created created during :ref:`installation <setup-ansible>` again:
.. note::
@@ -247,6 +240,8 @@ Document exporter
The document exporter exports all your data from paperless into a folder for
backup or migration to another DMS.
If you use the document exporter within a cronjob to backup your data you might use the ``-T`` flag behind exec to suppress "The input device is not a TTY" errors. For example: ``docker-compose exec -T webserver document_exporter ../export``
.. code::
document_exporter target [-c] [-f] [-d]

View File

@@ -5,6 +5,61 @@
Changelog
*********
paperless-ng 1.5.0
##################
Support for Python 3.6 was dropped.
* Updated python dependencies.
* Base image of the docker image changed from Debian Buster to Debian Bullseye due to its recent release.
* The docker image now uses python 3.9.
* Added the Luxembourgish locale. Thanks for translating!
* `Daniel Albers`_ added support for making the files and folders ignored by the paperless consume folder scanner configurable. See ``PAPERLESS_CONSUMER_IGNORE_PATTERNS``.
paperless-ng 1.4.5
##################
This is a maintenance release.
* Updated Python and Angular dependencies.
* Changed the algorithm that changes permissions during startup. This is still fast,
and will hopefully cause less issues.
* Fixed an issue that would sometimes cause paperless to write an incomplete
classification model file to disk.
* Fixed an issue with the OCRmyPDF parser that would always try to extract text
with PDFminer even from non-PDF files.
paperless-ng 1.4.4
##################
* Drastically decreased the startup time of the docker container. The startup script adjusts file permissions of all data only if changes are required.
* Paperless mail: Added ability to specify the character set for each server.
* Document consumption: Ignore Mac OS specific files such as ``.DS_STORE`` and ``._XXXXX.pdf``.
* Fixed an issue with the automatic matching algorithm that prevents paperless from consuming new files.
* Updated translations.
paperless-ng 1.4.3
##################
* Additions and changes
* Added Swedish locale.
* `Stéphane Brunner`_ added an option to disable the progress bars of all management commands.
* `Jo Vandeginste`_ added support for RTF documents to the Apache TIKA parser.
* `Michael Shamoon`_ added dark mode for the login and logout pages.
* `Alexander Menk`_ added additional stylesheets for printing. You can now print any page of paperless and the print result will hide the page header, sidebar, and action buttons.
* Added support for sorting when using full text search.
* Fixes
* `puuu`_ fixed ``PAPERLESS_FORCE_SCRIPT_NAME``. You can now host paperless on sub paths such as ``https://localhost:8000/paperless/``.
* Fixed an issue with the document consumer crashing on certain documents due to issues with pdfminer.six. This library is used for PDF text extraction.
paperless-ng 1.4.2
##################
* Fixed an issue with ``sudo`` that caused paperless to not start on many Raspberry Pi devices. Thank you `WhiteHatTux`_!
paperless-ng 1.4.1
##################
@@ -54,17 +109,6 @@ paperless-ng 1.4.0
To do this, execute the ``document_index reindex`` management command
(see :ref:`administration-index`).
.. note::
Some packages that paperless depends on are slowly dropping Python 3.6
support one after another, including the web server. Supporting Python
3.6 means that I cannot update these packages anymore.
At some point, paperless will drop Python 3.6 support. If using a bare
metal installation and you're still on Python 3.6, upgrade to 3.7 or newer.
If using docker, this does not affect you.
paperless-ng 1.3.2
##################
@@ -1361,6 +1405,9 @@ bulk of the work on this big change.
* Initial release
.. _Alexander Menk: https://github.com/amenk
.. _puuu: https://github.com/puuu
.. _WhiteHatTux: https://github.com/WhiteHatTux
.. _Chris Nagy: https://github.com/what-name
.. _sbrl: https://github.com/sbrl
.. _slorenz: https://github.com/sisao
@@ -1435,6 +1482,7 @@ bulk of the work on this big change.
.. _JOKer: https://github.com/MasterofJOKers
.. _Brian Cribbs: https://github.com/cribbstechnolog
.. _Brendan M. Sleight: https://github.com/bmsleight
.. _Daniel Albers: https://github.com/AlD
.. _#20: https://github.com/the-paperless-project/paperless/issues/20
.. _#44: https://github.com/the-paperless-project/paperless/issues/44

View File

@@ -154,10 +154,6 @@ PAPERLESS_FORCE_SCRIPT_NAME=<path>
To host paperless under a subpath url like example.com/paperless you set
this value to /paperless. No trailing slash!
.. note::
I don't know if this works in paperless-ng. Probably not.
Defaults to none, which hosts paperless at "/".
PAPERLESS_STATIC_URL=<path>
@@ -262,6 +258,8 @@ PAPERLESS_OCR_LANGUAGE=<lang>
Defaults to "eng".
Note: If your language contains a '-' such as chi-sim, you must use chi_sim
PAPERLESS_OCR_MODE=<mode>
Tell paperless when and how to perform ocr on your documents. Four modes
are available:
@@ -626,6 +624,20 @@ PAPERLESS_IGNORE_DATES=<string>
Defaults to an empty string to not ignore any dates.
PAPERLESS_DATE_ORDER=<format>
Paperless will try to determine the document creation date from its contents.
Specify the date format Paperless should expect to see within your documents.
This option defaults to DMY which translates to day first, month second, and year
last order. Characters D, M, or Y can be shuffled to meet the required order.
PAPERLESS_CONSUMER_IGNORE_PATTERNS=<json>
By default, paperless ignores certain files and folders in the consumption
directory, such as system files created by the Mac OS.
This can be adjusted by configuring a custom json array with patterns to exclude.
Defautls to ``[".DS_STORE/*", "._*", ".stfolder/*"]``.
Binaries
########

View File

@@ -13,42 +13,48 @@ that works right for you based on recommendations from other Paperless users.
Physical scanners
=================
+---------+----------------+-----+-----+-----+------+----------------+
| Brand | Model | Supports | Recommended By |
+---------+----------------+-----+-----+-----+------+----------------+
| | | FTP | NFS | SMB | SMTP | |
+=========+================+=====+=====+=====+======+================+
| Brother | `ADS-1700W`_ | yes | no | yes | yes |`holzhannes`_ |
+---------+----------------+-----+-----+-----+------+----------------+
| Brother | `ADS-1600W`_ | yes | no | yes | yes |`holzhannes`_ |
+---------+----------------+-----+-----+-----+------+----------------+
| Brother | `ADS-1500W`_ | yes | no | yes | yes |`danielquinn`_ |
+---------+----------------+-----+-----+-----+------+----------------+
| Brother | `MFC-J6930DW`_ | yes | | | |`ayounggun`_ |
+---------+----------------+-----+-----+-----+------+----------------+
| Brother | `MFC-L5850DW`_ | yes | | | yes |`holzhannes`_ |
+---------+----------------+-----+-----+-----+------+----------------+
| Brother | `MFC-J5910DW`_ | yes | | | |`bmsleight`_ |
+---------+----------------+-----+-----+-----+------+----------------+
| Brother | `MFC-9142CDN`_ | yes | | yes | |`REOLDEV`_ |
+---------+----------------+-----+-----+-----+------+----------------+
| Fujitsu | `ix500`_ | yes | | yes | |`eonist`_ |
+---------+----------------+-----+-----+-----+------+----------------+
| Epson | `WF-7710DWF`_ | yes | | yes | |`Skylinar`_ |
+---------+----------------+-----+-----+-----+------+----------------+
| Fujitsu | `S1300i`_ | yes | | yes | |`jonaswinkler`_ |
+---------+----------------+-----+-----+-----+------+----------------+
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Brand | Model | Supports | Recommended By |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| | | FTP | NFS | SMB | SMTP | API [1]_ | |
+=========+================+=====+=====+=====+======+==========+================+
| Brother | `ADS-1700W`_ | yes | no | yes | yes | |`holzhannes`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Brother | `ADS-1600W`_ | yes | no | yes | yes | |`holzhannes`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Brother | `ADS-1500W`_ | yes | no | yes | yes | |`danielquinn`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Brother | `ADS-1100W`_ | yes | no | no | no | |`ytzelf`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Brother | `MFC-J6930DW`_ | yes | | | | |`ayounggun`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Brother | `MFC-L5850DW`_ | yes | | | yes | |`holzhannes`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Brother | `MFC-J5910DW`_ | yes | | | | |`bmsleight`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Brother | `MFC-9142CDN`_ | yes | | yes | | |`REOLDEV`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Fujitsu | `ix500`_ | yes | | yes | | |`eonist`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Epson | `WF-7710DWF`_ | yes | | yes | | |`Skylinar`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Fujitsu | `S1300i`_ | yes | | yes | | |`jonaswinkler`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
| Doxie | `Q2`_ | no | no | no | no | yes |`Unkn0wnCat`_ |
+---------+----------------+-----+-----+-----+------+----------+----------------+
.. _MFC-L5850DW: https://www.brother-usa.com/products/mfcl5850dw
.. _ADS-1700W: https://www.brother-usa.com/products/ads1700w
.. _ADS-1600W: https://www.brother-usa.com/products/ads1600w
.. _ADS-1500W: https://www.brother.ca/en/p/ads1500w
.. _ADS-1100W: https://support.brother.com/g/b/downloadtop.aspx?c=fr&lang=fr&prod=ads1100w_eu_as_cn
.. _MFC-J6930DW: https://www.brother.ca/en/p/MFCJ6930DW
.. _MFC-J5910DW: https://www.brother.co.uk/printers/inkjet-printers/mfcj5910dw
.. _MFC-9142CDN: https://www.brother.co.uk/printers/laser-printers/mfc9140cdn
.. _ix500: http://www.fujitsu.com/us/products/computing/peripheral/scanners/scansnap/ix500/
.. _WF-7710DWF: https://www.epson.de/en/products/printers/inkjet-printers/for-home/workforce-wf-7710dwf
.. _S1300i: https://www.fujitsu.com/global/products/computing/peripheral/scanners/soho/s1300i/
.. _Q2: https://www.getdoxie.com/product/doxie-q/
.. _danielquinn: https://github.com/danielquinn
@@ -59,6 +65,10 @@ Physical scanners
.. _Skylinar: https://github.com/Skylinar
.. _jonaswinkler: https://github.com/jonaswinkler
.. _holzhannes: https://github.com/holzhannes
.. _ytzelf: https://github.com/ytzelf
.. _Unkn0wnCat: https://github.com/Unkn0wnCat
.. [1] Scanners with API Integration allow to push scanned documents directly to :ref:`Paperless API <api-file_uploads>`, sometimes referred to as Webhook or Document POST.
Mobile phone software
=====================

View File

@@ -116,9 +116,7 @@ performs all the steps described in :ref:`setup-docker_hub` automatically.
.. code:: shell-session
$ wget https://raw.githubusercontent.com/jonaswinkler/paperless-ng/master/install-paperless-ng.sh
$ chmod +x install-paperless-ng.sh
$ ./install-paperless-ng.sh
$ curl -L https://raw.githubusercontent.com/jonaswinkler/paperless-ng/master/install-paperless-ng.sh | bash
.. _setup-docker_hub:
@@ -360,7 +358,11 @@ writing. Windows is not and will never be supported.
Adjust as necessary if you configured different folders.
8. Install python requirements from the ``requirements.txt`` file.
It is up to you if you wish to use a virtual environment or not.
It is up to you if you wish to use a virtual environment or not. First you should update your pip, so it gets the actual packages.
.. code:: shell-session
sudo -Hu paperless pip3 install --upgrade pip
.. code:: shell-session
@@ -460,6 +462,7 @@ Install Paperless using ansible
.. note::
This role currently only supports Debian 10 Buster and Ubuntu 20.04 Focal or later as target hosts.
Additionally, only i386 or amd64 based hosts are supported right now, i.e. installation on arm hosts will fail.
1. Install ansible 2.7+ on the management node.
This may be the target host paperless-ng is being installed on or any remote host which can access the target host.
@@ -485,29 +488,22 @@ Install Paperless using ansible
ansible -m ping YourAnsibleTargetHostGoesHere
2. Clone the repository of paperless-ng:
2. Install the latest tag of the ansible role using ansible-galaxy
.. code:: sh
git clone https://github.com/jonaswinkler/paperless-ng
ansible-galaxy install git+https://github.com/jonaswinkler/paperless-ng.git,ng-1.4.2
Checkout the latest release tag:
.. code:: sh
cd paperless-ng
git checkout ng-1.0.0
3. Create an ansible ``playbook.yml`` in the paperless-ng root directory:
3. Create an ansible ``playbook.yml`` in a directory of your choice:
.. code:: yaml
- hosts: YourAnsibleTargetHostGoesHere
become: yes
vars_files:
- ansible/vars.yml
- vars/paperless-ng.yml
roles:
- ansible
- paperless-ng
Optional: If you also want to use PostgreSQL on the target system, install and add (for example) the `geerlingguy.postgresql <https://github.com/geerlingguy/ansible-role-postgresql>`_ role:
@@ -520,10 +516,10 @@ Install Paperless using ansible
- hosts: YourAnsibleTargetHostGoesHere
become: yes
vars_files:
- ansible/vars.yml
- vars/paperless-ng.yml
roles:
- geerlingguy.postgresql
- ansible
- paperless-ng
Optional: If you also want to use a reverse proxy on the target system, install and add (for example) the `geerlingguy.nginx <https://github.com/geerlingguy/ansible-role-nginx>`_ role:
@@ -536,13 +532,13 @@ Install Paperless using ansible
- hosts: YourAnsibleTargetHostGoesHere
become: yes
vars_files:
- ansible/vars.yml
- vars/paperless-ng.yml
roles:
- geerlingguy.postgresql
- ansible
- paperless-ng
- geerlingguy.nginx
4. Create ``ansible/vars.yml`` to configure your ansible deployment:
4. Create ``vars/paperless-ng.yml`` to configure your ansible deployment:
.. code:: yaml

View File

@@ -2,7 +2,7 @@ import os
bind = '0.0.0.0:8000'
workers = int(os.getenv("PAPERLESS_WEBSERVER_WORKERS", 2))
worker_class = 'uvicorn.workers.UvicornWorker'
worker_class = 'paperless.workers.ConfigurableWorker'
timeout = 120
def pre_fork(server, worker):

View File

@@ -57,6 +57,7 @@
#PAPERLESS_CONSUMER_POLLING=10
#PAPERLESS_CONSUMER_DELETE_DUPLICATES=false
#PAPERLESS_CONSUMER_RECURSIVE=false
#PAPERLESS_CONSUMER_IGNORE_PATTERNS=[".DS_STORE/*", "._*", ".stfolder/*"]
#PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS=false
#PAPERLESS_OPTIMIZE_THUMBNAILS=true
#PAPERLESS_POST_CONSUME_SCRIPT=/path/to/an/arbitrary/script.sh

View File

@@ -8,93 +8,96 @@
-i https://pypi.python.org/simple
--extra-index-url https://www.piwheels.org/simple
aioredis==1.3.1
arrow==1.0.3; python_version >= '3.6'
asgiref==3.3.4; python_version >= '3.6'
arrow==1.1.1; python_version >= '3.6'
asgiref==3.4.1; python_version >= '3.6'
async-timeout==3.0.1; python_full_version >= '3.5.3'
attrs==20.3.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
attrs==21.2.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
autobahn==21.3.1; python_version >= '3.7'
automat==20.2.0
blessed==1.18.0
certifi==2020.12.5
cffi==1.14.5
channels-redis==3.2.0
channels==3.0.3
backports.zoneinfo==0.2.1
blessed==1.18.1; python_version >= '2.7'
certifi==2021.5.30
cffi==1.14.6
channels-redis==3.3.0
channels==3.0.4
chardet==4.0.0; python_version >= '3.1'
click==7.1.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
coloredlogs==15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
charset-normalizer==2.0.4; python_version >= '3'
click==8.0.1; python_version >= '3.6'
coloredlogs==15.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
concurrent-log-handler==0.9.19
constantly==15.1.0
cryptography==3.4.7
daphne==3.0.2; python_version >= '3.6'
dateparser==1.0.0
django-cors-headers==3.7.0
django-extensions==3.1.2
django-cors-headers==3.8.0
django-extensions==3.1.3
django-filter==2.4.0
django-picklefield==3.0.1; python_version >= '3'
django-q==1.3.4
django==3.2
django-q==1.3.9
django==3.2.6
djangorestframework==3.12.4
filelock==3.0.12
fuzzywuzzy[speedup]==0.18.0
gunicorn==20.1.0
h11==0.12.0; python_version >= '3.6'
hiredis==2.0.0; python_version >= '3.6'
httptools==0.1.1
humanfriendly==9.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
httptools==0.2.0
humanfriendly==9.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
hyperlink==21.0.0
idna==2.10; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
imap-tools==0.39.0
img2pdf==0.4.0
idna==3.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
imap-tools==0.46.0
img2pdf==0.4.1
incremental==21.3.0
inotify-simple==1.3.5; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
inotifyrecursive==0.3.5
joblib==1.0.1; python_version >= '3.6'
langdetect==1.0.8
langdetect==1.0.9
lxml==4.6.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
msgpack==1.0.2
numpy==1.19.5
ocrmypdf==11.7.3
numpy==1.20.3
ocrmypdf==12.3.2
pathvalidate==2.4.1
pdfminer.six==20201018
pikepdf==2.11.1
pillow==8.2.0
pikepdf==2.16.1
pillow==8.3.1
pluggy==0.13.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
portalocker==2.3.0; python_version >= '3'
psycopg2-binary==2.8.6
psycopg2-binary==2.9.1
pyasn1-modules==0.2.8
pyasn1==0.4.8
pycparser==2.20; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
pyopenssl==20.0.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
python-dateutil==2.8.1
python-dotenv==0.17.0
python-dateutil==2.8.2
python-dotenv==0.19.0
python-gnupg==0.4.7
python-levenshtein==0.12.2
python-magic==0.4.22
python-magic==0.4.24
pytz==2021.1
pyyaml==5.4.1
redis==3.5.3
regex==2021.4.4
reportlab==3.5.67; python_version >= '2.7' and python_version < '4'
requests==2.25.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'
regex==2021.8.3
reportlab==3.6.1; python_version >= '2.7' and python_version < '4'
requests==2.26.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'
scikit-learn==0.24.0
scipy==1.5.4
service-identity==18.1.0
six==1.15.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
sortedcontainers==2.3.0
scipy==1.7.1; python_version < '3.10' and python_version >= '3.7'
service-identity==21.1.0
six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'
sortedcontainers==2.4.0
sqlparse==0.4.1; python_version >= '3.5'
threadpoolctl==2.1.0; python_version >= '3.5'
threadpoolctl==2.2.0; python_version >= '3.6'
tika==1.24
tqdm==4.60.0
twisted[tls]==21.2.0; python_full_version >= '3.5.4'
tqdm==4.62.1
twisted[tls]==21.7.0; python_full_version >= '3.6.7'
txaio==21.2.1; python_version >= '3.6'
tzlocal==2.1
urllib3==1.26.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
uvicorn[standard]==0.13.4
uvloop==0.14.0
watchdog==1.0.2
typing-extensions==3.10.0.0
tzlocal==3.0; python_version >= '3.6'
urllib3==1.26.6; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'
uvicorn[standard]==0.15.0
uvloop==0.16.0
watchdog==2.1.3
watchgod==0.7
wcwidth==0.2.5
websockets==8.1
whitenoise==5.2.0
websockets==9.1
whitenoise==5.3.0
whoosh==2.7.4
zope.interface==5.4.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'

View File

@@ -1,5 +1,5 @@
[Unit]
Description=Paperless consumer
Description=Paperless scheduler
Requires=redis.service
[Service]

View File

@@ -26,7 +26,9 @@
"ro-RO": "src/locale/messages.ro_RO.xlf",
"ru-RU": "src/locale/messages.ru_RU.xlf",
"es-ES": "src/locale/messages.es_ES.xlf",
"pl-PL": "src/locale/messages.pl_PL.xlf"
"pl-PL": "src/locale/messages.pl_PL.xlf",
"sv-SE": "src/locale/messages.sv_SE.xlf",
"lb-LU": "src/locale/messages.lb_LU.xlf"
}
},
"architect": {
@@ -71,7 +73,6 @@
"optimization": true,
"outputHashing": "none",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"extractLicenses": true,
"vendorChunk": false,

View File

@@ -1407,11 +1407,19 @@
<context context-type="linenumber">68</context>
</context-group>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
</trans-unit>
<trans-unit id="27d158b47717ff9305d19866960418c603f19d55" datatype="html">
@@ -1421,6 +1429,13 @@
<context context-type="linenumber">3</context>
</context-group>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1731,11 +1746,18 @@
<context context-type="linenumber">101</context>
</context-group>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
</trans-unit>
<trans-unit id="2119857572761283468" datatype="html">
@@ -1882,6 +1904,14 @@
<context context-type="linenumber">23</context>
</context-group>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

25149
src-ui/package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -11,41 +11,41 @@
},
"private": true,
"dependencies": {
"@angular/animations": "~10.1.5",
"@angular/common": "~10.1.5",
"@angular/compiler": "~10.1.5",
"@angular/core": "~10.1.5",
"@angular/forms": "~10.1.5",
"@angular/localize": "~10.1.5",
"@angular/platform-browser": "~10.1.5",
"@angular/platform-browser-dynamic": "~10.1.5",
"@angular/router": "~10.1.5",
"@ng-bootstrap/ng-bootstrap": "^8.0.4",
"@ng-select/ng-select": "^5.0.9",
"@angular/animations": "~11.2.14",
"@angular/common": "~11.2.14",
"@angular/compiler": "~11.2.14",
"@angular/core": "~11.2.14",
"@angular/forms": "~11.2.14",
"@angular/localize": "~11.2.14",
"@angular/platform-browser": "~11.2.14",
"@angular/platform-browser-dynamic": "~11.2.14",
"@angular/router": "~11.2.14",
"@ng-bootstrap/ng-bootstrap": "^9.1.2",
"@ng-select/ng-select": "^7.0.0",
"bootstrap": "^4.5.0",
"file-saver": "^2.0.5",
"ng-bootstrap": "^1.6.3",
"ng2-pdf-viewer": "^6.3.2",
"ngx-bootstrap": "^6.2.0",
"ngx-color": "^6.2.0",
"ngx-cookie-service": "^10.1.1",
"ngx-file-drop": "^10.0.0",
"ngx-file-drop": "^11.1.0",
"ngx-infinite-scroll": "^9.1.0",
"rxjs": "~6.6.0",
"tslib": "^2.0.0",
"uuid": "^8.3.1",
"zone.js": "~0.10.2"
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.1002.0",
"@angular/cli": "~10.1.5",
"@angular/compiler-cli": "~10.1.5",
"@types/jasmine": "~3.5.0",
"@angular-devkit/build-angular": "~0.1102.13",
"@angular/cli": "~11.2.14",
"@angular/compiler-cli": "~11.2.14",
"@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3",
"@types/node": "^12.11.1",
"codelyzer": "^6.0.0",
"jasmine-core": "~3.6.0",
"jasmine-spec-reporter": "~5.0.0",
"karma": "~5.0.0",
"karma": "~6.3.3",
"karma-chrome-launcher": "~3.1.0",
"karma-coverage-istanbul-reporter": "~3.0.2",
"karma-jasmine": "~4.0.0",
@@ -53,6 +53,6 @@
"protractor": "~7.0.0",
"ts-node": "~8.3.0",
"tslint": "~6.1.0",
"typescript": "~4.0.2"
"typescript": "~4.1.5"
}
}

View File

@@ -33,7 +33,7 @@ const routes: Routes = [
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],
exports: [RouterModule]
})
export class AppRoutingModule { }

View File

@@ -18,7 +18,7 @@ export class AppComponent implements OnInit, OnDestroy {
constructor (private settings: SettingsService, private consumerStatusService: ConsumerStatusService, private toastService: ToastService, private router: Router) {
let anyWindow = (window as any)
anyWindow.pdfWorkerSrc = '/assets/js/pdf.worker.min.js';
anyWindow.pdfWorkerSrc = 'assets/js/pdf.worker.min.js';
this.settings.updateDarkModeSettings()
}

View File

@@ -75,6 +75,8 @@ import localeRo from '@angular/common/locales/ro';
import localeRu from '@angular/common/locales/ru';
import localeEs from '@angular/common/locales/es';
import localePl from '@angular/common/locales/pl';
import localeSv from '@angular/common/locales/sv';
import localeLb from '@angular/common/locales/lb';
registerLocaleData(localeFr)
@@ -88,6 +90,8 @@ registerLocaleData(localeRo)
registerLocaleData(localeRu)
registerLocaleData(localeEs)
registerLocaleData(localePl)
registerLocaleData(localeSv)
registerLocaleData(localeLb)
@NgModule({
declarations: [

View File

@@ -8,6 +8,8 @@
[clearable]="allowNull"
[items]="items"
[addTag]="allowCreateNew && addItemRef"
addTagText="Add item"
i18n-addTagText="Used for both types and correspondents"
bindLabel="name"
bindValue="id"
(change)="onChange(value)"

View File

@@ -9,6 +9,7 @@
[hideSelected]="true"
[addTag]="createTagRef"
addTagText="Add tag"
i18n-addTagText
(change)="onChange(value)"
(search)="onSearch($event)"
(focus)="clearLastSearchTerm()"

View File

@@ -139,7 +139,7 @@
<pdf-viewer [src]="previewUrl" [original-size]="false" [show-borders]="true" [show-all]="true" [(page)]="previewCurrentPage" [render-text-mode]="2" (after-load-complete)="pdfPreviewLoaded($event)"></pdf-viewer>
</div>
<ng-template #nativePdfViewer>
<object [data]="previewUrl | safe" type="application/pdf" class="preview-sticky" width="100%"></object>
<object [data]="previewUrl | safe" class="preview-sticky" width="100%"></object>
</ng-template>
</ng-container>
<ng-container *ngIf="getContentType() == 'text/plain'">

View File

@@ -83,7 +83,7 @@
<small>{{document.created | customDate:'mediumDate'}}</small>
</div>
<div *ngIf="document.__search_hit__" class="list-group-item bg-light text-dark border-0 d-flex p-0 pl-4 search-score">
<div *ngIf="document.__search_hit__?.score" class="list-group-item bg-light text-dark border-0 d-flex p-0 pl-4 search-score">
<small class="text-muted" i18n>Score:</small>
<ngb-progressbar [type]="searchScoreClass" [value]="document.__search_hit__.score" class="search-score-bar mx-2 mt-1" [max]="1"></ngb-progressbar>
</div>

View File

@@ -2,14 +2,14 @@ import { Component, OnDestroy, OnInit, QueryList, ViewChild, ViewChildren } from
import { ActivatedRoute, Router } from '@angular/router';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { Subscription } from 'rxjs';
import { FilterRule } from 'src/app/data/filter-rule';
import { FilterRule, isFullTextFilterRule } from 'src/app/data/filter-rule';
import { FILTER_FULLTEXT_MORELIKE } from 'src/app/data/filter-rule-type';
import { PaperlessDocument } from 'src/app/data/paperless-document';
import { PaperlessSavedView } from 'src/app/data/paperless-saved-view';
import { SortableDirective, SortEvent } from 'src/app/directives/sortable.directive';
import { ConsumerStatusService } from 'src/app/services/consumer-status.service';
import { DocumentListViewService } from 'src/app/services/document-list-view.service';
import { DOCUMENT_SORT_FIELDS } from 'src/app/services/rest/document.service';
import { DOCUMENT_SORT_FIELDS, DOCUMENT_SORT_FIELDS_FULLTEXT } from 'src/app/services/rest/document.service';
import { SavedViewService } from 'src/app/services/rest/saved-view.service';
import { ToastService } from 'src/app/services/toast.service';
import { FilterEditorComponent } from './filter-editor/filter-editor.component';
@@ -52,7 +52,7 @@ export class DocumentListComponent implements OnInit, OnDestroy {
}
getSortFields() {
return DOCUMENT_SORT_FIELDS
return isFullTextFilterRule(this.list.filterRules) ? DOCUMENT_SORT_FIELDS_FULLTEXT : DOCUMENT_SORT_FIELDS
}
onSort(event: SortEvent) {

View File

@@ -1,3 +1,5 @@
import { FILTER_FULLTEXT_MORELIKE, FILTER_FULLTEXT_QUERY } from "./filter-rule-type"
export function cloneFilterRules(filterRules: FilterRule[]): FilterRule[] {
if (filterRules) {
let newRules: FilterRule[] = []
@@ -10,6 +12,10 @@ export function cloneFilterRules(filterRules: FilterRule[]): FilterRule[] {
}
}
export function isFullTextFilterRule(filterRules: FilterRule[]): boolean {
return filterRules.find(r => r.rule_type == FILTER_FULLTEXT_QUERY || r.rule_type == FILTER_FULLTEXT_MORELIKE) != null
}
export interface FilterRule {
rule_type: number
value: string

View File

@@ -11,12 +11,11 @@ const FORMAT_TO_ISO_FORMAT = {
@Pipe({
name: 'customDate'
})
export class CustomDatePipe extends DatePipe implements PipeTransform {
export class CustomDatePipe implements PipeTransform {
private defaultLocale: string
constructor(@Inject(LOCALE_ID) locale: string, private settings: SettingsService) {
super(locale)
constructor(@Inject(LOCALE_ID) locale: string, private datePipe: DatePipe, private settings: SettingsService) {
this.defaultLocale = locale
}
@@ -24,9 +23,9 @@ export class CustomDatePipe extends DatePipe implements PipeTransform {
let l = locale || this.settings.get(SETTINGS_KEYS.DATE_LOCALE) || this.defaultLocale
let f = format || this.settings.get(SETTINGS_KEYS.DATE_FORMAT)
if (l == "iso-8601") {
return super.transform(value, FORMAT_TO_ISO_FORMAT[f], timezone)
return this.datePipe.transform(value, FORMAT_TO_ISO_FORMAT[f], timezone)
} else {
return super.transform(value, format || this.settings.get(SETTINGS_KEYS.DATE_FORMAT), timezone, l)
return this.datePipe.transform(value, format || this.settings.get(SETTINGS_KEYS.DATE_FORMAT), timezone, l)
}
}

View File

@@ -125,7 +125,7 @@ export class ConsumerStatusService {
connect() {
this.disconnect()
this.statusWebSocket = new WebSocket(`${environment.webSocketProtocol}//${environment.webSocketHost}/ws/status/`);
this.statusWebSocket = new WebSocket(`${environment.webSocketProtocol}//${environment.webSocketHost}${environment.webSocketBaseUrl}status/`);
this.statusWebSocket.onmessage = (ev) => {
let statusMessage: WebsocketConsumerStatusMessage = JSON.parse(ev['data'])

View File

@@ -1,28 +1,53 @@
import { Injectable } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { Observable } from 'rxjs';
import { cloneFilterRules, FilterRule } from '../data/filter-rule';
import { FILTER_FULLTEXT_MORELIKE, FILTER_FULLTEXT_QUERY } from '../data/filter-rule-type';
import { cloneFilterRules, FilterRule, isFullTextFilterRule } from '../data/filter-rule';
import { PaperlessDocument } from '../data/paperless-document';
import { PaperlessSavedView } from '../data/paperless-saved-view';
import { DOCUMENT_LIST_SERVICE } from '../data/storage-keys';
import { DocumentService } from './rest/document.service';
import { SettingsService, SETTINGS_KEYS } from './settings.service';
/**
* Captures the current state of the list view.
*/
interface ListViewState {
/**
* Title of the document list view. Either "Documents" (localized) or the name of a saved view.
*/
title?: string
/**
* Current paginated list of documents displayed.
*/
documents?: PaperlessDocument[]
currentPage: number
/**
* Total amount of documents with the current filter rules. Used to calculate the number of pages.
*/
collectionSize: number
/**
* Currently selected sort field.
*/
sortField: string
/**
* True if the list is sorted in reverse.
*/
sortReverse: boolean
/**
* Filter rules for the current list view.
*/
filterRules: FilterRule[]
/**
* Contains the IDs of all selected documents.
*/
selected?: Set<number>
}
@@ -134,10 +159,10 @@ export class DocumentListViewService {
}
set filterRules(filterRules: FilterRule[]) {
this.activeListViewState.filterRules = filterRules
if (filterRules.find(r => (r.rule_type == FILTER_FULLTEXT_QUERY || r.rule_type == FILTER_FULLTEXT_MORELIKE))) {
this.activeListViewState.currentPage = 1
if (!isFullTextFilterRule(filterRules) && this.activeListViewState.sortField == "score") {
this.activeListViewState.sortField = "created"
}
this.activeListViewState.filterRules = filterRules
this.reload()
this.reduceSelectionToFilter()
this.saveDocumentListView()
@@ -213,6 +238,10 @@ export class DocumentListViewService {
this._activeSavedViewId = null
this.activeListViewState.filterRules = filterRules
this.activeListViewState.currentPage = 1
if (isFullTextFilterRule(filterRules)) {
this.activeListViewState.sortField = "score"
this.activeListViewState.sortReverse = false
}
this.reduceSelectionToFilter()
this.saveDocumentListView()
if (this.router.url == "/documents") {

View File

@@ -23,6 +23,11 @@ export const DOCUMENT_SORT_FIELDS = [
{ field: 'modified', name: $localize`Modified` }
]
export const DOCUMENT_SORT_FIELDS_FULLTEXT = [
...DOCUMENT_SORT_FIELDS,
{ field: 'score', name: $localize`:Score is a value returned by the full text search engine and specifies how well a result matches the given query:Search score` }
]
export interface SelectionDataItem {
id: number
document_count: number

View File

@@ -98,7 +98,9 @@ export class SettingsService {
{code: "ro-ro", name: $localize`Romanian`, englishName: "Romanian", dateInputFormat: "dd.mm.yyyy"},
{code: "ru-ru", name: $localize`Russian`, englishName: "Russian", dateInputFormat: "dd.mm.yyyy"},
{code: "es-es", name: $localize`Spanish`, englishName: "Spanish", dateInputFormat: "dd/mm/yyyy"},
{code: "pl-pl", name: $localize`Polish`, englishName: "Polish", dateInputFormat: "dd.mm.yyyy"}
{code: "pl-pl", name: $localize`Polish`, englishName: "Polish", dateInputFormat: "dd.mm.yyyy"},
{code: "sv-se", name: $localize`Swedish`, englishName: "Swedish", dateInputFormat: "yyyy-mm-dd"},
{code: "lb-lu", name: $localize`Luxembourgish`, englishName: "Luxembourgish", dateInputFormat: "dd.mm.yyyy"}
]
}

View File

@@ -1,9 +1,12 @@
const base_url = new URL(document.baseURI)
export const environment = {
production: true,
apiBaseUrl: "/api/",
apiBaseUrl: document.baseURI + "api/",
apiVersion: "2",
appTitle: "Paperless-ng",
version: "1.4.1",
version: "1.5.0",
webSocketHost: window.location.host,
webSocketProtocol: (window.location.protocol == "https:" ? "wss:" : "ws:")
webSocketProtocol: (window.location.protocol == "https:" ? "wss:" : "ws:"),
webSocketBaseUrl: base_url.pathname + "ws/",
};

View File

@@ -9,7 +9,8 @@ export const environment = {
appTitle: "Paperless-ng",
version: "DEVELOPMENT",
webSocketHost: "localhost:8000",
webSocketProtocol: "ws:"
webSocketProtocol: "ws:",
webSocketBaseUrl: "/ws/",
};
/*

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target state="needs-translation">Download originals</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="needs-translation">Add item</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="needs-translation">Suggestions:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="needs-translation">Save current view</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="needs-translation">Add tag</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="needs-translation">Polish</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="needs-translation">Swedish</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="needs-translation">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="needs-translation">Modified</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="needs-translation">Search score</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Originale herunterladen</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="translated">Element hinzufügen</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Vorschläge:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Aktuelle Ansicht speichern</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="translated">Tag hinzufügen</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="translated">Polnisch</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="translated">Schwedisch</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Geändert am</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="translated">Relevanz</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1233,7 +1233,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">91</context>
</context-group>
<target state="needs-translation">Advanced search</target>
<target state="translated">Advanced search</target>
</trans-unit>
<trans-unit id="2649431021108393503" datatype="html">
<source>More like</source>
@@ -1241,7 +1241,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">More like</target>
<target state="translated">More like</target>
</trans-unit>
<trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">
<source>Filter tags</source>
@@ -1386,7 +1386,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="needs-translation">Created: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
<target state="translated">Created: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
</trans-unit>
<trans-unit id="0f5d856cb63c69fde44fbfc653ec0655f9040865" datatype="html">
<source>Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></source>
@@ -1394,7 +1394,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">44</context>
</context-group>
<target state="needs-translation">Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
<target state="translated">Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
</trans-unit>
<trans-unit id="a205126adef6251fc63305f1a6228d07bc2795a8" datatype="html">
<source>Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></source>
@@ -1402,7 +1402,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">45</context>
</context-group>
<target state="needs-translation">Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
<target state="translated">Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify(error.error)"/></source>
@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Download originals</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="translated">Add item</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Suggestions:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Save current view</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="translated">Add tag</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1855,7 +1872,7 @@
<context context-type="sourcefile">src/app/components/document-asn/document-asn.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target state="needs-translation">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
<target state="translated">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2807800733729323332" datatype="html">
<source>Yes</source>
@@ -1975,13 +1992,21 @@
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">101</context>
</context-group>
<target state="needs-translation">Polish</target>
<target state="translated">Polish</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="translated">Swedish</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Modified</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="translated">Search score</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -176,7 +176,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
<context context-type="linenumber">117</context>
</context-group>
<target state="translated">Tipo de documento</target>
<target state="translated">Correspondencia</target>
</trans-unit>
<trans-unit id="fdf7cbdc140d0aab0f0b6c06065a0fd448ed6a2e" datatype="html">
<source>Title</source>
@@ -208,7 +208,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-list.component.html</context>
<context context-type="linenumber">141</context>
</context-group>
<target state="translated">Aggregado</target>
<target state="translated">Añadido</target>
</trans-unit>
<trans-unit id="9021887951960049161" datatype="html">
<source>Confirm delete</source>
@@ -1201,7 +1201,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">61</context>
</context-group>
<target state="translated">ASN: <x id="PH" equiv-text="rule.value"/></target>
<target state="translated">NSA: <x id="PH" equiv-text="rule.value"/></target>
</trans-unit>
<trans-unit id="5701618810648052610" datatype="html">
<source>Title</source>
@@ -1233,7 +1233,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">91</context>
</context-group>
<target state="needs-translation">Advanced search</target>
<target state="translated">Búsqueda avanzada</target>
</trans-unit>
<trans-unit id="2649431021108393503" datatype="html">
<source>More like</source>
@@ -1241,7 +1241,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">More like</target>
<target state="translated">Más parecido</target>
</trans-unit>
<trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">
<source>Filter tags</source>
@@ -1386,7 +1386,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="needs-translation">Created: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
<target state="translated">Creado: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
</trans-unit>
<trans-unit id="0f5d856cb63c69fde44fbfc653ec0655f9040865" datatype="html">
<source>Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></source>
@@ -1394,7 +1394,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">44</context>
</context-group>
<target state="needs-translation">Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
<target state="translated">Añadido: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
</trans-unit>
<trans-unit id="a205126adef6251fc63305f1a6228d07bc2795a8" datatype="html">
<source>Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></source>
@@ -1402,7 +1402,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">45</context>
</context-group>
<target state="needs-translation">Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
<target state="translated">Modificado: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify(error.error)"/></source>
@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Descargar originales</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="translated">Añadir elemento</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Sugerencias:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Guardar la vista actual</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="translated">Añadir etiqueta</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1855,7 +1872,7 @@
<context context-type="sourcefile">src/app/components/document-asn/document-asn.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target state="needs-translation">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
<target state="translated">Buscando documento con NSA <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2807800733729323332" datatype="html">
<source>Yes</source>
@@ -1927,7 +1944,7 @@
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">95</context>
</context-group>
<target state="needs-translation">Portuguese</target>
<target state="translated">Portugués</target>
</trans-unit>
<trans-unit id="9184513005098760425" datatype="html">
<source>Portuguese (Brazil)</source>
@@ -1975,13 +1992,21 @@
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">101</context>
</context-group>
<target state="needs-translation">Polish</target>
<target state="translated">Polaco</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="translated">Sueco</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Modificado</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="translated">Puntuación de búsqueda</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Télécharger les originaux</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="translated">Ajouter un élément</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Suggestions : </target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Enregistrer la vue actuelle</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="translated">Ajouter une étiquette</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="translated">Polonais</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="translated">Suédois</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Date de modification</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="translated">Pertinence</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target state="needs-translation">Download originals</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="needs-translation">Add item</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="needs-translation">Suggestions:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Jelenlegi nézet mentése</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="needs-translation">Add tag</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="needs-translation">Polish</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="needs-translation">Swedish</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="needs-translation">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Módosítva</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="needs-translation">Search score</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1378,7 +1378,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
<context context-type="linenumber">87</context>
</context-group>
<target state="translated">Punteggio:</target>
<target state="translated">Rilevanza:</target>
</trans-unit>
<trans-unit id="727d980bba2b3e0b3d8705607f1208eef046479b" datatype="html">
<source>Created: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></source>
@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Scarica originali</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="translated">Aggiungi elemento</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Suggerimenti:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Salva vista corrente</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="translated">Aggiungi tag</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="translated">Polacco</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="translated">Svedese</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Modificato</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="translated">Rilevanza ricerca</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

File diff suppressed because it is too large Load Diff

View File

@@ -480,7 +480,7 @@
<context context-type="sourcefile">src/app/components/manage/tag-list/tag-list.component.ts</context>
<context context-type="linenumber">26</context>
</context-group>
<target state="translated">Wil je het etiket echt verwijderen "<x id="PH" equiv-text="object.name"/>"?</target>
<target state="translated">Wil je dit label echt verwijderen "<x id="PH" equiv-text="object.name"/>"?</target>
</trans-unit>
<trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
<source>Tags</source>
@@ -488,7 +488,7 @@
<context context-type="sourcefile">src/app/components/manage/tag-list/tag-list.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target state="translated">Etiketten</target>
<target state="translated">Labels</target>
</trans-unit>
<trans-unit id="70a67e04629f6d412db0a12d51820b480788d795" datatype="html">
<source>Create</source>
@@ -1000,7 +1000,7 @@
<context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts</context>
<context context-type="linenumber">22</context>
</context-group>
<target state="translated">Nieuw etiket maken</target>
<target state="translated">Nieuw label aanmaken</target>
</trans-unit>
<trans-unit id="5872175735754226507" datatype="html">
<source>Edit tag</source>
@@ -1016,7 +1016,7 @@
<context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
<context context-type="linenumber">13</context>
</context-group>
<target state="translated">"Postvak in"-etiket</target>
<target state="translated">"Postvak in"-label</target>
</trans-unit>
<trans-unit id="5e2f1a4ea12a1b8606ee3f0548d0ba64bf266077" datatype="html">
<source>Inbox tags are automatically assigned to all consumed documents.</source>
@@ -1024,7 +1024,7 @@
<context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
<context context-type="linenumber">13</context>
</context-group>
<target state="translated">"Postvak in"-etiketten worden automatisch toegewezen aan alle verwerkte documenten.</target>
<target state="translated">"Postvak in"-labels worden automatisch toegewezen aan alle verwerkte documenten.</target>
</trans-unit>
<trans-unit id="6672809941092516947" datatype="html">
<source>Create new document type</source>
@@ -1177,7 +1177,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">50</context>
</context-group>
<target state="translated">Etiket: <x id="PH" equiv-text="this.tags.find(t =&gt; t.id == +rule.value)?.name"/></target>
<target state="translated">Label: <x id="PH" equiv-text="this.tags.find(t =&gt; t.id == +rule.value)?.name"/></target>
</trans-unit>
<trans-unit id="6494566478302448576" datatype="html">
<source>Without any tag</source>
@@ -1185,7 +1185,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">54</context>
</context-group>
<target state="translated">Zonder enig etiket</target>
<target state="translated">Zonder label</target>
</trans-unit>
<trans-unit id="6523384805359286307" datatype="html">
<source>Title: <x id="PH" equiv-text="rule.value"/></source>
@@ -1249,7 +1249,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.html</context>
<context context-type="linenumber">19</context>
</context-group>
<target state="translated">Etiketten filteren</target>
<target state="translated">Labels filteren</target>
</trans-unit>
<trans-unit id="4b089ca12c472cf0b46167bb5afe4b527b301bbc" datatype="html">
<source>Filter correspondents</source>
@@ -1282,7 +1282,7 @@
<context context-type="linenumber">166</context>
</context-group>
<note priority="1" from="description">Filter drop down element to filter for documents with no correspondent/type/tag assigned</note>
<target state="translated">Niet toegekend</target>
<target state="translated">Zonder toewijzing</target>
</trans-unit>
<trans-unit id="c2d0ac9f528bbd5f53fd34269fde8b59e029621b" datatype="html">
<source>Apply</source>
@@ -1370,7 +1370,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-large/document-card-large.component.html</context>
<context context-type="linenumber">24</context>
</context-group>
<target state="translated">Op etiket filteren</target>
<target state="translated">Op label filteren</target>
</trans-unit>
<trans-unit id="9c5fdf21ec2cc7baa6f062f2dc417af45c8dbe60" datatype="html">
<source>Score:</source>
@@ -1453,7 +1453,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">127</context>
</context-group>
<target state="translated">Bevestig toewijzen van etiketten</target>
<target state="translated">Bevestig toewijzen van labels</target>
</trans-unit>
<trans-unit id="6619516195038467207" datatype="html">
<source>This operation will add the tag &quot;<x id="PH" equiv-text="tag.name"/>&quot; to <x id="PH_1" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -1461,7 +1461,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">130</context>
</context-group>
<target state="translated">Het etiket "<x id="PH" equiv-text="tag.name"/>" zal aan <x id="PH_1" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en) worden toegewezen.</target>
<target state="translated">Het label "<x id="PH" equiv-text="tag.name"/>" zal aan <x id="PH_1" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en) worden toegewezen.</target>
</trans-unit>
<trans-unit id="1894412783609570695" datatype="html">
<source>This operation will add the tags <x id="PH" equiv-text="this._localizeList(changedTags.itemsToAdd)"/> to <x id="PH_1" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -1469,7 +1469,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">132</context>
</context-group>
<target state="translated">De etiketten <x id="PH" equiv-text="this._localizeList(changedTags.itemsToAdd)"/> zullen aan <x id="PH_1" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en) worden toegewezen.</target>
<target state="translated">De labels <x id="PH" equiv-text="this._localizeList(changedTags.itemsToAdd)"/> zullen aan <x id="PH_1" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en) worden toegewezen.</target>
</trans-unit>
<trans-unit id="7181166515756808573" datatype="html">
<source>This operation will remove the tag &quot;<x id="PH" equiv-text="tag.name"/>&quot; from <x id="PH_1" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -1477,7 +1477,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">135</context>
</context-group>
<target state="translated">Het etiket "<x id="PH" equiv-text="tag.name"/>" zal verwijderd worden van <x id="PH_1" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en).</target>
<target state="translated">Het label "<x id="PH" equiv-text="tag.name"/>" zal verwijderd worden van <x id="PH_1" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en).</target>
</trans-unit>
<trans-unit id="3819792277998068944" datatype="html">
<source>This operation will remove the tags <x id="PH" equiv-text="this._localizeList(changedTags.itemsToRemove)"/> from <x id="PH_1" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -1485,7 +1485,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">137</context>
</context-group>
<target state="translated">De etiketten <x id="PH" equiv-text="this._localizeList(changedTags.itemsToRemove)"/> zullen verwijderd worden van <x id="PH_1" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en).</target>
<target state="translated">De labels <x id="PH" equiv-text="this._localizeList(changedTags.itemsToRemove)"/> zullen verwijderd worden van <x id="PH_1" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en).</target>
</trans-unit>
<trans-unit id="2739066218579571288" datatype="html">
<source>This operation will add the tags <x id="PH" equiv-text="this._localizeList(changedTags.itemsToAdd)"/> and remove the tags <x id="PH_1" equiv-text="this._localizeList(changedTags.itemsToRemove)"/> on <x id="PH_2" equiv-text="this.list.selected.size"/> selected document(s).</source>
@@ -1493,7 +1493,7 @@
<context context-type="sourcefile">src/app/components/document-list/bulk-editor/bulk-editor.component.ts</context>
<context context-type="linenumber">139</context>
</context-group>
<target state="translated">De etiketten <x id="PH" equiv-text="this._localizeList(changedTags.itemsToAdd)"/> zullen toegevoegd worden aan, en de etiketten <x id="PH_1" equiv-text="this._localizeList(changedTags.itemsToRemove)"/> zullen verwijderd worden van <x id="PH_2" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en).</target>
<target state="translated">De labels <x id="PH" equiv-text="this._localizeList(changedTags.itemsToAdd)"/> zullen toegevoegd worden aan, en de labels <x id="PH_1" equiv-text="this._localizeList(changedTags.itemsToRemove)"/> zullen verwijderd worden van <x id="PH_2" equiv-text="this.list.selected.size"/> geselecteerd(e) document(en).</target>
</trans-unit>
<trans-unit id="2996713129519325161" datatype="html">
<source>Confirm correspondent assignment</source>
@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Originelen downloaden</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="translated">Item toevoegen</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Suggesties:</target>
</trans-unit>
@@ -1623,13 +1632,21 @@
</context-group>
<target state="translated">Huidige view opslaan</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="translated">Label toevoegen</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/dashboard/widgets/saved-view-widget/saved-view-widget.component.html</context>
<context context-type="linenumber">3</context>
</context-group>
<target state="translated">Toon alles</target>
<target state="translated">Alles weergeven</target>
</trans-unit>
<trans-unit id="61e0f26d843eec0b33ff475e111b0c2f7a80b835" datatype="html">
<source>Statistics</source>
@@ -1669,7 +1686,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts</context>
<context context-type="linenumber">35</context>
</context-group>
<target state="translated">Gefaald: <x id="PH" equiv-text="countFailed"/></target>
<target state="translated">Mislukt: <x id="PH" equiv-text="countFailed"/></target>
</trans-unit>
<trans-unit id="534116346205124059" datatype="html">
<source>Added: <x id="PH" equiv-text="countSuccess"/></source>
@@ -1693,7 +1710,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts</context>
<context context-type="linenumber">123</context>
</context-group>
<target state="translated">Bezig met opladen...</target>
<target state="translated">Bezig met uploaden...</target>
</trans-unit>
<trans-unit id="7446520539098045935" datatype="html">
<source>Upload complete, waiting...</source>
@@ -1701,7 +1718,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.ts</context>
<context context-type="linenumber">126</context>
</context-group>
<target state="translated">Upload voltooid, wachten om te verwerken...</target>
<target state="translated">Upload voltooid, wachten op verwerking...</target>
</trans-unit>
<trans-unit id="1405142710727603568" datatype="html">
<source>HTTP error: <x id="PH" equiv-text="error.status"/> <x id="PH_1" equiv-text="error.statusText"/></source>
@@ -1717,7 +1734,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/upload-file-widget/upload-file-widget.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target state="translated">Nieuwe documenten opladen</target>
<target state="translated">Nieuwe documenten uploaden</target>
</trans-unit>
<trans-unit id="52d5d56b6667ba3f7c759cbc0d4c39d34a99701e" datatype="html">
<source>Drop documents here or</source>
@@ -1783,7 +1800,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html</context>
<context context-type="linenumber">6,7</context>
</context-group>
<target state="translated">Je kunt documenten uploaden door bestanden in het oplaadvak rechts te slepen of door ze in de map te kopiëren die geconfigureerd werd als consumptiemap. Ze zullen vervolgens beginnen verschijnen in de lijst met documenten. Nadat je metadata hebt toegevoegd aan je documenten, kun je de filters in Paperless gebruiken om eigen views te maken (zoals 'Recent toegevoegd', 'Te bekijken'). Deze views zullen hier verschijnen in plaats van dit bericht.</target>
<target state="translated">Je kunt documenten uploaden door bestanden in het upload vak rechts te slepen of door ze in de map te kopiëren die geconfigureerd werd als consumptiemap. Ze zullen vervolgens verschijnen in de lijst met documenten. Nadat je metadata hebt toegevoegd aan je documenten, kun je de filters in Paperless gebruiken om eigen views te maken (zoals 'Recent toegevoegd', 'Te bekijken'). Deze views zullen hier verschijnen in plaats van dit bericht.</target>
</trans-unit>
<trans-unit id="cf5f85690feaba6e29343f9881e57a6c0ea6e82b" datatype="html">
<source>Paperless offers some more features that try to make your life easier:</source>
@@ -1799,7 +1816,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html</context>
<context context-type="linenumber">10</context>
</context-group>
<target state="translated">Eenmaal je documenten hebt toegevoegd en metadata hebt toegewezen, kan Paperless automatisch die metadata aan nieuwe documenten toewijzen.</target>
<target state="translated">Zodra je documenten hebt toegevoegd en metadata hebt toegewezen, kan Paperless die metadata automatisch aan nieuwe documenten toewijzen.</target>
</trans-unit>
<trans-unit id="9dca488928c0b7af46c3866f86a6c2c8548399aa" datatype="html">
<source>You can configure paperless to read your mails and add documents from attached files.</source>
@@ -1815,7 +1832,7 @@
<context context-type="sourcefile">src/app/components/dashboard/widgets/welcome-widget/welcome-widget.component.html</context>
<context context-type="linenumber">13</context>
</context-group>
<target state="translated">Lees de documentatie na om deze functies te ontdekken. Het hoofdstuk over basisgebruik biedt ook inzichten over het gebruik van Paperless in het algemeen.</target>
<target state="translated">Raadpleeg de documentatie over het gebruik van deze functies. De sectie over basisgebruik bevat ook enige informatie over het gebruik van Paperless in het algemeen.</target>
</trans-unit>
<trans-unit id="218403386307979629" datatype="html">
<source>Metadata</source>
@@ -1975,13 +1992,21 @@
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">101</context>
</context-group>
<target state="needs-translation">Polish</target>
<target state="translated">Pools</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="translated">Zweeds</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Gewijzigd</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="translated">Zoekscore</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">
@@ -2195,7 +2229,7 @@
<context context-type="sourcefile">src/app/components/manage/generic-list/generic-list.component.ts</context>
<context context-type="linenumber">104</context>
</context-group>
<target state="translated">Geassocieerde documenten zullen niet verwijderd worden.</target>
<target state="translated">Gekoppelde documenten zullen niet worden verwijderd.</target>
</trans-unit>
<trans-unit id="7022070615528435141" datatype="html">
<source>Delete</source>
@@ -2227,7 +2261,7 @@
<context context-type="sourcefile">src/app/data/matching-model.ts</context>
<context context-type="linenumber">12</context>
</context-group>
<target state="translated">Eender welk: Documenten die eender welk van deze woorden bevatten (gescheiden door spaties)</target>
<target state="translated">Een of meer: Documenten die een of meer van deze woorden bevatten (gescheiden door spaties)</target>
</trans-unit>
<trans-unit id="700315718208181326" datatype="html">
<source>All words</source>

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Pobierz oryginały</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="translated">Dodaj element</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Sugestie:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Zapisz bieżący widok</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="translated">Dodaj tag</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="translated">Polski</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="translated">Szwedzki</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Zmodyfikowano</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="translated">Dopasowanie</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Descarregar originais</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="needs-translation">Add item</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Sugestões:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Salvar visualização atual</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="needs-translation">Add tag</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="needs-translation">Polish</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="needs-translation">Swedish</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Modificado</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="needs-translation">Search score</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Descarregar originais</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="translated">Adicionar item</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Sugestões:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Guardar a vista atual</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="translated">Adicionar etiqueta</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="translated">Polaco</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="translated">Sueco</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Modificado</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="translated">Pesquisar pontuação</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1233,7 +1233,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">91</context>
</context-group>
<target state="needs-translation">Advanced search</target>
<target state="translated">Căutare avansată</target>
</trans-unit>
<trans-unit id="2649431021108393503" datatype="html">
<source>More like</source>
@@ -1241,7 +1241,7 @@
<context context-type="sourcefile">src/app/components/document-list/filter-editor/filter-editor.component.ts</context>
<context context-type="linenumber">94</context>
</context-group>
<target state="needs-translation">More like</target>
<target state="translated">Asemănătoare</target>
</trans-unit>
<trans-unit id="02d184c288f567825a1fcbf83bcd3099a10853d5" datatype="html">
<source>Filter tags</source>
@@ -1386,7 +1386,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">43</context>
</context-group>
<target state="needs-translation">Created: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
<target state="translated">S-a creat: <x id="INTERPOLATION" equiv-text="{{ document.created | customDate}}"/></target>
</trans-unit>
<trans-unit id="0f5d856cb63c69fde44fbfc653ec0655f9040865" datatype="html">
<source>Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></source>
@@ -1394,7 +1394,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">44</context>
</context-group>
<target state="needs-translation">Added: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
<target state="translated">S-a adăugat: <x id="INTERPOLATION" equiv-text="{{ document.added | customDate}}"/></target>
</trans-unit>
<trans-unit id="a205126adef6251fc63305f1a6228d07bc2795a8" datatype="html">
<source>Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></source>
@@ -1402,7 +1402,7 @@
<context context-type="sourcefile">src/app/components/document-list/document-card-small/document-card-small.component.html</context>
<context context-type="linenumber">45</context>
</context-group>
<target state="needs-translation">Modified: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
<target state="translated">S-a modificat: <x id="INTERPOLATION" equiv-text="{{ document.modified | customDate}}"/></target>
</trans-unit>
<trans-unit id="7985804062689412812" datatype="html">
<source>Error executing bulk operation: <x id="PH" equiv-text="JSON.stringify(error.error)"/></source>
@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Descarcă originalele</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="translated">Adaugă element</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Sugestii:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Salvează vizualizarea curenta</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="translated">Adaugă etichetă</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1855,7 +1872,7 @@
<context context-type="sourcefile">src/app/components/document-asn/document-asn.component.html</context>
<context context-type="linenumber">1</context>
</context-group>
<target state="needs-translation">Searching document with asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
<target state="translated">Se caută documentul cu asn <x id="INTERPOLATION" equiv-text="{{asn}}"/></target>
</trans-unit>
<trans-unit id="2807800733729323332" datatype="html">
<source>Yes</source>
@@ -1975,13 +1992,21 @@
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">101</context>
</context-group>
<target state="needs-translation">Polish</target>
<target state="translated">Poloneză</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="translated">Suedeză</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Modificat</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="translated">Scor de căutare</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target state="translated">Скачать оригиналы</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="needs-translation">Add item</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="translated">Рекомендации:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="translated">Сохранить текущее представление</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="needs-translation">Add tag</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="needs-translation">Polish</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="needs-translation">Swedish</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="translated">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="translated">Изменено</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="needs-translation">Search score</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

File diff suppressed because it is too large Load Diff

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target>crwdns3238:0crwdne3238:0</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target>crwdns3450:0crwdne3450:0</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target>crwdns3240:0crwdne3240:0</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target>crwdns3242:0crwdne3242:0</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target>crwdns3452:0crwdne3452:0</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target>crwdns3442:0crwdne3442:0</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target>crwdns3446:0crwdne3446:0</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target>crwdns3322:0crwdne3322:0</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target>crwdns3364:0crwdne3364:0</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target>crwdns3454:0crwdne3454:0</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

View File

@@ -1607,11 +1607,20 @@
</context-group>
<target state="needs-translation">Download originals</target>
</trans-unit>
<trans-unit id="0f72a164f5a5d10d1fbdeeb84ac80a63c04b7e1b" datatype="html">
<source>Add item</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<note priority="1" from="description">Used for both types and correspondents</note>
<target state="needs-translation">Add item</target>
</trans-unit>
<trans-unit id="a1e6c11f20d4bf6e8e6b43e3c6d2561b2080645e" datatype="html">
<source>Suggestions:</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/select/select.component.html</context>
<context context-type="linenumber">29</context>
<context context-type="linenumber">31</context>
</context-group>
<target state="needs-translation">Suggestions:</target>
</trans-unit>
@@ -1623,6 +1632,14 @@
</context-group>
<target state="needs-translation">Save current view</target>
</trans-unit>
<trans-unit id="21fd41eb147f55ca26362f9c398e47733639837a" datatype="html">
<source>Add tag</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/components/common/input/tags/tags.component.html</context>
<context context-type="linenumber">11</context>
</context-group>
<target state="needs-translation">Add tag</target>
</trans-unit>
<trans-unit id="4eb84de23219c85432e38fb4fbdeb6c0f103ff8b" datatype="html">
<source>Show all</source>
<context-group purpose="location">
@@ -1977,11 +1994,19 @@
</context-group>
<target state="needs-translation">Polish</target>
</trans-unit>
<trans-unit id="499386805970351976" datatype="html">
<source>Swedish</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">102</context>
</context-group>
<target state="needs-translation">Swedish</target>
</trans-unit>
<trans-unit id="4912706592792948707" datatype="html">
<source>ISO 8601</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/settings.service.ts</context>
<context context-type="linenumber">106</context>
<context context-type="linenumber">107</context>
</context-group>
<target state="needs-translation">ISO 8601</target>
</trans-unit>
@@ -2149,6 +2174,15 @@
</context-group>
<target state="needs-translation">Modified</target>
</trans-unit>
<trans-unit id="4460262093225954455" datatype="html">
<source>Search score</source>
<context-group purpose="location">
<context context-type="sourcefile">src/app/services/rest/document.service.ts</context>
<context context-type="linenumber">28</context>
</context-group>
<note priority="1" from="description">Score is a value returned by the full text search engine and specifies how well a result matches the given query</note>
<target state="needs-translation">Search score</target>
</trans-unit>
<trans-unit id="4561076822163447092" datatype="html">
<source>Create new item</source>
<context-group purpose="location">

30
src-ui/src/print.scss Normal file
View File

@@ -0,0 +1,30 @@
@media print {
#sidebarMenu, .btn-toolbar {
display: none !important
}
.sticky-top {
display: none;
}
main, main.ml-sm-auto, main.mx-sm-auto {
margin-left: 0 !important;
margin-right: 0 !important;
}
main.col-lg-10 {
max-width: 100%;
flex-basis: 100%;
display: block;
}
.d-none.d-lg-table-cell { // always display ASN on print
display: table-cell !important;
}
app-document-list table {
thead th:first-child, tbody td:first-child { // hide checkboxes
display: none;
}
}
}

View File

@@ -1,5 +1,6 @@
@import "theme";
@import "theme_dark";
@import "print";
@import "node_modules/bootstrap/scss/bootstrap";
@import "~@ng-select/ng-select/themes/default.theme.css";

0
src/documents/admin.py Executable file → Normal file
View File

43
src/documents/classifier.py Executable file → Normal file
View File

@@ -3,6 +3,7 @@ import logging
import os
import pickle
import re
import shutil
from django.conf import settings
@@ -13,6 +14,10 @@ class IncompatibleClassifierVersionError(Exception):
pass
class ClassifierModelCorruptError(Exception):
pass
logger = logging.getLogger("paperless.classifier")
@@ -34,7 +39,8 @@ def load_classifier():
try:
classifier.load()
except (EOFError, IncompatibleClassifierVersionError) as e:
except (ClassifierModelCorruptError,
IncompatibleClassifierVersionError):
# there's something wrong with the model file.
logger.exception(
f"Unrecoverable error while loading document "
@@ -42,9 +48,14 @@ def load_classifier():
)
os.unlink(settings.MODEL_FILE)
classifier = None
except OSError as e:
logger.error(
f"Error while loading document classification model: {str(e)}"
except OSError:
logger.exception(
f"IO error while loading document classification model"
)
classifier = None
except Exception:
logger.exception(
f"Unknown error while loading document classification model"
)
classifier = None
@@ -74,16 +85,22 @@ class DocumentClassifier(object):
raise IncompatibleClassifierVersionError(
"Cannor load classifier, incompatible versions.")
else:
self.data_hash = pickle.load(f)
self.data_vectorizer = pickle.load(f)
self.tags_binarizer = pickle.load(f)
try:
self.data_hash = pickle.load(f)
self.data_vectorizer = pickle.load(f)
self.tags_binarizer = pickle.load(f)
self.tags_classifier = pickle.load(f)
self.correspondent_classifier = pickle.load(f)
self.document_type_classifier = pickle.load(f)
self.tags_classifier = pickle.load(f)
self.correspondent_classifier = pickle.load(f)
self.document_type_classifier = pickle.load(f)
except Exception:
raise ClassifierModelCorruptError()
def save(self):
with open(settings.MODEL_FILE, "wb") as f:
target_file = settings.MODEL_FILE
target_file_temp = settings.MODEL_FILE + ".part"
with open(target_file_temp, "wb") as f:
pickle.dump(self.FORMAT_VERSION, f)
pickle.dump(self.data_hash, f)
pickle.dump(self.data_vectorizer, f)
@@ -94,6 +111,10 @@ class DocumentClassifier(object):
pickle.dump(self.correspondent_classifier, f)
pickle.dump(self.document_type_classifier, f)
if os.path.isfile(target_file):
os.unlink(target_file)
shutil.move(target_file_temp, target_file)
def train(self):
data = list()

9
src/documents/consumer.py Executable file → Normal file
View File

@@ -333,6 +333,15 @@ class Consumer(LoggingMixin):
self.log("debug", "Deleting file {}".format(self.path))
os.unlink(self.path)
# https://github.com/jonaswinkler/paperless-ng/discussions/1037
shadow_file = os.path.join(
os.path.dirname(self.path),
"._" + os.path.basename(self.path))
if os.path.isfile(shadow_file):
self.log("debug", "Deleting file {}".format(shadow_file))
os.unlink(shadow_file)
except Exception as e:
self._fail(
str(e),

0
src/documents/filters.py Executable file → Normal file
View File

View File

@@ -7,7 +7,7 @@ from dateutil.parser import isoparse
from django.conf import settings
from whoosh import highlight, classify, query
from whoosh.fields import Schema, TEXT, NUMERIC, KEYWORD, DATETIME, BOOLEAN
from whoosh.highlight import Formatter, get_text, HtmlFormatter
from whoosh.highlight import HtmlFormatter
from whoosh.index import create_in, exists_in, open_dir
from whoosh.qparser import MultifieldParser
from whoosh.qparser.dateparse import DateParserPlugin
@@ -147,12 +147,10 @@ def remove_document_from_index(document):
class DelayedQuery:
@property
def _query(self):
def _get_query(self):
raise NotImplementedError()
@property
def _query_filter(self):
def _get_query_filter(self):
criterias = []
for k, v in self.query_params.items():
if k == 'correspondent__id':
@@ -185,16 +183,32 @@ class DelayedQuery:
else:
return None
@property
def _query_sortedby(self):
# if not 'ordering' in self.query_params:
return None, False
def _get_query_sortedby(self):
if 'ordering' not in self.query_params:
return None, False
# o: str = self.query_params['ordering']
# if o.startswith('-'):
# return o[1:], True
# else:
# return o, False
field: str = self.query_params['ordering']
sort_fields_map = {
"created": "created",
"modified": "modified",
"added": "added",
"title": "title",
"correspondent__name": "correspondent",
"document_type__name": "type",
"archive_serial_number": "asn"
}
if field.startswith('-'):
field = field[1:]
reverse = True
else:
reverse = False
if field not in sort_fields_map:
return None, False
else:
return sort_fields_map[field], reverse
def __init__(self, searcher: Searcher, query_params, page_size):
self.searcher = searcher
@@ -211,13 +225,13 @@ class DelayedQuery:
if item.start in self.saved_results:
return self.saved_results[item.start]
q, mask = self._query
sortedby, reverse = self._query_sortedby
q, mask = self._get_query()
sortedby, reverse = self._get_query_sortedby()
page: ResultsPage = self.searcher.search_page(
q,
mask=mask,
filter=self._query_filter,
filter=self._get_query_filter(),
pagenum=math.floor(item.start / self.page_size) + 1,
pagelen=self.page_size,
sortedby=sortedby,
@@ -227,14 +241,18 @@ class DelayedQuery:
surround=50)
page.results.formatter = HtmlFormatter(tagname="span", between=" ... ")
if not self.first_score and len(page.results) > 0:
if (not self.first_score and
len(page.results) > 0 and
sortedby is None):
self.first_score = page.results[0].score
if self.first_score:
page.results.top_n = list(map(
lambda hit: (hit[0] / self.first_score, hit[1]),
page.results.top_n
))
page.results.top_n = list(map(
lambda hit: (
(hit[0] / self.first_score) if self.first_score else None,
hit[1]
),
page.results.top_n
))
self.saved_results[item.start] = page
@@ -243,8 +261,7 @@ class DelayedQuery:
class DelayedFullTextQuery(DelayedQuery):
@property
def _query(self):
def _get_query(self):
q_str = self.query_params['query']
qp = MultifieldParser(
["content", "title", "correspondent", "tag", "type"],
@@ -261,8 +278,7 @@ class DelayedFullTextQuery(DelayedQuery):
class DelayedMoreLikeThisQuery(DelayedQuery):
@property
def _query(self):
def _get_query(self):
more_like_doc_id = int(self.query_params['more_like_id'])
content = Document.objects.get(id=more_like_doc_id).content

View File

@@ -106,6 +106,12 @@ class Command(BaseCommand):
help="Specify the ID of a document, and this command will only "
"run on this specific document."
)
parser.add_argument(
"--no-progress-bar",
default=False,
action="store_true",
help="If set, the progress bar will not be shown"
)
def handle(self, *args, **options):
@@ -140,7 +146,8 @@ class Command(BaseCommand):
handle_document,
document_ids
),
total=len(document_ids)
total=len(document_ids),
disable=options['no_progress_bar']
))
except KeyboardInterrupt:
print("Aborting...")

View File

@@ -1,6 +1,6 @@
import logging
import os
from pathlib import Path
from pathlib import Path, PurePath
from threading import Thread
from time import sleep
@@ -36,8 +36,15 @@ def _tags_from_path(filepath):
return tag_ids
def _is_ignored(filepath: str) -> bool:
filepath_relative = PurePath(filepath).relative_to(
settings.CONSUMPTION_DIR)
return any(
filepath_relative.match(p) for p in settings.CONSUMER_IGNORE_PATTERNS)
def _consume(filepath):
if os.path.isdir(filepath):
if os.path.isdir(filepath) or _is_ignored(filepath):
return
if not os.path.isfile(filepath):
@@ -71,6 +78,9 @@ def _consume(filepath):
def _consume_wait_unmodified(file):
if _is_ignored(file):
return
logger.debug(f"Waiting for file {file} to remain unmodified")
mtime = -1
current_try = 0

View File

View File

@@ -57,6 +57,12 @@ class Command(BaseCommand):
"do not belong to the current export, such as files from "
"deleted documents."
)
parser.add_argument(
"--no-progress-bar",
default=False,
action="store_true",
help="If set, the progress bar will not be shown"
)
def __init__(self, *args, **kwargs):
BaseCommand.__init__(self, *args, **kwargs)
@@ -81,9 +87,9 @@ class Command(BaseCommand):
raise CommandError("That path doesn't appear to be writable")
with FileLock(settings.MEDIA_LOCK):
self.dump()
self.dump(options['no_progress_bar'])
def dump(self):
def dump(self, progress_bar_disable=False):
# 1. Take a snapshot of what files exist in the current export folder
for root, dirs, files in os.walk(self.target):
self.files_in_export_dir.extend(
@@ -124,8 +130,11 @@ class Command(BaseCommand):
"json", User.objects.all()))
# 3. Export files from each document
for index, document_dict in tqdm.tqdm(enumerate(document_manifest),
total=len(document_manifest)):
for index, document_dict in tqdm.tqdm(
enumerate(document_manifest),
total=len(document_manifest),
disable=progress_bar_disable
):
# 3.1. store files unencrypted
document_dict["fields"]["storage_type"] = Document.STORAGE_TYPE_UNENCRYPTED # NOQA: E501

View File

@@ -36,6 +36,12 @@ class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument("source")
parser.add_argument(
"--no-progress-bar",
default=False,
action="store_true",
help="If set, the progress bar will not be shown"
)
def __init__(self, *args, **kwargs):
BaseCommand.__init__(self, *args, **kwargs)
@@ -70,7 +76,7 @@ class Command(BaseCommand):
# Fill up the database with whatever is in the manifest
call_command("loaddata", manifest_path)
self._import_files_from_manifest()
self._import_files_from_manifest(options['no_progress_bar'])
print("Updating search index...")
call_command('document_index', 'reindex')
@@ -111,7 +117,7 @@ class Command(BaseCommand):
f"does not appear to be in the source directory."
)
def _import_files_from_manifest(self):
def _import_files_from_manifest(self, progress_bar_disable):
os.makedirs(settings.ORIGINALS_DIR, exist_ok=True)
os.makedirs(settings.THUMBNAIL_DIR, exist_ok=True)
@@ -123,7 +129,10 @@ class Command(BaseCommand):
lambda r: r["model"] == "documents.document",
self.manifest))
for record in tqdm.tqdm(manifest_documents):
for record in tqdm.tqdm(
manifest_documents,
disable=progress_bar_disable
):
document = Document.objects.get(pk=record["pk"])

View File

@@ -10,10 +10,16 @@ class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument("command", choices=['reindex', 'optimize'])
parser.add_argument(
"--no-progress-bar",
default=False,
action="store_true",
help="If set, the progress bar will not be shown"
)
def handle(self, *args, **options):
with transaction.atomic():
if options['command'] == 'reindex':
index_reindex()
index_reindex(progress_bar_disable=options['no_progress_bar'])
elif options['command'] == 'optimize':
index_optimize()

View File

@@ -13,9 +13,20 @@ class Command(BaseCommand):
This will rename all documents to match the latest filename format.
""".replace(" ", "")
def add_arguments(self, parser):
parser.add_argument(
"--no-progress-bar",
default=False,
action="store_true",
help="If set, the progress bar will not be shown"
)
def handle(self, *args, **options):
logging.getLogger().handlers[0].level = logging.ERROR
for document in tqdm.tqdm(Document.objects.all()):
for document in tqdm.tqdm(
Document.objects.all(),
disable=options['no_progress_bar']
):
post_save.send(Document, instance=document)

38
src/documents/management/commands/document_retagger.py Executable file → Normal file
View File

@@ -57,8 +57,26 @@ class Command(BaseCommand):
"set correspondent, document and remove correspondents, types"
"and tags that do not match anymore due to changed rules."
)
parser.add_argument(
"--no-progress-bar",
default=False,
action="store_true",
help="If set, the progress bar will not be shown"
)
parser.add_argument(
"--suggest",
default=False,
action="store_true",
help="Return the suggestion, don't change anything."
)
parser.add_argument(
"--base-url",
help="The base URL to use to build the link to the documents."
)
def handle(self, *args, **options):
# Detect if we support color
color = self.style.ERROR("test") != "test"
if options["inbox_only"]:
queryset = Document.objects.filter(tags__is_inbox_tag=True)
@@ -68,7 +86,10 @@ class Command(BaseCommand):
classifier = load_classifier()
for document in tqdm.tqdm(documents):
for document in tqdm.tqdm(
documents,
disable=options['no_progress_bar']
):
if options['correspondent']:
set_correspondent(
@@ -76,18 +97,27 @@ class Command(BaseCommand):
document=document,
classifier=classifier,
replace=options['overwrite'],
use_first=options['use_first'])
use_first=options['use_first'],
suggest=options['suggest'],
base_url=options['base_url'],
color=color)
if options['document_type']:
set_document_type(sender=None,
document=document,
classifier=classifier,
replace=options['overwrite'],
use_first=options['use_first'])
use_first=options['use_first'],
suggest=options['suggest'],
base_url=options['base_url'],
color=color)
if options['tags']:
set_tags(
sender=None,
document=document,
classifier=classifier,
replace=options['overwrite'])
replace=options['overwrite'],
suggest=options['suggest'],
base_url=options['base_url'],
color=color)

View File

@@ -8,8 +8,16 @@ class Command(BaseCommand):
This command checks your document archive for issues.
""".replace(" ", "")
def add_arguments(self, parser):
parser.add_argument(
"--no-progress-bar",
default=False,
action="store_true",
help="If set, the progress bar will not be shown"
)
def handle(self, *args, **options):
messages = check_sanity(progress=True)
messages = check_sanity(progress=not options['no_progress_bar'])
messages.log_messages()

View File

@@ -47,6 +47,12 @@ class Command(BaseCommand):
help="Specify the ID of a document, and this command will only "
"run on this specific document."
)
parser.add_argument(
"--no-progress-bar",
default=False,
action="store_true",
help="If set, the progress bar will not be shown"
)
def handle(self, *args, **options):
logging.getLogger().handlers[0].level = logging.ERROR
@@ -65,5 +71,7 @@ class Command(BaseCommand):
with multiprocessing.Pool() as pool:
list(tqdm.tqdm(
pool.imap_unordered(_process_document, ids), total=len(ids)
pool.imap_unordered(_process_document, ids),
total=len(ids),
disable=options['no_progress_bar']
))

4
src/documents/models.py Executable file → Normal file
View File

@@ -65,10 +65,6 @@ class MatchingModel(models.Model):
class Correspondent(MatchingModel):
# This regex is probably more restrictive than it needs to be, but it's
# better safe than sorry.
SAFE_REGEX = re.compile(r"^[\w\- ,.']+$")
class Meta:
ordering = ("name",)
verbose_name = _("correspondent")

View File

@@ -60,12 +60,7 @@ def check_sanity(progress=False):
if lockfile in present_files:
present_files.remove(lockfile)
if progress:
docs = tqdm(Document.objects.all())
else:
docs = Document.objects.all()
for doc in docs:
for doc in tqdm(Document.objects.all(), disable=not progress):
# Check sanity of the thumbnail
if not os.path.isfile(doc.thumbnail_path):
messages.error(f"Thumbnail of document {doc.pk} does not exist.")

122
src/documents/signals/handlers.py Executable file → Normal file
View File

@@ -1,6 +1,7 @@
import logging
import os
from django.utils import termcolors
from django.conf import settings
from django.contrib.admin.models import ADDITION, LogEntry
from django.contrib.auth.models import User
@@ -8,14 +9,14 @@ from django.contrib.contenttypes.models import ContentType
from django.db import models, DatabaseError
from django.db.models import Q
from django.dispatch import receiver
from django.utils import timezone
from django.utils import termcolors, timezone
from filelock import FileLock
from .. import matching
from ..file_handling import delete_empty_directories, \
create_source_path_directory, \
generate_unique_filename
from ..models import Document, Tag
from ..models import Document, Tag, MatchingModel
logger = logging.getLogger("paperless.handlers")
@@ -32,6 +33,9 @@ def set_correspondent(sender,
classifier=None,
replace=False,
use_first=True,
suggest=False,
base_url=None,
color=False,
**kwargs):
if document.correspondent and not replace:
return
@@ -60,13 +64,31 @@ def set_correspondent(sender,
return
if selected or replace:
logger.info(
f"Assigning correspondent {selected} to {document}",
extra={'group': logging_group}
)
if suggest:
if base_url:
print(
termcolors.colorize(str(document), fg='green')
if color
else str(document)
)
print(f"{base_url}/documents/{document.pk}")
else:
print(
(
termcolors.colorize(str(document), fg='green')
if color
else str(document)
) + f" [{document.pk}]"
)
print(f"Suggest correspondent {selected}")
else:
logger.info(
f"Assigning correspondent {selected} to {document}",
extra={'group': logging_group}
)
document.correspondent = selected
document.save(update_fields=("correspondent",))
document.correspondent = selected
document.save(update_fields=("correspondent",))
def set_document_type(sender,
@@ -75,6 +97,9 @@ def set_document_type(sender,
classifier=None,
replace=False,
use_first=True,
suggest=False,
base_url=None,
color=False,
**kwargs):
if document.document_type and not replace:
return
@@ -104,13 +129,31 @@ def set_document_type(sender,
return
if selected or replace:
logger.info(
f"Assigning document type {selected} to {document}",
extra={'group': logging_group}
)
if suggest:
if base_url:
print(
termcolors.colorize(str(document), fg='green')
if color
else str(document)
)
print(f"{base_url}/documents/{document.pk}")
else:
print(
(
termcolors.colorize(str(document), fg='green')
if color
else str(document)
) + f" [{document.pk}]"
)
print(f"Sugest document type {selected}")
else:
logger.info(
f"Assigning document type {selected} to {document}",
extra={'group': logging_group}
)
document.document_type = selected
document.save(update_fields=("document_type",))
document.document_type = selected
document.save(update_fields=("document_type",))
def set_tags(sender,
@@ -118,6 +161,9 @@ def set_tags(sender,
logging_group=None,
classifier=None,
replace=False,
suggest=False,
base_url=None,
color=False,
**kwargs):
if replace:
@@ -132,16 +178,48 @@ def set_tags(sender,
relevant_tags = set(matched_tags) - current_tags
if not relevant_tags:
return
if suggest:
extra_tags = current_tags - set(matched_tags)
extra_tags = [
t for t in extra_tags
if t.matching_algorithm == MatchingModel.MATCH_AUTO
]
if not relevant_tags and not extra_tags:
return
if base_url:
print(
termcolors.colorize(str(document), fg='green')
if color
else str(document)
)
print(f"{base_url}/documents/{document.pk}")
else:
print(
(
termcolors.colorize(str(document), fg='green')
if color
else str(document)
) + f" [{document.pk}]"
)
if relevant_tags:
print(
"Suggest tags: " + ", ".join([t.name for t in relevant_tags])
)
if extra_tags:
print("Extra tags: " + ", ".join([t.name for t in extra_tags]))
else:
if not relevant_tags:
return
message = 'Tagging "{}" with "{}"'
logger.info(
message.format(document, ", ".join([t.name for t in relevant_tags])),
extra={'group': logging_group}
)
message = 'Tagging "{}" with "{}"'
logger.info(
message.format(
document, ", ".join([t.name for t in relevant_tags])
),
extra={'group': logging_group}
)
document.tags.add(*relevant_tags)
document.tags.add(*relevant_tags)
@receiver(models.signals.post_delete, sender=Document)

View File

@@ -42,3 +42,58 @@ body {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
@media (prefers-color-scheme: dark) {
/*
From theme_dark.scss
$primary-dark-mode: #45973a;
$danger-dark-mode: #b71631;
$bg-dark-mode: #161618;
$bg-dark-mode-accent: #21262d;
$bg-light-dark-mode: #1c1c1f;
$text-color-dark-mode: #abb2bf;
$border-color-dark-mode: #47494f;
*/
body {
background-color: #161618 !important;
color: #abb2bf;
}
svg.logo .text {
fill: #abb2bf!important;
}
.form-control:not(.is-invalid):not(.btn) {
border-color: #47494f;
}
.form-control:not(.btn) {
background-color: #161618;
color: #abb2bf;
}
.form-control:not(.btn)::placeholder {
color: #abb2bf;
}
.form-control:not(.btn):focus {
background-color: #1c1c1f !important;
color: #8e97a9 !important;
}
.btn-primary {
color: #fff;
background-color: #17541f;
border-color: #17541f;
}
.btn-primary:hover, .btn-primary:focus {
background-color: #0f3614;
border-color: #0c2c10;
}
.btn-primary:not(:disabled):not(.disabled):active {
background-color: #0c2c10;
border-color: #09220d;
}
}

View File

@@ -20,13 +20,13 @@ def index_optimize():
writer.commit(optimize=True)
def index_reindex():
def index_reindex(progress_bar_disable=False):
documents = Document.objects.all()
ix = index.open_index(recreate=True)
with AsyncWriter(ix) as writer:
for document in tqdm.tqdm(documents):
for document in tqdm.tqdm(documents, disable=progress_bar_disable):
index.update_document(writer, document)

View File

@@ -7,11 +7,12 @@
<head>
<meta charset="utf-8">
<title>Paperless-ng</title>
<base href="/">
<base href="{% url 'base' %}">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="username" content="{{username}}">
<meta name="full_name" content="{{full_name}}">
<meta name="cookie_prefix" content="{{cookie_prefix}}">
<meta name="robots" content="noindex,nofollow">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="manifest" href="{% static webmanifest %}">
<link rel="stylesheet" href="{% static styles_css %}">

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -471,6 +471,31 @@ class TestDocumentApi(DirectoriesMixin, APITestCase):
self.assertNotIn(d5.id, search_query("&added__date__lt=" + datetime.datetime(2020, 1, 2).strftime("%Y-%m-%d")))
self.assertIn(d5.id, search_query("&added__date__gt=" + datetime.datetime(2020, 1, 2).strftime("%Y-%m-%d")))
def test_search_sorting(self):
c1 = Correspondent.objects.create(name="corres Ax")
c2 = Correspondent.objects.create(name="corres Cx")
c3 = Correspondent.objects.create(name="corres Bx")
d1 = Document.objects.create(checksum="1", correspondent=c1, content="test", archive_serial_number=2, title="3")
d2 = Document.objects.create(checksum="2", correspondent=c2, content="test", archive_serial_number=3, title="2")
d3 = Document.objects.create(checksum="3", correspondent=c3, content="test", archive_serial_number=1, title="1")
with AsyncWriter(index.open_index()) as writer:
for doc in Document.objects.all():
index.update_document(writer, doc)
def search_query(q):
r = self.client.get("/api/documents/?query=test" + q)
self.assertEqual(r.status_code, 200)
return [hit['id'] for hit in r.data['results']]
self.assertListEqual(search_query("&ordering=archive_serial_number"), [d3.id, d1.id, d2.id])
self.assertListEqual(search_query("&ordering=-archive_serial_number"), [d2.id, d1.id, d3.id])
self.assertListEqual(search_query("&ordering=title"), [d3.id, d2.id, d1.id])
self.assertListEqual(search_query("&ordering=-title"), [d1.id, d2.id, d3.id])
self.assertListEqual(search_query("&ordering=correspondent__name"), [d1.id, d3.id, d2.id])
self.assertListEqual(search_query("&ordering=-correspondent__name"), [d2.id, d3.id, d1.id])
def test_statistics(self):
doc1 = Document.objects.create(title="none1", checksum="A")

View File

@@ -317,6 +317,27 @@ class TestConsumer(DirectoriesMixin, TestCase):
self._assert_first_last_send_progress()
@override_settings(PAPERLESS_FILENAME_FORMAT=None)
def testDeleteMacFiles(self):
# https://github.com/jonaswinkler/paperless-ng/discussions/1037
filename = self.get_test_file()
shadow_file = os.path.join(self.dirs.scratch_dir, "._sample.pdf")
shutil.copy(filename, shadow_file)
self.assertTrue(os.path.isfile(shadow_file))
document = self.consumer.try_consume_file(filename)
self.assertTrue(os.path.isfile(
document.source_path
))
self.assertFalse(os.path.isfile(shadow_file))
self.assertFalse(os.path.isfile(filename))
def testOverrideFilename(self):
filename = self.get_test_file()
override_filename = "Statement for November.pdf"

View File

@@ -60,10 +60,10 @@ class ConsumerMixin:
super(ConsumerMixin, self).tearDown()
def wait_for_task_mock_call(self):
def wait_for_task_mock_call(self, excpeted_call_count=1):
n = 0
while n < 100:
if self.task_mock.call_count > 0:
if self.task_mock.call_count >= excpeted_call_count:
# give task_mock some time to finish and raise errors
sleep(1)
return
@@ -202,6 +202,42 @@ class TestConsumer(DirectoriesMixin, ConsumerMixin, TransactionTestCase):
self.assertRaises(CommandError, call_command, 'document_consumer', '--oneshot')
def test_mac_write(self):
self.task_mock.side_effect = self.bogus_task
self.t_start()
shutil.copy(self.sample_file, os.path.join(self.dirs.consumption_dir, ".DS_STORE"))
shutil.copy(self.sample_file, os.path.join(self.dirs.consumption_dir, "my_file.pdf"))
shutil.copy(self.sample_file, os.path.join(self.dirs.consumption_dir, "._my_file.pdf"))
shutil.copy(self.sample_file, os.path.join(self.dirs.consumption_dir, "my_second_file.pdf"))
shutil.copy(self.sample_file, os.path.join(self.dirs.consumption_dir, "._my_second_file.pdf"))
sleep(5)
self.wait_for_task_mock_call(excpeted_call_count=2)
self.assertEqual(2, self.task_mock.call_count)
fnames = [os.path.basename(args[1]) for args, _ in self.task_mock.call_args_list]
self.assertCountEqual(fnames, ["my_file.pdf", "my_second_file.pdf"])
def test_is_ignored(self):
test_paths = [
(os.path.join(self.dirs.consumption_dir, "foo.pdf"), False),
(os.path.join(self.dirs.consumption_dir, "foo","bar.pdf"), False),
(os.path.join(self.dirs.consumption_dir, ".DS_STORE", "foo.pdf"), True),
(os.path.join(self.dirs.consumption_dir, "foo", ".DS_STORE", "bar.pdf"), True),
(os.path.join(self.dirs.consumption_dir, ".stfolder", "foo.pdf"), True),
(os.path.join(self.dirs.consumption_dir, "._foo.pdf"), True),
(os.path.join(self.dirs.consumption_dir, "._foo", "bar.pdf"), False),
]
for file_path, expected_ignored in test_paths:
self.assertEqual(
expected_ignored,
document_consumer._is_ignored(file_path),
f'_is_ignored("{file_path}") != {expected_ignored}')
@override_settings(CONSUMER_POLLING=1, CONSUMER_POLLING_DELAY=1, CONSUMER_POLLING_RETRY_COUNT=20)
class TestConsumerPolling(TestConsumer):

View File

@@ -11,14 +11,17 @@ class TestRetagger(DirectoriesMixin, TestCase):
self.d1 = Document.objects.create(checksum="A", title="A", content="first document")
self.d2 = Document.objects.create(checksum="B", title="B", content="second document")
self.d3 = Document.objects.create(checksum="C", title="C", content="unrelated document")
self.d4 = Document.objects.create(checksum="D", title="D", content="auto document")
self.tag_first = Tag.objects.create(name="tag1", match="first", matching_algorithm=Tag.MATCH_ANY)
self.tag_second = Tag.objects.create(name="tag2", match="second", matching_algorithm=Tag.MATCH_ANY)
self.tag_inbox = Tag.objects.create(name="test", is_inbox_tag=True)
self.tag_no_match = Tag.objects.create(name="test2")
self.tag_auto = Tag.objects.create(name="tagauto", matching_algorithm=Tag.MATCH_AUTO)
self.d3.tags.add(self.tag_inbox)
self.d3.tags.add(self.tag_no_match)
self.d4.tags.add(self.tag_auto)
self.correspondent_first = Correspondent.objects.create(
@@ -32,7 +35,8 @@ class TestRetagger(DirectoriesMixin, TestCase):
name="dt2", match="second", matching_algorithm=DocumentType.MATCH_ANY)
def get_updated_docs(self):
return Document.objects.get(title="A"), Document.objects.get(title="B"), Document.objects.get(title="C")
return Document.objects.get(title="A"), Document.objects.get(title="B"), \
Document.objects.get(title="C"), Document.objects.get(title="D")
def setUp(self) -> None:
super(TestRetagger, self).setUp()
@@ -40,25 +44,26 @@ class TestRetagger(DirectoriesMixin, TestCase):
def test_add_tags(self):
call_command('document_retagger', '--tags')
d_first, d_second, d_unrelated = self.get_updated_docs()
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertEqual(d_first.tags.count(), 1)
self.assertEqual(d_second.tags.count(), 1)
self.assertEqual(d_unrelated.tags.count(), 2)
self.assertEqual(d_auto.tags.count(), 1)
self.assertEqual(d_first.tags.first(), self.tag_first)
self.assertEqual(d_second.tags.first(), self.tag_second)
def test_add_type(self):
call_command('document_retagger', '--document_type')
d_first, d_second, d_unrelated = self.get_updated_docs()
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertEqual(d_first.document_type, self.doctype_first)
self.assertEqual(d_second.document_type, self.doctype_second)
def test_add_correspondent(self):
call_command('document_retagger', '--correspondent')
d_first, d_second, d_unrelated = self.get_updated_docs()
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertEqual(d_first.correspondent, self.correspondent_first)
self.assertEqual(d_second.correspondent, self.correspondent_second)
@@ -68,11 +73,55 @@ class TestRetagger(DirectoriesMixin, TestCase):
call_command('document_retagger', '--tags', '--overwrite')
d_first, d_second, d_unrelated = self.get_updated_docs()
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertIsNotNone(Tag.objects.get(id=self.tag_second.id))
self.assertCountEqual([tag.id for tag in d_first.tags.all()], [self.tag_first.id])
self.assertCountEqual([tag.id for tag in d_second.tags.all()], [self.tag_second.id])
self.assertCountEqual([tag.id for tag in d_unrelated.tags.all()], [self.tag_inbox.id, self.tag_no_match.id])
self.assertEqual(d_auto.tags.count(), 0)
def test_add_tags_suggest(self):
call_command('document_retagger', '--tags', '--suggest')
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertEqual(d_first.tags.count(), 0)
self.assertEqual(d_second.tags.count(), 0)
self.assertEqual(d_auto.tags.count(), 1)
def test_add_type_suggest(self):
call_command('document_retagger', '--document_type', '--suggest')
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertEqual(d_first.document_type, None)
self.assertEqual(d_second.document_type, None)
def test_add_correspondent_suggest(self):
call_command('document_retagger', '--correspondent', '--suggest')
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertEqual(d_first.correspondent, None)
self.assertEqual(d_second.correspondent, None)
def test_add_tags_suggest_url(self):
call_command('document_retagger', '--tags', '--suggest', '--base-url=http://localhost')
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertEqual(d_first.tags.count(), 0)
self.assertEqual(d_second.tags.count(), 0)
self.assertEqual(d_auto.tags.count(), 1)
def test_add_type_suggest_url(self):
call_command('document_retagger', '--document_type', '--suggest', '--base-url=http://localhost')
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertEqual(d_first.document_type, None)
self.assertEqual(d_second.document_type, None)
def test_add_correspondent_suggest_url(self):
call_command('document_retagger', '--correspondent', '--suggest', '--base-url=http://localhost')
d_first, d_second, d_unrelated, d_auto = self.get_updated_docs()
self.assertEqual(d_first.correspondent, None)
self.assertEqual(d_second.correspondent, None)

0
src/documents/views.py Executable file → Normal file
View File

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 11:47\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-05-16 10:09\n"
"Last-Translator: \n"
"Language-Team: Czech\n"
"Language: cs_CZ\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automatický"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "název"
@@ -372,119 +372,131 @@ msgstr ""
msgid "File type %(type)s not supported"
msgstr "Typ souboru %(type)s není podporován"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng se načítá..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Odhlášeno od Paperless-ng"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Byli jste úspěšně odhlášeni. Nashledanou!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Přihlašte se znovu"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Paperless-ng přihlášení"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Prosím přihlaste se."
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Vaše uživatelské jméno a heslo se neshodují. Prosím, zkuste to znovu."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Uživatelské jméno"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Heslo"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Přihlásit se"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr ""
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Němčina"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Holandština"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Francouzština"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr ""
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr ""
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr ""
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr ""
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr ""
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr ""
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr ""
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Správa Paperless-ng"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr ""
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr ""
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filtr"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless zpracuje pouze emaily které odpovídají VŠEM níže zadaným filtrům."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Akce"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "Akce provedena na emailu. Tato akce je provedena jen pokud byly dokumenty zkonzumovány z emailu. Emaily bez příloh zůstanou nedotčeny."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadata"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Automaticky přiřadit metadata dokumentům zkonzumovaných z tohoto pravidla. Pokud zde nepřiřadíte tagy, typy nebo korespondenty, paperless stále zpracuje všechna shodující-se pravidla které jste definovali."
@@ -536,139 +548,151 @@ msgstr "uživatelské jméno"
msgid "password"
msgstr "heslo"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr ""
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "mailové pravidlo"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "mailová pravidla"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Zpracovávat jen přílohy"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Zpracovat všechny soubory, včetně vložených příloh"
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Označit jako přečtené, nezpracovávat přečtené emaily"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Označit email, nezpracovávat označené emaily"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Přesunout do specifikované složky"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Odstranit"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Použít předmět jako titulek"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Použít název souboru u přílohy jako titulek"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Nepřiřazovat korespondenta"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Použít emailovou adresu"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Použít jméno (nebo emailovou adresu pokud jméno není dostupné)"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Použít korespondenta vybraného níže"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "pořadí"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "účet"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "složka"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filtrovat z"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "název filtru"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "tělo filtru"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "název souboru u přílohy filtru"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Konzumovat jen dokumenty které přesně odpovídají tomuto názvu souboru pokud specifikováno. Zástupné znaky jako *.pdf nebo *invoice* jsou povoleny. Nezáleží na velikosti písmen."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "maximální stáří"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Specifikováno ve dnech."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "typ přílohy"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Vložené přílohy zahrnují vložené obrázky, takže je nejlepší tuto možnost kombinovat s filtrem na název souboru"
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "akce"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "parametr akce"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Další parametr pro výše vybranou akci, napříkad cílová složka akce přesunutí do složky."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "nastavit titulek z"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "přiřadit tento tag"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "přiřadit tento typ dokumentu"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "přiřadit korespondenta z"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "přiřadit tohoto korespondenta"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 19:51\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-07-05 11:17\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -35,7 +35,7 @@ msgstr "Exakte Übereinstimmung"
#: documents/models.py:35
msgid "Regular expression"
msgstr "Regulärer Ausdruck"
msgstr "Regular expression / Reguläre Ausdrücke"
#: documents/models.py:36
msgid "Fuzzy word"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automatisch"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "Name"
@@ -372,119 +372,131 @@ msgstr "Ungültige Farbe."
msgid "File type %(type)s not supported"
msgstr "Dateityp %(type)s nicht unterstützt"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng wird geladen..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng abgemeldet"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Sie wurden erfolgreich abgemeldet. Auf Wiedersehen!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Erneut anmelden"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Paperless-ng Anmeldung"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Bitte melden Sie sich an."
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Ihr Benutzername und Kennwort stimmen nicht überein. Bitte versuchen Sie es erneut."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Benutzername"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Kennwort"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Anmelden"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Englisch (US)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Englisch (UK)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Deutsch"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Niederländisch"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Französisch"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portugiesisch (Brasilien)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Portugiesisch"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italienisch"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Rumänisch"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "Russisch"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Spanisch"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr "Polnisch"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Schwedisch"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Paperless-ng Administration"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Authentifizierung"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Erweiterte Einstellungen"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filter"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless wird nur E-Mails verarbeiten, für die alle der hier angegebenen Filter zutreffen."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Aktionen"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "Die Aktion, die auf E-Mails angewendet werden soll. Diese Aktion wird nur auf E-Mails angewendet, aus denen Anhänge verarbeitet wurden. E-Mails ohne Anhänge werden vollständig ignoriert."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadaten"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Folgende Metadaten werden Dokumenten dieser Regel automatisch zugewiesen. Wenn Sie hier nichts auswählen wird Paperless weiterhin alle Zuweisungsalgorithmen ausführen und Metadaten auf Basis des Dokumentinhalts zuweisen."
@@ -536,139 +548,151 @@ msgstr "Benutzername"
msgid "password"
msgstr "Kennwort"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr "Zeichensatz"
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Der Zeichensatz, der bei der Kommunikation mit dem Mailserver verwendet werden soll, wie z.B. 'UTF-8' oder 'US-ASCII'."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "E-Mail-Regel"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "E-Mail-Regeln"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Nur Anhänge verarbeiten."
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Alle Dateien verarbeiten, auch 'inline'-Anhänge."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Als gelesen markieren, gelesene E-Mails nicht verarbeiten"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Als wichtig markieren, markierte E-Mails nicht verarbeiten"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "In angegebenen Ordner verschieben"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Löschen"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Betreff als Titel verwenden"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Dateiname des Anhangs als Titel verwenden"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Keinen Korrespondenten zuweisen"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "E-Mail-Adresse benutzen"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Absendername benutzen (oder E-Mail-Adressen, wenn nicht verfügbar)"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Nachfolgend ausgewählten Korrespondent verwenden"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "Reihenfolge"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "Konto"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "Ordner"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Unterordner müssen durch Punkte getrennt werden."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "Absender filtern"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "Betreff filtern"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "Nachrichteninhalt filtern"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "Anhang-Dateiname filtern"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Wenn angegeben werden nur Dateien verarbeitet, die diesem Dateinamen exakt entsprechen. Platzhalter wie *.pdf oder *rechnung* sind erlaubt. Groß- und Kleinschreibung ist irrelevant."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "Maximales Alter"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Angegeben in Tagen."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "Dateianhangstyp"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "'Inline'-Anhänge schließen eingebettete Bilder mit ein, daher sollte diese Einstellung mit einem Dateinamenfilter kombiniert werden."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "Aktion"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "Parameter für Aktion"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Zusätzlicher Parameter für die oben ausgewählte Aktion, zum Beispiel der Zielordner für die Aktion \"In angegebenen Ordner verschieben\"."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Zusätzlicher Parameter für die oben ausgewählte Aktion, zum Beispiel der Zielordner für die Aktion \"In angegebenen Ordner verschieben\". Unterordner müssen durch Punkte getrennt werden."
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "Titel zuweisen von"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "Dieses Tag zuweisen"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "Diesen Dokumenttyp zuweisen"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "Korrespondent zuweisen von"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "Diesen Korrespondent zuweisen"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 11:47\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-06-19 21:20\n"
"Last-Translator: \n"
"Language-Team: English, United Kingdom\n"
"Language: en_GB\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automatic"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "name"
@@ -336,11 +336,11 @@ msgstr "title or content contains"
#: documents/models.py:393
msgid "fulltext query"
msgstr ""
msgstr "fulltext query"
#: documents/models.py:394
msgid "more like this"
msgstr ""
msgstr "more like this"
#: documents/models.py:405
msgid "rule type"
@@ -372,119 +372,131 @@ msgstr "Invalid colour."
msgid "File type %(type)s not supported"
msgstr "File type %(type)s not supported"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng is loading..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng signed out"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "You have been successfully logged out. Bye!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Sign in again"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Paperless-ng sign in"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Please sign in."
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Your username and password didn't match. Please try again."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Username"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Password"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Sign in"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "English (US)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "English (GB)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "German"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Dutch"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "French"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portuguese (Brazil)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Portuguese"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italian"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Romanian"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "Russian"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Spanish"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr ""
msgstr "Polish"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Swedish"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Paperless-ng administration"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Authentication"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Advanced settings"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filter"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless will only process mails that match ALL of the filters given below."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Actions"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadata"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
@@ -536,139 +548,151 @@ msgstr "username"
msgid "password"
msgstr "password"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr ""
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "mail rule"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "mail rules"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Only process attachments."
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Process all files, including 'inline' attachments."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Mark as read, don't process read mails"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Flag the mail, don't process flagged mails"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Move to specified folder"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Delete"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Use subject as title"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Use attachment filename as title"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Do not assign a correspondent"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Use mail address"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Use name (or mail address if not available)"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Use correspondent selected below"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "order"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "account"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "folder"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filter from"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filter subject"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filter body"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "filter attachment filename"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "maximum age"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Specified in days."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "attachment type"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "action"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "action parameter"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "assign title from"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "assign this tag"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "assign this document type"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "assign correspondent from"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "assign this correspondent"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr ""
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr ""
@@ -376,123 +376,135 @@ msgstr ""
msgid "File type %(type)s not supported"
msgstr ""
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr ""
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr ""
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr ""
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr ""
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr ""
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr ""
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr ""
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr ""
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr ""
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr ""
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr ""
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr ""
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr ""
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr ""
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr ""
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr ""
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr ""
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr ""
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr ""
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr ""
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr ""
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr ""
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr ""
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid ""
"Paperless will only process mails that match ALL of the filters given below."
msgstr ""
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr ""
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid ""
"The action applied to the mail. This action is only performed when documents "
"were consumed from the mail. Mails without attachments will remain entirely "
"untouched."
msgstr ""
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr ""
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid ""
"Assign metadata to documents consumed from this rule automatically. If you "
"do not assign tags, types or correspondents here, paperless will still "
@@ -549,144 +561,158 @@ msgstr ""
msgid "password"
msgstr ""
#: paperless_mail/models.py:60
msgid "mail rule"
#: paperless_mail/models.py:54
msgid "character set"
msgstr ""
#: paperless_mail/models.py:61
msgid "mail rules"
msgstr ""
#: paperless_mail/models.py:67
msgid "Only process attachments."
#: paperless_mail/models.py:57
msgid ""
"The character set to use when communicating with the mail server, such as "
"'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr ""
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr ""
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr ""
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr ""
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr ""
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr ""
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr ""
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr ""
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr ""
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr ""
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr ""
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr ""
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr ""
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr ""
#: paperless_mail/models.py:128
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:131
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:134
msgid "filter body"
msgid "Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:138
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:144
msgid "filter body"
msgstr ""
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr ""
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid ""
"Only consume documents which entirely match this filename if specified. "
"Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr ""
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr ""
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr ""
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid ""
"Inline attachments include embedded images, so it's best to combine this "
"option with a filename filter."
msgstr ""
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr ""
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr ""
#: paperless_mail/models.py:167
#: paperless_mail/models.py:177
msgid ""
"Additional parameter for the action selected above, i.e., the target folder "
"of the move to folder action."
"of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr ""
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr ""
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr ""
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr ""
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 11:47\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-07-29 20:57\n"
"Last-Translator: \n"
"Language-Team: Spanish\n"
"Language: es_ES\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automático"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "nombre"
@@ -64,11 +64,11 @@ msgstr "es insensible"
#: documents/models.py:74 documents/models.py:120
msgid "correspondent"
msgstr "Tipo de documento"
msgstr "interlocutor"
#: documents/models.py:75
msgid "correspondents"
msgstr "Tipos de documento"
msgstr "interlocutores"
#: documents/models.py:81
msgid "color"
@@ -100,15 +100,15 @@ msgstr "tipos de documento"
#: documents/models.py:110
msgid "Unencrypted"
msgstr "Sin encriptar"
msgstr "Sin cifrar"
#: documents/models.py:111
msgid "Encrypted with GNU Privacy Guard"
msgstr "Encriptado con GNU Privacy Guard"
msgstr "Cifrado con GNU Privacy Guard"
#: documents/models.py:124
msgid "title"
msgstr "titulo"
msgstr "título"
#: documents/models.py:137
msgid "content"
@@ -256,7 +256,7 @@ msgstr "ordenar al revés"
#: documents/models.py:373
msgid "title contains"
msgstr "el titulo contiene"
msgstr "el título contiene"
#: documents/models.py:374
msgid "content contains"
@@ -268,7 +268,7 @@ msgstr "ASN es"
#: documents/models.py:376
msgid "correspondent is"
msgstr "tipo de documento es"
msgstr "interlocutor es"
#: documents/models.py:377
msgid "document type is"
@@ -336,11 +336,11 @@ msgstr "el título o cuerpo contiene"
#: documents/models.py:393
msgid "fulltext query"
msgstr ""
msgstr "consulta de texto completo"
#: documents/models.py:394
msgid "more like this"
msgstr ""
msgstr "más contenido similar"
#: documents/models.py:405
msgid "rule type"
@@ -372,121 +372,133 @@ msgstr "Color inválido."
msgid "File type %(type)s not supported"
msgstr "Tipo de fichero %(type)s no suportado"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng está cargándose..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng Sesión cerrada"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Has cerrado la sesión satisfactoriamente. ¡Adiós!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Iniciar sesión de nuevo"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Paperless-ng Iniciar sesión"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Por favor, inicie sesión"
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Tu usuario y contraseña no coinciden. Inténtalo de nuevo."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Usuario"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Contraseña"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Iniciar sesión"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Inglés (US)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Inglés (Gran Bretaña)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Alemán"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Alemán"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Francés"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portugués (Brasil)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr ""
msgstr "Portugués"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Rumano"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "Ruso"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Español"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr ""
msgstr "Polaco"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Sueco"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Paperless-ng Administración"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Autentificación"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Configuración avanzada"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filtro"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless solo procesará los correos que coincidan con TODOS los filtros escritos abajo."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Acciones"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "La acción aplicada al correo. Esta acción solo se realiza cuando los documentos se consumen del correo. Los correos sin archivos adjuntos permanecerán totalmente intactos."
msgstr "La acción se aplicó al correo. Esta acción sólo se realiza cuando los documentos se consumen desde el correo. Los correos sin archivos adjuntos permanecerán totalmente intactos."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadatos"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Asignar metadatos a documentos consumidos por esta regla automáticamente. Si no asigna etiquetas, o ipos aquí, paperless procesará igualmente todas las reglas que haya definido."
msgstr "Asignar metadatos a documentos consumidos por esta regla automáticamente. Si no asigna etiquetas, tipos o interlocutores aquí, paperless procesará igualmente todas las reglas que haya definido."
#: paperless_mail/apps.py:9
msgid "Paperless mail"
@@ -536,139 +548,151 @@ msgstr "usuario"
msgid "password"
msgstr "contraseña"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr "conjunto de caracteres"
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "El conjunto de caracteres a usar al comunicarse con el servidor de correo, como 'UTF-8' o 'US-ASCII'."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "regla de correo"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "reglas de correo"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Solo procesar ficheros adjuntos."
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Procesar todos los ficheros, incluyendo ficheros 'incrustados'."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Marcar como leído, no procesar archivos leídos"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Marcar el correo, no procesar correos marcados"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Mover a carpeta específica"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Borrar"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Usar asunto como titulo"
msgstr "Usar asunto como título"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Usar nombre del fichero adjunto como título"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "No asignar un tipo de documento"
msgstr "No asignar interlocutor"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Usar dirección de correo"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Usar nombre (o dirección de correo si no está disponible)"
#: paperless_mail/models.py:105
msgid "Use correspondent selected below"
msgstr "Usar el tipo seleccionado debajo"
msgstr "Usar nombre (o dirección de correo sino está disponible)"
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Usar el interlocutor seleccionado a continuación"
#: paperless_mail/models.py:121
msgid "order"
msgstr "orden"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "cuenta"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "carpeta"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Las subcarpetas deben estar separadas por puntos."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filtrar desde"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filtrar asunto"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filtrar cuerpo"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "filtrar nombre del fichero adjunto"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Sólo consumirá documentos que coincidan completamente con este nombre de archivo si se especifica. Se permiten comodines como *.pdf o *factura*. No diferencia mayúsculas."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "antigüedad máxima"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Especificado en días."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "tipo de fichero adjunto"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Adjuntos incrustados incluyen imágenes, por lo que es mejor combina resta opción un filtro de nombre de fichero."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "acción"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "parámetro de acción"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Parámetro adicional para la acción seleccionada arriba. Ej. la carpeta de destino de la acción de mover a carpeta."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Parámetro adicional para la acción seleccionada arriba. Ej. la carpeta de destino de la acción \"mover a carpeta\". Las subcarpetas deben estar separadas por puntos."
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "asignar titulo desde"
msgstr "asignar título desde"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "asignar esta etiqueta"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "asignar este tipo de documento"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "Asignar tipo de documento desde"
msgstr "asignar interlocutor desde"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "asignar este tipo de documento"
msgstr "asignar este interlocutor"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 13:47\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-05-17 13:13\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automatique"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "nom"
@@ -372,119 +372,131 @@ msgstr "Couleur incorrecte."
msgid "File type %(type)s not supported"
msgstr "Type de fichier %(type)s non pris en charge"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng est en cours de chargement..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Déconnecté de Paperless-ng"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Vous avez été déconnecté avec succès. Au revoir !"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Se reconnecter"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Connexion à Paperless-ng"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Veuillez vous connecter."
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Votre nom d'utilisateur et votre mot de passe ne correspondent pas. Veuillez réessayer."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Nom d'utilisateur"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Mot de passe"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "S'identifier"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Anglais (US)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Anglais (GB)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Allemand"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Néerlandais"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Français"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portugais (Brésil)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Portugais"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italien"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Roumain"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "Russe"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Espagnol"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr "Polonais"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Suédois"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Administration de Paperless-ng"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Authentification"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Paramètres avancés"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filtrage"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless-ng ne traitera que les courriers qui correspondent à TOUS les filtres ci-dessous."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Actions"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "Action appliquée au courriel. Cette action n'est exécutée que lorsque les documents ont été traités depuis des courriels. Les courriels sans pièces jointes demeurent totalement inchangés."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Métadonnées"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Affecter automatiquement des métadonnées aux documents traités à partir de cette règle. Si vous n'affectez pas d'étiquette, de type ou de correspondant ici, Paperless-ng appliquera toutes les autres règles de rapprochement que vous avez définies."
@@ -536,139 +548,151 @@ msgstr "nom d'utilisateur"
msgid "password"
msgstr "mot de passe"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr "jeu de caractères"
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Le jeu de caractères à utiliser lors de la communication avec le serveur de messagerie, par exemple 'UTF-8' ou 'US-ASCII'."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "règle de courriel"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "règles de courriel"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Ne traiter que les pièces jointes."
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Traiter tous les fichiers, y compris les pièces jointes \"en ligne\"."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Marquer comme lu, ne pas traiter les courriels lus"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Marquer le courriel, ne pas traiter les courriels marqués"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Déplacer vers le dossier spécifié"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Supprimer"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Utiliser le sujet en tant que titre"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Utiliser le nom de la pièce jointe en tant que titre"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Ne pas affecter de correspondant"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Utiliser l'adresse électronique"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Utiliser le nom (ou l'adresse électronique s'il n'est pas disponible)"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Utiliser le correspondant sélectionné ci-dessous"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "ordre"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "compte"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "répertoire"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Les sous-dossiers doivent être séparés par des points."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filtrer l'expéditeur"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filtrer le sujet"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filtrer le corps du message"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "filtrer le nom de fichier de la pièce jointe"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Ne traiter que les documents correspondant intégralement à ce nom de fichier s'il est spécifié. Les jokers tels que *.pdf ou *facture* sont autorisés. La casse n'est pas prise en compte."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "âge maximum"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "En jours."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "type de pièce jointe"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Les pièces jointes en ligne comprennent les images intégrées, il est donc préférable de combiner cette option avec un filtre de nom de fichier."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "action"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "paramètre d'action"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Paramètre supplémentaire pour l'action sélectionnée ci-dessus, par exemple le dossier cible de l'action de déplacement vers un dossier."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Paramètre supplémentaire pour l'action sélectionnée ci-dessus, par exemple le dossier cible de l'action de déplacement vers un dossier. Les sous-dossiers doivent être séparés par des points."
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "affecter le titre depuis"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "affecter cette étiquette"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "affecter ce type de document"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "affecter le correspondant depuis"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "affecter ce correspondant"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 11:47\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-05-16 10:09\n"
"Last-Translator: \n"
"Language-Team: Hungarian\n"
"Language: hu_HU\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automatikus"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr ""
@@ -372,119 +372,131 @@ msgstr ""
msgid "File type %(type)s not supported"
msgstr ""
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr ""
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr ""
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr ""
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr ""
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr ""
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr ""
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr ""
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr ""
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr ""
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr ""
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Angol (US)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr ""
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Német"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr ""
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr ""
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr ""
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr ""
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr ""
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr ""
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr ""
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr ""
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr ""
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr ""
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr ""
#: paperless_mail/admin.py:25
msgid "Filter"
msgstr "Szűrő"
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr ""
#: paperless_mail/admin.py:27
msgid "Paperless will only process mails that match ALL of the filters given below."
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr ""
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Szűrő"
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr ""
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Műveletek"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr ""
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metaadat"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr ""
@@ -536,139 +548,151 @@ msgstr ""
msgid "password"
msgstr ""
#: paperless_mail/models.py:60
msgid "mail rule"
#: paperless_mail/models.py:54
msgid "character set"
msgstr ""
#: paperless_mail/models.py:61
msgid "mail rules"
msgstr ""
#: paperless_mail/models.py:67
msgid "Only process attachments."
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr ""
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr ""
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr ""
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr ""
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr ""
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr ""
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr ""
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Törlés"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr ""
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr ""
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr ""
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr ""
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr ""
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr ""
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr ""
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr ""
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr ""
#: paperless_mail/models.py:128
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:131
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:134
msgid "filter body"
msgid "Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:138
msgid "filter attachment filename"
msgid "filter from"
msgstr ""
#: paperless_mail/models.py:140
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr ""
#: paperless_mail/models.py:146
msgid "maximum age"
#: paperless_mail/models.py:144
msgid "filter body"
msgstr ""
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr ""
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr ""
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr ""
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr ""
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr ""
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr ""
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr ""
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr ""
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr ""
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr ""
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr ""
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr ""
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr ""

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 18:50\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-05-17 11:06\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automatico"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "nome"
@@ -372,119 +372,131 @@ msgstr "Colore non valido."
msgid "File type %(type)s not supported"
msgstr "Il tipo di file %(type)s non è supportato"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng è in caricamento..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng è uscito"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Ti sei disconnesso. A presto!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Accedi nuovamente"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Accedi a Paperless-ng"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Accedi"
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Il nome utente e la password non sono corretti. Riprovare."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Nome utente"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Password"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Accedi"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Inglese (US)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Inglese (GB)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Tedesco"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Olandese"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Francese"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portoghese (Brasile)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Portoghese"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Rumeno"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "Russo"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Spagnolo"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr "Polacco"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Svedese"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Amministrazione di Paperless-ng"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Autenticazione"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Impostazioni avanzate"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filtro"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless-ng processerà solo la posta che rientra in TUTTI i filtri impostati."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Azioni"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "L'azione che viene applicata alla email. Questa azione viene eseguita solo quando dei documenti vengono elaborati dalla email. Le email senza allegati vengono ignorate."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadati"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Assegna automaticamente i metadati ai documenti elaborati da questa regola. Se non assegni qui dei tag, tipi di documenti o corrispondenti, Paperless userà comunque le regole corrispondenti che hai configurato."
@@ -536,139 +548,151 @@ msgstr "nome utente"
msgid "password"
msgstr "password"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr "set di caratteri"
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Il set di caratteri da usare quando si comunica con il server di posta, come 'UTF-8' o 'US-ASCII'."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "regola email"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "regole email"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Elabora solo gli allegati."
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Elabora tutti i file, inclusi gli allegati nel corpo."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Segna come letto, non elaborare le email lette"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Contrassegna la email, non elaborare le email elaborate."
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Sposta in una cartella"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Elimina"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Usa oggetto come titolo"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Usa il nome dell'allegato come titolo"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Non assegnare un corrispondente"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Usa indirizzo email"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Usa nome (o indirizzo email se non disponibile)"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Usa il corrispondente selezionato qui sotto"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "priorità"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "account"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "cartella"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Le sottocartelle devono essere separate da punti."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filtra da"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filtra oggetto"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filtra corpo"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "filtra nome allegato"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Elabora i documenti che corrispondono a questo nome. Puoi usare wildcard come *.pdf o *fattura*. Non fa differenza fra maiuscole e minuscole."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "età massima"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Definito in giorni."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "tipo di allegato"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Gli allegati in linea includono le immagini nel corpo, quindi è meglio combinare questa opzione con il filtro nome."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "azione"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "parametro azione"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Parametro aggiuntivo per l'azione selezionata, ad esempio la cartella di destinazione per l'azione che sposta in una cartella."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Parametro aggiuntivo per l'azione selezionata, ad esempio la cartella di destinazione per l'azione che sposta una cartella. Le sottocartelle devono essere separate da punti."
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "assegna tittolo da"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "assegna questo tag"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "assegna questo tipo di documento"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "assegna corrispondente da"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "assegna questo corrispondente"

View File

@@ -0,0 +1,698 @@
msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-07-16 14:22\n"
"Last-Translator: \n"
"Language-Team: Luxembourgish\n"
"Language: lb_LU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: paperless-ng\n"
"X-Crowdin-Project-ID: 434940\n"
"X-Crowdin-Language: lb\n"
"X-Crowdin-File: /dev/src/locale/en_US/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 54\n"
#: documents/apps.py:10
msgid "Documents"
msgstr "Dokumenter"
#: documents/models.py:32
msgid "Any word"
msgstr "Iergendee Wuert"
#: documents/models.py:33
msgid "All words"
msgstr "All d'Wierder"
#: documents/models.py:34
msgid "Exact match"
msgstr "Exakten Treffer"
#: documents/models.py:35
msgid "Regular expression"
msgstr "Regulären Ausdrock"
#: documents/models.py:36
msgid "Fuzzy word"
msgstr "Ongenaut Wuert"
#: documents/models.py:37
msgid "Automatic"
msgstr "Automatesch"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:117
msgid "name"
msgstr "Numm"
#: documents/models.py:45
msgid "match"
msgstr "Zouweisungsmuster"
#: documents/models.py:49
msgid "matching algorithm"
msgstr "Zouweisungsalgorithmus"
#: documents/models.py:55
msgid "is insensitive"
msgstr "Grouss-/Klengschreiwung ignoréieren"
#: documents/models.py:74 documents/models.py:120
msgid "correspondent"
msgstr "Korrespondent"
#: documents/models.py:75
msgid "correspondents"
msgstr "Korrespondenten"
#: documents/models.py:81
msgid "color"
msgstr "Faarf"
#: documents/models.py:87
msgid "is inbox tag"
msgstr "Postaganks-Etikett"
#: documents/models.py:89
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Dës Etikett als Postaganks-Etikett markéieren: All nei importéiert Dokumenter kréien ëmmer dës Etikett zougewisen."
#: documents/models.py:94
msgid "tag"
msgstr "Etikett"
#: documents/models.py:95 documents/models.py:151
msgid "tags"
msgstr "Etiketten"
#: documents/models.py:101 documents/models.py:133
msgid "document type"
msgstr "Dokumententyp"
#: documents/models.py:102
msgid "document types"
msgstr "Dokumententypen"
#: documents/models.py:110
msgid "Unencrypted"
msgstr "Onverschlësselt"
#: documents/models.py:111
msgid "Encrypted with GNU Privacy Guard"
msgstr "Verschlësselt mat GNU Privacy Guard"
#: documents/models.py:124
msgid "title"
msgstr "Titel"
#: documents/models.py:137
msgid "content"
msgstr "Inhalt"
#: documents/models.py:139
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "De réien Textinhalt vum Dokument. Dëst Feld gëtt primär fir d'Sich benotzt."
#: documents/models.py:144
msgid "mime type"
msgstr "MIME-Typ"
#: documents/models.py:155
msgid "checksum"
msgstr "Préifzomm"
#: documents/models.py:159
msgid "The checksum of the original document."
msgstr "D'Préifzomm vum Original-Dokument."
#: documents/models.py:163
msgid "archive checksum"
msgstr "Archiv-Préifzomm"
#: documents/models.py:168
msgid "The checksum of the archived document."
msgstr "D'Préifzomm vum archivéierten Dokument."
#: documents/models.py:172 documents/models.py:328
msgid "created"
msgstr "erstallt"
#: documents/models.py:176
msgid "modified"
msgstr "verännert"
#: documents/models.py:180
msgid "storage type"
msgstr "Späichertyp"
#: documents/models.py:188
msgid "added"
msgstr "derbäigesat"
#: documents/models.py:192
msgid "filename"
msgstr "Fichiersnumm"
#: documents/models.py:198
msgid "Current filename in storage"
msgstr "Aktuellen Dateinumm am Späicher"
#: documents/models.py:202
msgid "archive filename"
msgstr "Archiv-Dateinumm"
#: documents/models.py:208
msgid "Current archive filename in storage"
msgstr "Aktuellen Dateinumm am Archiv"
#: documents/models.py:212
msgid "archive serial number"
msgstr "Archiv-Seriennummer"
#: documents/models.py:217
msgid "The position of this document in your physical document archive."
msgstr "D'Positioun vun dësem Dokument am physeschen Dokumentenarchiv."
#: documents/models.py:223
msgid "document"
msgstr "Dokument"
#: documents/models.py:224
msgid "documents"
msgstr "Dokumenter"
#: documents/models.py:311
msgid "debug"
msgstr "Fehlersiich"
#: documents/models.py:312
msgid "information"
msgstr "Informatioun"
#: documents/models.py:313
msgid "warning"
msgstr "Warnung"
#: documents/models.py:314
msgid "error"
msgstr "Feeler"
#: documents/models.py:315
msgid "critical"
msgstr "kritesch"
#: documents/models.py:319
msgid "group"
msgstr "Grupp"
#: documents/models.py:322
msgid "message"
msgstr "Message"
#: documents/models.py:325
msgid "level"
msgstr "Niveau"
#: documents/models.py:332
msgid "log"
msgstr "Protokoll"
#: documents/models.py:333
msgid "logs"
msgstr "Protokoller"
#: documents/models.py:344 documents/models.py:401
msgid "saved view"
msgstr "Gespäichert Usiicht"
#: documents/models.py:345
msgid "saved views"
msgstr "Gespäichert Usiichten"
#: documents/models.py:348
msgid "user"
msgstr "Benotzer"
#: documents/models.py:354
msgid "show on dashboard"
msgstr "Op der Startsäit uweisen"
#: documents/models.py:357
msgid "show in sidebar"
msgstr "An der Säiteleescht uweisen"
#: documents/models.py:361
msgid "sort field"
msgstr "Zortéierfeld"
#: documents/models.py:367
msgid "sort reverse"
msgstr "ëmgedréint zortéieren"
#: documents/models.py:373
msgid "title contains"
msgstr "Titel enthält"
#: documents/models.py:374
msgid "content contains"
msgstr "Inhalt enthält"
#: documents/models.py:375
msgid "ASN is"
msgstr "ASN ass"
#: documents/models.py:376
msgid "correspondent is"
msgstr "Korrespondent ass"
#: documents/models.py:377
msgid "document type is"
msgstr "Dokumententyp ass"
#: documents/models.py:378
msgid "is in inbox"
msgstr "ass am Postagank"
#: documents/models.py:379
msgid "has tag"
msgstr "huet Etikett"
#: documents/models.py:380
msgid "has any tag"
msgstr "huet iergendeng Etikett"
#: documents/models.py:381
msgid "created before"
msgstr "erstallt virun"
#: documents/models.py:382
msgid "created after"
msgstr "erstallt no"
#: documents/models.py:383
msgid "created year is"
msgstr "Erstellungsjoer ass"
#: documents/models.py:384
msgid "created month is"
msgstr "Erstellungsmount ass"
#: documents/models.py:385
msgid "created day is"
msgstr "Erstellungsdag ass"
#: documents/models.py:386
msgid "added before"
msgstr "dobäigesat virun"
#: documents/models.py:387
msgid "added after"
msgstr "dobäigesat no"
#: documents/models.py:388
msgid "modified before"
msgstr "verännert virun"
#: documents/models.py:389
msgid "modified after"
msgstr "verännert no"
#: documents/models.py:390
msgid "does not have tag"
msgstr "huet dës Etikett net"
#: documents/models.py:391
msgid "does not have ASN"
msgstr "huet keng ASN"
#: documents/models.py:392
msgid "title or content contains"
msgstr "Titel oder Inhalt enthalen"
#: documents/models.py:393
msgid "fulltext query"
msgstr "Volltextsich"
#: documents/models.py:394
msgid "more like this"
msgstr "ähnlech Dokumenter"
#: documents/models.py:405
msgid "rule type"
msgstr "Reegeltyp"
#: documents/models.py:409
msgid "value"
msgstr "Wäert"
#: documents/models.py:415
msgid "filter rule"
msgstr "Filterreegel"
#: documents/models.py:416
msgid "filter rules"
msgstr "Filterreegelen"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Ongëltege regulären Ausdrock: %(error)s"
#: documents/serialisers.py:177
msgid "Invalid color."
msgstr "Ongëlteg Faarf."
#: documents/serialisers.py:451
#, python-format
msgid "File type %(type)s not supported"
msgstr "Fichierstyp %(type)s net ënnerstëtzt"
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng gëtt gelueden..."
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng ofgemellt"
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Dir hutt Iech erfollegräich ofgemellt. Bis geschwënn!"
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Nees umellen"
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Umeldung bei Paperless-ng"
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "W. e. g. umellen."
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Äre Benotzernumm a Passwuert stëmmen net iwwereneen. Probéiert w. e. g. nach emol."
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Benotzernumm"
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Passwuert"
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Umellen"
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Englesch (USA)"
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Englesch (GB)"
#: paperless/settings.py:305
msgid "German"
msgstr "Däitsch"
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Hollännesch"
#: paperless/settings.py:307
msgid "French"
msgstr "Franséisch"
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portugisesch (Brasilien)"
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Portugisesch"
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italienesch"
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Rumänesch"
#: paperless/settings.py:312
msgid "Russian"
msgstr "Russesch"
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Spuenesch"
#: paperless/settings.py:314
msgid "Polish"
msgstr "Polnesch"
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Schwedesch"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Paperless-ng-Administratioun"
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Authentifizéierung"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Erweidert Astellungen"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filter"
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless wäert nëmmen E-Maile veraarbechten, fir déi all déi hei definéiert Filteren zoutreffen."
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Aktiounen"
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "D'Aktioun, déi op E-Mailen applizéiert sill ginn. Dës Aktioun gëtt just ausgefouert, wann Dokumenter aus der E-Mail veraarbecht goufen. E-Mailen ouni Unhank bleiwe komplett onberéiert."
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadaten"
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Den Dokumenter, déi iwwer dës Reegel veraarbecht ginn, automatesch Metadaten zouweisen. Wann hei keng Etiketten, Typen oder Korrespondenten zougewise ginn, veraarbecht Paperless-ng trotzdeem all zoutreffend Reegelen déi definéiert sinn."
#: paperless_mail/apps.py:9
msgid "Paperless mail"
msgstr "Paperless E-Mail"
#: paperless_mail/models.py:11
msgid "mail account"
msgstr "Mailkont"
#: paperless_mail/models.py:12
msgid "mail accounts"
msgstr "Mailkonten"
#: paperless_mail/models.py:19
msgid "No encryption"
msgstr "Keng Verschlësselung"
#: paperless_mail/models.py:20
msgid "Use SSL"
msgstr "SSL benotzen"
#: paperless_mail/models.py:21
msgid "Use STARTTLS"
msgstr "STARTTLS benotzen"
#: paperless_mail/models.py:29
msgid "IMAP server"
msgstr "IMAP-Server"
#: paperless_mail/models.py:33
msgid "IMAP port"
msgstr "IMAP-Port"
#: paperless_mail/models.py:36
msgid "This is usually 143 for unencrypted and STARTTLS connections, and 993 for SSL connections."
msgstr "Dëst ass normalerweis 143 fir onverschësselt oder STARTTLS-Connectiounen an 993 fir SSL-Connectiounen."
#: paperless_mail/models.py:40
msgid "IMAP security"
msgstr "IMAP-Sécherheet"
#: paperless_mail/models.py:46
msgid "username"
msgstr "Benotzernumm"
#: paperless_mail/models.py:50
msgid "password"
msgstr "Passwuert"
#: paperless_mail/models.py:54
msgid "character set"
msgstr "Zeechesaz"
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Den Zeechesaz dee benotzt gëtt wa mam Mailserver kommunizéiert gëtt, wéi beispillsweis 'UTF-8' oder 'US-ASCII'."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "E-Mail-Reegel"
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "E-Mail-Reegelen"
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Just Unhäng veraarbechten."
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "All d'Fichiere veraarbechten, inklusiv \"inline\"-Unhäng."
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Als gelies markéieren, gelies Mailen net traitéieren"
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Als wichteg markéieren, markéiert E-Mailen net veraarbechten"
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "An e virdefinéierten Dossier réckelen"
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Läschen"
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Sujet als TItel notzen"
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Numm vum Dateiunhank als Titel benotzen"
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Kee Korrespondent zouweisen"
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "E-Mail-Adress benotzen"
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Numm benotzen (oder E-Mail-Adress falls den Numm net disponibel ass)"
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Korrespondent benotzen deen hei drënner ausgewielt ass"
#: paperless_mail/models.py:121
msgid "order"
msgstr "Reiefolleg"
#: paperless_mail/models.py:128
msgid "account"
msgstr "Kont"
#: paperless_mail/models.py:132
msgid "folder"
msgstr "Dossier"
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Ënnerdossiere mussen duerch Punkte getrennt ginn."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "Ofsenderfilter"
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "Sujets-Filter"
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "Contenu-Filter"
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "Filter fir den Numm vum Unhank"
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Just Dokumenter traitéieren, déi exakt dësen Dateinumm hunn (falls definéiert). Platzhalter wéi *.pdf oder *invoice* sinn erlaabt. D'Grouss-/Klengschreiwung gëtt ignoréiert."
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "Maximalen Alter"
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "An Deeg."
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "Fichierstyp vum Unhank"
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "\"Inline\"-Unhänk schléissen och agebonne Biller mat an, dofir sollt dës Astellung mat engem Filter fir den Numm vum Unhank kombinéiert ginn."
#: paperless_mail/models.py:169
msgid "action"
msgstr "Aktioun"
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "Parameter fir Aktioun"
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Zousätzleche Parameter fir d'Aktioun déi hei driwwer ausgewielt ass, zum Beispill den Numm vum Zildossier fir d'Aktioun \"An e virdefinéierten Dossier réckelen\". Ënnerdossiere musse mat Punkte getrennt ginn."
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "Titel zouweisen aus"
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "dës Etikett zouweisen"
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "Dësen Dokumententyp zouweisen"
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "Korrespondent zouweisen aus"
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "Dëse Korrespondent zouweisen"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 11:47\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-05-22 10:12\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -23,7 +23,7 @@ msgstr "Documenten"
#: documents/models.py:32
msgid "Any word"
msgstr "Eender welk woord"
msgstr "Elk woord"
#: documents/models.py:33
msgid "All words"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automatisch"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "naam"
@@ -76,19 +76,19 @@ msgstr "Kleur"
#: documents/models.py:87
msgid "is inbox tag"
msgstr "is \"Postvak in\"-etiket"
msgstr "is \"Postvak in\"-label"
#: documents/models.py:89
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Markeer dit etiket als een \"Postvak in\"-etiket: alle nieuw verwerkte documenten krijgen de \"Postvak in\"-etiketten."
msgstr "Markeert dit label als een \"Postvak in\"-label: alle nieuw verwerkte documenten krijgen de \"Postvak in\"-labels."
#: documents/models.py:94
msgid "tag"
msgstr "etiket"
msgstr "label"
#: documents/models.py:95 documents/models.py:151
msgid "tags"
msgstr "etiketten"
msgstr "labels"
#: documents/models.py:101 documents/models.py:133
msgid "document type"
@@ -128,7 +128,7 @@ msgstr "checksum"
#: documents/models.py:159
msgid "The checksum of the original document."
msgstr "Het controlecijfer van het originele document."
msgstr "De checksum van het oorspronkelijke document."
#: documents/models.py:163
msgid "archive checksum"
@@ -280,11 +280,11 @@ msgstr "zit in \"Postvak in\""
#: documents/models.py:379
msgid "has tag"
msgstr "heeft etiket"
msgstr "heeft label"
#: documents/models.py:380
msgid "has any tag"
msgstr "heeft één van de etiketten"
msgstr "heeft één van de labels"
#: documents/models.py:381
msgid "created before"
@@ -324,7 +324,7 @@ msgstr "gewijzigd na"
#: documents/models.py:390
msgid "does not have tag"
msgstr "heeft geen etiket"
msgstr "heeft geen label"
#: documents/models.py:391
msgid "does not have ASN"
@@ -372,121 +372,133 @@ msgstr "Ongeldig kleur."
msgid "File type %(type)s not supported"
msgstr "Bestandstype %(type)s niet ondersteund"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng is aan het laden..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng - afmelden"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Je bent nu afgemeld. Tot later!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Meld je opnieuw aan"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Paperless-ng - aanmelden"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Gelieve aan te melden."
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Je gebruikersnaam en wachtwoord komen niet overeen. Probeer opnieuw."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Gebruikersnaam"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Wachtwoord"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Aanmelden"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Engels (US)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Engels (Brits)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Duits"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Nederlands"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Frans"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portugees (Brazilië)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Portugees"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italiaans"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Roemeens"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "Russisch"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Spaans"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr ""
msgstr "Pools"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Zweeds"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Paperless-ng administratie"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Authenticatie"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Geavanceerde instellingen"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filter"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless verwerkt alleen e-mails die voldoen aan ALLE onderstaande filters."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Acties"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "De actie die wordt toegepast op de mail. Deze actie wordt alleen uitgevoerd wanneer documenten verwerkt werden uit de mail. Mails zonder bijlage blijven onaangeroerd."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadata"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Automatisch metadata toewijzen aan documenten vanuit deze regel. Indien je geen etiketten, documenttypes of correspondenten toewijst, zal Paperless nog steeds alle regels verwerken die je hebt gedefinieerd."
msgstr "Automatisch metadata toewijzen aan documenten vanuit deze regel. Indien je geen labels, documenttypes of correspondenten toewijst, zal Paperless nog steeds alle regels verwerken die je hebt gedefinieerd."
#: paperless_mail/apps.py:9
msgid "Paperless mail"
@@ -536,139 +548,151 @@ msgstr "gebruikersnaam"
msgid "password"
msgstr "wachtwoord"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr "Tekenset"
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Tekenset die gebruikt moet worden bij communicatie met de mailserver, zoals 'UTF-8' of 'US-ASCII'."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "email-regel"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "email-regels"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Alleen bijlagen verwerken"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Verwerk alle bestanden, inclusief 'inline' bijlagen."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Markeer als gelezen, verwerk geen gelezen mails"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Markeer de mail, verwerk geen mails met markering"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Verplaats naar gegeven map"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Verwijder"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Gebruik onderwerp als titel"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Gebruik naam van bijlage als titel"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Wijs geen correspondent toe"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Gebruik het email-adres"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Gebruik de naam, en anders het email-adres"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Gebruik de hieronder aangeduide correspondent"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "volgorde"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "account"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "map"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Submappen moeten gescheiden worden door punten."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filter afzender"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filter onderwerp"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filter inhoud"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "Filter bestandsnaam van bijlage"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Alleen documenten verwerken die volledig overeenkomen, indien aangegeven. Je kunt jokertekens gebruiken, zoals *.pdf of *factuur*. Dit is niet hoofdlettergevoelig."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "Maximale leeftijd"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Aangegeven in dagen"
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "Type bijlage"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "\"Inline\" bijlagen bevatten vaak ook afbeeldingen. In dit geval valt het aan te raden om ook een filter voor de bestandsnaam op te geven."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "actie"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "actie parameters"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Extra parameters voor de hierboven gekozen actie, met andere woorden: de bestemmingsmap voor de verplaats-actie."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Extra parameter voor de hierboven geselecteerde actie, bijvoorbeeld: de doelmap voor de \"verplaats naar map\"-actie. Submappen moeten gescheiden worden door punten."
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "wijs titel toe van"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "wijs dit etiket toe"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "wijs dit documenttype toe"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "wijs correspondent toe van"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "wijs deze correspondent toe"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 14:46\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-08-07 13:02\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automatyczny"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "nazwa"
@@ -372,119 +372,131 @@ msgstr "Nieprawidłowy kolor."
msgid "File type %(type)s not supported"
msgstr "Typ pliku %(type)s nie jest obsługiwany"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Ładowanie Paperless-ng..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Wylogowano z Paperless-ng"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Poprawnie wylogowano. Do zobaczenia!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Zaloguj się ponownie"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Logowanie do Paperless-ng"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Proszę się zalogować."
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Twoja nazwa użytkownika i hasło nie są zgodne. Spróbuj ponownie."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Użytkownik"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Hasło"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Zaloguj się"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Angielski (USA)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Angielski (Wielka Brytania)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Niemiecki"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Holenderski"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Francuski"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portugalski (Brazylia)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Portugalski"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Włoski"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Rumuński"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "Rosyjski"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Hiszpański"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr "Polski"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Szwedzki"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Administracja Paperless-ng"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Uwierzytelnianie"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Ustawienia zaawansowane"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filtry"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless przetworzy tylko wiadomości pasujące do WSZYSTKICH filtrów podanych poniżej."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Akcje"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "Akcja zastosowana do wiadomości. Ta akcja jest wykonywana tylko wtedy, gdy dokumenty zostały przetworzone z wiadomości. Poczta bez załączników pozostanie całkowicie niezmieniona."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadane"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Przypisz metadane do dokumentów zużywanych z tej reguły automatycznie. Jeśli nie przypisujesz tutaj tagów, typów lub korespondentów, Paperless będzie nadal przetwarzał wszystkie zdefiniowane przez Ciebie reguły."
@@ -536,139 +548,151 @@ msgstr "nazwa użytkownika"
msgid "password"
msgstr "hasło"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr "Kodowanie"
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Zestaw znaków używany podczas komunikowania się z serwerem poczty, np. \"UTF-8\" lub \"US-ASCII\"."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "reguła wiadomości"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "reguły wiadomości"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Przetwarzaj tylko załączniki."
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Przetwarzaj wszystkie pliki, łącznie z załącznikami „inline”."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Oznacz jako przeczytane, nie przetwarzaj przeczytanych wiadomości"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Oznacz wiadomość, nie przetwarzaj oznaczonych wiadomości"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Przenieś do określonego folderu"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Usuń"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Użyj tematu jako tytułu"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Użyj nazwy pliku załącznika jako tytułu"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Nie przypisuj korespondenta"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Użyj adresu e-mail"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Użyj nazwy nadawcy (lub adresu e-mail, jeśli jest niedostępna)"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Użyj korespondenta wybranego poniżej"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "kolejność"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "konto"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "folder"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Podfoldery muszą być oddzielone kropkami."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filtruj po nadawcy"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filtruj po temacie"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filtruj po treści"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "filtruj po nazwie pliku załącznika"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Przetwarzaj tylko dokumenty, które całkowicie pasują do tej nazwy pliku, jeśli jest podana. Wzorce dopasowania jak *.pdf lub *faktura* są dozwolone. Wielkość liter nie jest rozróżniana."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "nie starsze niż"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "dni."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "typ załącznika"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Załączniki typu \"inline\" zawierają osadzone obrazy, więc najlepiej połączyć tę opcję z filtrem nazwy pliku."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "akcja"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "parametr akcji"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Dodatkowy parametr dla akcji wybranej powyżej, tj. docelowy folder akcji \"Przenieś do określonego folderu\"."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Dodatkowy parametr dla akcji wybranej powyżej, tj. docelowy folder akcji \"Przenieś do określonego folderu\". Podfoldery muszą być oddzielone kropkami."
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "przypisz tytuł"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "przypisz ten tag"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "przypisz ten typ dokumentu"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "przypisz korespondenta z"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "przypisz tego korespondenta"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 11:47\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-05-16 10:09\n"
"Last-Translator: \n"
"Language-Team: Portuguese, Brazilian\n"
"Language: pt_BR\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automático"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "nome"
@@ -372,119 +372,131 @@ msgstr "Cor inválida."
msgid "File type %(type)s not supported"
msgstr "Tipo de arquivo %(type)s não suportado"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng está carregando..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng saiu"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Sua sessão foi encerrada com sucesso. Até mais!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Entre novamente"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Entrar no Paperless-ng"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Por favor, entre na sua conta"
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Seu usuário e senha estão incorretos. Por favor, tente novamente."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Usuário"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Senha"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Entrar"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Inglês (EUA)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Inglês (GB)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Alemão"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Holandês"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Francês"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Português (Brasil)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr ""
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Romeno"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr ""
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr ""
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr ""
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr ""
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Administração do Paperless-ng"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr ""
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr ""
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filtro"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless processará somente e-mails que se encaixam em TODOS os filtros abaixo."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Ações"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "A ação se aplica ao e-mail. Essa ação só é executada quando documentos foram consumidos do e-mail. E-mails sem anexos permanecerão intactos."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadados"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Atribua metadados aos documentos consumidos por esta regra automaticamente. Se você não atribuir etiquetas, tipos ou correspondentes aqui, paperless ainda sim processará todas as regras de detecção que você definiu."
@@ -536,140 +548,152 @@ msgstr "usuário"
msgid "password"
msgstr "senha"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr ""
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr ""
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "regra de e-mail"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "regras de e-mail"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Processar somente anexos."
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Processar todos os arquivos, incluindo anexos 'inline'."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Marcar como lido, não processar e-mails lidos"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Sinalizar o e-mail, não processar e-mails sinalizados"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Mover para pasta especificada"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Excluir"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Usar assunto como título"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Usar nome do arquivo anexo como título"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Não atribuir um correspondente"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Usar endereço de e-mail"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Usar nome (ou endereço de e-mail se não disponível)"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Usar correspondente selecionado abaixo"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "ordem"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "conta"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "pasta"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filtrar de"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filtrar assunto"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filtrar corpo"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "filtrar nome do arquivo anexo"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Consumir somente documentos que correspondem a este nome de arquivo se especificado.\n"
"Curingas como *.pdf ou *invoice* são permitidos. Sem diferenciação de maiúsculas e minúsculas."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "idade máxima"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Especificada em dias."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "tipo de anexo"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Anexos inline incluem imagens inseridas, por isso é melhor combinar essa opção com um filtro de nome de arquivo."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "ação"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "parâmetro da ação"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Parâmetro adicional para a ação selecionada acima, por exemplo: a pasta de destino da ação de mover pasta."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "atribuir título de"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "atribuir esta etiqueta"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "atribuir este tipo de documento"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "atribuir correspondente de"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "atribuir este correspondente"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 21:56\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-05-16 20:45\n"
"Last-Translator: \n"
"Language-Team: Portuguese\n"
"Language: pt_PT\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automático"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "nome"
@@ -372,119 +372,131 @@ msgstr "Cor invalida."
msgid "File type %(type)s not supported"
msgstr "Tipo de arquivo %(type)s não suportado"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "O paperless-ng está a carregar..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng com sessão terminada"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Terminou a sessão com sucesso. Adeus!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Iniciar sessão novamente"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Inicio de sessão Paperless-ng"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Por favor inicie sessão."
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "O utilizador e a senha não correspondem. Tente novamente."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Nome de utilizador"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Palavra-passe"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Iniciar sessão"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Inglês (EUA)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "English (GB)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Deutsch"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Nederlandse"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Français"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Português (Brasil)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Português"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italiano"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Romeno"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "Russo"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Espanhol"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr "Polaco"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Sueco"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Administração do Paperless-ng"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Autenticação"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Definições avançadas"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filtro"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "O Paperless apenas irá processar emails que coincidem com TODOS os filtros dados abaixo."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Ações"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "A ação aplicada a correio. Esta ação apenas será efetuada com documentos que tenham sido consumidos através do correio. E-mails sem anexos permanecerão intactos."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadados"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Atribuir meta-dados aos documentos consumidos automaticamente através desta regra. Se você não atribuir etiquetas, tipos ou correspondentes aqui, o paperless ainda assim processará todas as regras correspondentes que tenha definido."
@@ -536,139 +548,151 @@ msgstr "nome de utilizador"
msgid "password"
msgstr "palavra-passe"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr "conjunto de caracteres"
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "O conjunto de caracteres a utilizar ao comunicar com um servidor de email, tal como 'UTF-8' ou 'US-ASCII'."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "regra de correio"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "regras de correio"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Processar anexos apenas."
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Processar todos os ficheiros, incluindo ficheiros 'embutidos (inline)'."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Marcar como lido, não processar emails lidos"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Marcar o email, não processar emails marcados"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Mover para uma diretoria específica"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Excluir"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Utilizar o assunto como título"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Utilizar o nome do anexo como título"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Não atribuir um correspondente"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Utilizar o endereço de email"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Utilizar nome (ou endereço de email se não disponível)"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Utilizar o correspondente selecionado abaixo"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "ordem"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "conta"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "directoria"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Sub-pastas devem ser separadas por pontos."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filtrar de"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filtrar assunto"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filtrar corpo"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "filtrar nome do arquivo anexo"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Consumir apenas documentos que correspondam inteiramente ao nome de arquivo se especificado. Genéricos como *.pdf ou *fatura* são permitidos. Não é sensível a letras maiúsculas/minúsculas."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "idade máxima"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Especificado em dias."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "tipo de anexo"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Anexos embutidos incluem imagens incorporadas, por isso é melhor combinar esta opção com um filtro de nome do arquivo."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "ação"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "parâmetro de ação"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Parâmetro adicional para a ação selecionada acima, isto é, a diretoria de destino do movimento da ação para a pasta."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Parâmetros adicionais para a ação selecionada acima, isto é, a pasta alvo da ação mover para pasta. Sub-pastas devem ser separadas por pontos."
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "atribuir titulo de"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "atribuir esta etiqueta"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "atribuir este tipo de documento"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "atribuir correspondente de"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "atribuir este correspondente"

View File

@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: paperless-ng\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-04-17 13:41+0200\n"
"PO-Revision-Date: 2021-04-17 11:46\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-08-16 09:06\n"
"Last-Translator: \n"
"Language-Team: Romanian\n"
"Language: ro_RO\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "Automat"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:109
#: paperless_mail/models.py:117
msgid "name"
msgstr "nume"
@@ -336,11 +336,11 @@ msgstr "titlul sau conținutul conține"
#: documents/models.py:393
msgid "fulltext query"
msgstr ""
msgstr "query fulltext"
#: documents/models.py:394
msgid "more like this"
msgstr ""
msgstr "mai multe ca aceasta"
#: documents/models.py:405
msgid "rule type"
@@ -372,119 +372,131 @@ msgstr "Culoare invalidă."
msgid "File type %(type)s not supported"
msgstr "Tip de fișier %(type)s nesuportat"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng se încarca..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng s-a deconectat"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Ați fost deconectat cu succes. La revedere!"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Conectați-vă din nou"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Conectare Paperless-ng"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Vă rugăm conectați-vă."
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Numele si parola nu sunt corecte. Vă rugăm incercați din nou."
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Nume"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Parolă"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Conectare"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Engleză (Americană)"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Engleză (Britanică)"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "Germană"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Olandeză"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "Franceză"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portugheză (Brazilia)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Portugheză"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italiană"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Română"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "Rusă"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Spaniolă"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr ""
msgstr "Poloneză"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Suedeză"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Administrare Paperless-ng"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Autentificare"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Setări avansate"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "Filtru"
#: paperless_mail/admin.py:27
#: paperless_mail/admin.py:39
msgid "Paperless will only process mails that match ALL of the filters given below."
msgstr "Paperless va procesa doar mail-urile care corespund TUTUROR filtrelor date mai jos."
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Acțiuni"
#: paperless_mail/admin.py:39
#: paperless_mail/admin.py:51
msgid "The action applied to the mail. This action is only performed when documents were consumed from the mail. Mails without attachments will remain entirely untouched."
msgstr "Acțiunea aplicată tuturor email-urilor. Aceasta este realizată doar când sunt consumate documente din email. Cele fara atașamente nu vor fi procesate."
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadate"
#: paperless_mail/admin.py:48
#: paperless_mail/admin.py:60
msgid "Assign metadata to documents consumed from this rule automatically. If you do not assign tags, types or correspondents here, paperless will still process all matching rules that you have defined."
msgstr "Atribuie metadate documentelor consumate prin aceasta regula în mod automat. Chiar dacă nu sunt atribuite etichete, tipuri sau corespondenți, Paperless va procesa toate regulile definite care se potrivesc."
@@ -536,139 +548,151 @@ msgstr "nume"
msgid "password"
msgstr "parolă"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr "Set de caractere"
#: paperless_mail/models.py:57
msgid "The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'."
msgstr "Setul de caractere folosit la comunicarea cu serverul de e-mail, cum ar fi \"UTF-8\" sau \"US-ASCII\"."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "regulă email"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "reguli email"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Procesează doar atașamentele."
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Procesează toate fișierele, inclusiv atașamentele „inline”."
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Marchează ca citit, nu procesa email-uri citite"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Marchează, nu procesa email-uri marcate"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Mută în directorul specificat"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Șterge"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Utilizează subiectul ca titlu"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Utilizează numele fișierului atașat ca titlu"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Nu atribui un corespondent"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Folosește adresa de email"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Folosește numele (dacă nu exista, folosește adresa de email)"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Folosește corespondentul selectat mai jos"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "ordonează"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "cont"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "director"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Subdosarele trebuie separate prin puncte."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filtrează de la"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filtrează subiect"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filtrează corpul email-ului"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "filtrează numele fișierului atașat"
#: paperless_mail/models.py:140
#: paperless_mail/models.py:150
msgid "Only consume documents which entirely match this filename if specified. Wildcards such as *.pdf or *invoice* are allowed. Case insensitive."
msgstr "Consumă doar documentele care se potrivesc în întregime cu acest nume de fișier, dacă este specificat. Simbolul * ține locul oricărui șir de caractere. Majusculele nu contează."
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "vârsta maximă"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Specificată in zile."
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "tip atașament"
#: paperless_mail/models.py:154
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Atașamentele \"inline\" includ și imaginile încorporate, deci această opțiune funcționează cel mai bine combinată cu un filtru pentru numele fișierului."
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "acţiune"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "parametru acțiune"
#: paperless_mail/models.py:167
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Parametru adițional pentru acțiunea definită mai sus (ex. directorul în care să se realizeze o mutare)."
#: paperless_mail/models.py:177
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots."
msgstr "Parametru adițional pentru acțiunea definită mai sus (ex. directorul în care să se realizeze o mutare). Subdosarele trebuie separate prin puncte."
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "atribuie titlu din"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "atribuie această etichetă"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "atribuie acest tip"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "atribuie corespondent din"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "atribuie acest corespondent"

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