Compare commits

...

71 Commits

Author SHA1 Message Date
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
Stéphane Brunner
dc26c9b7cc Add --no-progress-bar option to commands 2021-04-18 16:16:11 +02:00
98 changed files with 5907 additions and 1514 deletions

View File

@@ -36,11 +36,13 @@ RUN apt-get update \
&& 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 \
# fixes sudo / gosu issues
libseccomp2 \
# Mime type detection
file \
libmagic-dev \
media-types \
# OCRmyPDF dependencies
# OCRmyPDF dependencies
liblept5 \
qpdf \
tesseract-ocr \

View File

@@ -40,7 +40,7 @@ whitenoise = "~=5.2.0"
watchdog = "~=1.0.0"
whoosh="~=2.7.4"
inotifyrecursive = "~=0.3.4"
ocrmypdf = "~=11.6"
ocrmypdf = "~=12.0"
tqdm = "*"
tika = "*"
# TODO: This will sadly also install daphne+dependencies,

326
Pipfile.lock generated
View File

@@ -1,7 +1,7 @@
{
"_meta": {
"hash": {
"sha256": "6dd5af1c2a4025ca82cf6092121f4571fda57df7c47e028b8c25da20ef7e16cd"
"sha256": "2da6572956d27205c496da2ef5f584a9ba53b5f6b3c8bf1724211dc48bfac7b7"
},
"pipfile-spec": 6,
"requires": {},
@@ -28,11 +28,11 @@
},
"arrow": {
"hashes": [
"sha256:3515630f11a15c61dcb4cdd245883270dd334c83f3e639824e65a4b79cc48543",
"sha256:399c9c8ae732270e1aa58ead835a79a40d7be8aa109c579898eb41029b5a231d"
"sha256:8cbe6a629b1c54ae11b52d6d9e70890089241958f63bc59467e277e34b7a5378",
"sha256:b8fe13abf3517abab315e09350c903902d1447bd311afbc17547ba1cb3ff5bd8"
],
"markers": "python_version >= '3.6'",
"version": "==1.0.3"
"version": "==1.1.0"
},
"asgiref": {
"hashes": [
@@ -52,11 +52,11 @@
},
"attrs": {
"hashes": [
"sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
"sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
"sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1",
"sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==20.3.0"
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==21.2.0"
},
"autobahn": {
"hashes": [
@@ -225,11 +225,11 @@
},
"django": {
"hashes": [
"sha256:0604e84c4fb698a5e53e5857b5aea945b2f19a18f25f10b8748dbdf935788927",
"sha256:21f0f9643722675976004eb683c55d33c05486f94506672df3d6a141546f389d"
"sha256:13ac78dbfd189532cad8f383a27e58e18b3d33f80009ceb476d7fcbfc5dcebd8",
"sha256:7e0a1393d18c16b503663752a8b6790880c5084412618990ce8a81cc908b4962"
],
"index": "pypi",
"version": "==3.2"
"version": "==3.2.3"
},
"django-cors-headers": {
"hashes": [
@@ -241,11 +241,11 @@
},
"django-extensions": {
"hashes": [
"sha256:081828e985485662f62a22340c1506e37989d14b927652079a5b7cd84a82368b",
"sha256:17f85f4dcdd5eea09b8c4f0bad8f0370bf2db6d03e61b431fa7103fee29888de"
"sha256:50de8977794a66a91575dd40f87d5053608f679561731845edbd325ceeb387e3",
"sha256:5f0fea7bf131ca303090352577a9e7f8bfbf5489bd9d9c8aea9401db28db34a0"
],
"index": "pypi",
"version": "==3.1.2"
"version": "==3.1.3"
},
"django-filter": {
"hashes": [
@@ -301,6 +301,7 @@
"gunicorn": {
"hashes": [
"sha256:8d737657cdd62f483d482ee65cf9cc6a64d5b2199674f8b174803be9065e5d60",
"sha256:9dcc4547dbb1cb284accfb15ab5667a0e5d1881cc443e0677b4882a4067a807e",
"sha256:e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8"
],
"index": "pypi",
@@ -364,22 +365,25 @@
},
"httptools": {
"hashes": [
"sha256:0a4b1b2012b28e68306575ad14ad5e9120b34fccd02a81eb08838d7e3bbb48be",
"sha256:3592e854424ec94bd17dc3e0c96a64e459ec4147e6d53c0a42d0ebcef9cb9c5d",
"sha256:41b573cf33f64a8f8f3400d0a7faf48e1888582b6f6e02b82b9bd4f0bf7497ce",
"sha256:56b6393c6ac7abe632f2294da53f30d279130a92e8ae39d8d14ee2e1b05ad1f2",
"sha256:7f6c82262d3bdde886a29ae0d65d4fae6b3ac6fba763891ddb72e72e1dbe7075",
"sha256:86c6acd66765a934e8730bf0e9dfaac6fdcf2a4334212bd4a0a1c78f16475ca6",
"sha256:96da81e1992be8ac2fd5597bf0283d832287e20cb3cfde8996d2b00356d4e17f",
"sha256:96eb359252aeed57ea5c7b3d79839aaa0382c9d3149f7d24dd7172b1bcecb009",
"sha256:a2719e1d7a84bb131c4f1e0cb79705034b48de6ae486eb5297a139d6a3296dce",
"sha256:ac0aa11e99454b6a66989aa2d44bca41d4e0f968e395a0a8f164b401fefe359a",
"sha256:bc3114b9edbca5a1eb7ae7db698c669eb53eb8afbbebdde116c174925260849c",
"sha256:cb46a65a0ed99c38dfcbf9f5be8be6cf9cb497e527505fefac7cbd38a467f3c6",
"sha256:fa3cd71e31436911a44620473e873a256851e1f53dee56669dae403ba41756a4",
"sha256:fea04e126014169384dee76a153d4573d90d0cbd1d12185da089f73c78390437"
"sha256:07659649fe6b3948b6490825f89abe5eb1cec79ebfaaa0b4bf30f3f33f3c2ba8",
"sha256:08b79e09114e6ab5c3dbf560bba2cb2257ea38cdaeaf99b7cb80d8f92622fcd9",
"sha256:1e35aa179b67086cc600a984924a88589b90793c9c1b260152ca4908786e09df",
"sha256:31629e1f1b89959f8c0927bad12184dc07977dcf71e24f4772934aa490aa199b",
"sha256:7792e70ead1d220142a99dde049fdbeddc66fe822953e085d02cd5155c38cdad",
"sha256:851026bd63ec0af7e7592890d97d15c92b62d9e17094353f19a52c8e2b33710a",
"sha256:8fcca4b7efe353b13a24017211334c57d055a6e132c7adffed13a10d28efca57",
"sha256:9abd788465aa46a0f288bd3a99e53edd184177d6379e2098fd6097bb359ad9d6",
"sha256:aebdf0bd7bf7c90ae6b3be458692bf6e9e5b610b501f9f74c7979015a51db4c4",
"sha256:bda99a5723e7eab355ce57435c70853fc137a65aebf2f1cd4d15d96e2956da7b",
"sha256:c1c63d860749841024951b0a78e4dec6f543d23751ef061d6ab60064c7b8b524",
"sha256:c4111a0a8a00eff1e495d43ea5230aaf64968a48ddba8ea2d5f982efae827404",
"sha256:dce59ee45dd6ee6c434346a5ac527c44014326f560866b4b2f414a692ee1aca8",
"sha256:f759717ca1b2ef498c67ba4169c2b33eecf943a89f5329abcff8b89d153eb500",
"sha256:f9545ff74bdf8a6e013ed18af3e24c656c06b6ca2441074be2f6cc28e24f48de",
"sha256:fb7199b8fb0c50a22e77260bb59017e0c075fa80cb03bb2c8692de76e7bb7fe7",
"sha256:fbf7ecd31c39728f251b1c095fd27c84e4d21f60a1d079a0333472ff3ae59d34"
],
"version": "==0.1.1"
"version": "==0.1.2"
},
"humanfriendly": {
"hashes": [
@@ -407,18 +411,18 @@
},
"imap-tools": {
"hashes": [
"sha256:00fa5b5046c0437976ad7dd5e45b1847bfd5d14bb858c9b19a5cf2994bba96d9",
"sha256:3b4d0a911bc48ea7c0beac6a15b6f65b6fdf2b066a67cd3536253ec98e401e83"
"sha256:3b15cea943ee84072ed6f3424df138aa1908dcee7d368ad81843e2166b8283e0",
"sha256:e4f47bcea98db7502efae4da973c7dded8b632b57bf4acf1d317742701bfb571"
],
"index": "pypi",
"version": "==0.39.0"
"version": "==0.41.0"
},
"img2pdf": {
"hashes": [
"sha256:57905015579b1026acf1605aa95859cd79b051fa1c35485573d165526fc9dbb5",
"sha256:eaee690ab8403dd1a9cb4db10afee41dd3e6c7ed63bdace02a0121f9feadb0c9"
"sha256:38a1229ca84b211d7782d1d65ad7251a9781bf24f6f6497c738c755fcfed5552",
"sha256:e7eb85dc87062e308066f2b0a9dbfb3c5c0bd306dec0cf9130e3836c0547253a"
],
"version": "==0.4.0"
"version": "==0.4.1"
},
"incremental": {
"hashes": [
@@ -453,12 +457,12 @@
},
"langdetect": {
"hashes": [
"sha256:363795ea005f1243c958e953245dac5d814fabdc025c9afa91588c5fa6b2fa83",
"sha256:ae53a024643df713274c297c0795dbfb5a16b329902f8e543e7b2d7d45f699e4",
"sha256:f37495e63607865e47deed08d78f7f8e58172658216ff954b2f14671bcd87740"
"sha256:7cbc0746252f19e76f77c0b1690aadf01963be835ef0cd4b56dddf2a8f1dfc2a",
"sha256:87963db181db734abf00b1c463df5cadb3f9edad8efb334d3e52d5ad008d9cc7",
"sha256:cbc1fef89f8d062739774bd51eda3da3274006b3661d199c2655f6b3f6d605a0"
],
"index": "pypi",
"version": "==1.0.8"
"version": "==1.0.9"
},
"lxml": {
"hashes": [
@@ -466,18 +470,24 @@
"sha256:0fbcf5565ac01dff87cbfc0ff323515c823081c5777a9fc7703ff58388c258c3",
"sha256:122fba10466c7bd4178b07dba427aa516286b846b2cbd6f6169141917283aae2",
"sha256:1822d16e5ac9061749955d099ff50c6cbc068f8cbfde28dfbeea845f7fbe6e09",
"sha256:1b38116b6e628118dea5b2186ee6820ab138dbb1e24a13e478490c7db2f326ae",
"sha256:1b7584d421d254ab86d4f0b13ec662a9014397678a7c4265a02a6d7c2b18a75f",
"sha256:26e761ab5b07adf5f555ee82fb4bfc35bf93750499c6c7614bd64d12aaa67927",
"sha256:289e9ca1a9287f08daaf796d96e06cb2bc2958891d7911ac7cae1c5f9e1e0ee3",
"sha256:2a9d50e69aac3ebee695424f7dbd7b8c6d6eb7de2a2eb6b0f6c7db6aa41e02b7",
"sha256:3082c518be8e97324390614dacd041bb1358c882d77108ca1957ba47738d9d59",
"sha256:33bb934a044cf32157c12bfcfbb6649807da20aa92c062ef51903415c704704f",
"sha256:3439c71103ef0e904ea0a1901611863e51f50b5cd5e8654a151740fde5e1cade",
"sha256:36108c73739985979bf302006527cf8a20515ce444ba916281d1c43938b8bb96",
"sha256:39b78571b3b30645ac77b95f7c69d1bffc4cf8c3b157c435a34da72e78c82468",
"sha256:4289728b5e2000a4ad4ab8da6e1db2e093c63c08bdc0414799ee776a3f78da4b",
"sha256:4bff24dfeea62f2e56f5bab929b4428ae6caba2d1eea0c2d6eb618e30a71e6d4",
"sha256:4c61b3a0db43a1607d6264166b230438f85bfed02e8cff20c22e564d0faff354",
"sha256:542d454665a3e277f76954418124d67516c5f88e51a900365ed54a9806122b83",
"sha256:5a0a14e264069c03e46f926be0d8919f4105c1623d620e7ec0e612a2e9bf1c04",
"sha256:5c8c163396cc0df3fd151b927e74f6e4acd67160d6c33304e805b84293351d16",
"sha256:66e575c62792c3f9ca47cb8b6fab9e35bab91360c783d1606f758761810c9791",
"sha256:6f12e1427285008fd32a6025e38e977d44d6382cf28e7201ed10d6c1698d2a9a",
"sha256:74f69060f98a70e3654de3021cd8162859e0f30b9e69aed76ef2b7a2e3b84212",
"sha256:74f7d8d439b18fa4c385f3f5dfd11144bb87c1da034a466c5b5577d23a1d9b51",
"sha256:7610b8c31688f0b1be0ef882889817939490a36d0ee880ea562a4e1399c447a1",
@@ -491,10 +501,14 @@
"sha256:b007cbb845b28db4fb8b6a5cdcbf65bacb16a8bd328b53cbc0698688a68e1caa",
"sha256:bc4313cbeb0e7a416a488d72f9680fffffc645f8a838bd2193809881c67dd106",
"sha256:bccbfc27563652de7dc9bdc595cb25e90b59c5f8e23e806ed0fd623755b6565d",
"sha256:c47ff7e0a36d4efac9fd692cfa33fbd0636674c102e9e8d9b26e1b93a94e7617",
"sha256:c4f05c5a7c49d2fb70223d0d5bcfbe474cf928310ac9fa6a7c6dddc831d0b1d4",
"sha256:cdaf11d2bd275bf391b5308f86731e5194a21af45fbaaaf1d9e8147b9160ea92",
"sha256:ce256aaa50f6cc9a649c51be3cd4ff142d67295bfc4f490c9134d0f9f6d58ef0",
"sha256:d2e35d7bf1c1ac8c538f88d26b396e73dd81440d59c1ef8522e1ea77b345ede4",
"sha256:d916d31fd85b2f78c76400d625076d9124de3e4bda8b016d25a050cc7d603f24",
"sha256:df7c53783a46febb0e70f6b05df2ba104610f2fb0d27023409734a3ecbb78fb2",
"sha256:e1cbd3f19a61e27e011e02f9600837b921ac661f0c40560eefb366e4e4fb275e",
"sha256:efac139c3f0bf4f0939f9375af4b02c5ad83a622de52d6dfa8e438e8e01d0eb0",
"sha256:efd7a09678fd8b53117f6bae4fa3825e0a22b03ef0a932e070c0bdbb3a35e654",
"sha256:f2380a6376dfa090227b663f9678150ef27543483055cc327555fb592c5967e2",
@@ -582,11 +596,11 @@
},
"ocrmypdf": {
"hashes": [
"sha256:329b070959731c277f0df91cfe011dd4da0d6534f23a739a3aa77bdab00fbc2f",
"sha256:b63df1b6bf37f29b41cb07f0328240a235d84c3dffc3a32299c71fa94c92d419"
"sha256:3a757ac8bc4f822052a363c7fdc1e01e01033ae3e3398123990813eb6b3cf031",
"sha256:c18db17e18984f540eaa774245571e3ec63a74f459b6029de561a06a77e78310"
],
"index": "pypi",
"version": "==11.7.3"
"version": "==12.0.1"
},
"pathvalidate": {
"hashes": [
@@ -606,32 +620,32 @@
},
"pikepdf": {
"hashes": [
"sha256:14a93f2b61adc975453dfc9edf3335be704732a8750a009ba3d12913ff043abe",
"sha256:25ba3bf96eae3a7c897db5bf6a60b26ebde1c161145af73a044950901b754bcb",
"sha256:29742273f80e75c48e700c5438636fe78a856e1706e353ea57715732fb75fcd6",
"sha256:3790ed5b9d0db8c8bd28d96cb10b91649179eac04873ed23e6dc474515892cc3",
"sha256:3a76702b12f78abe591a6270756a56225a63a26c5a00aad8bc3ffd8680178ab2",
"sha256:56ce22cd134c96035abf984aa167a16e7c658c3ccc0cd626a7002f911eba7452",
"sha256:578e80adcd4703b752c381517853a074633baa219be4bd36d6752fb742a0f8b4",
"sha256:5b286e9862a21bbe9dfb0da827818f710a303d9b78f821710c37e8059839c7da",
"sha256:6b12c8835f52d07cb68f30d115e1361cd1143f1aa2c70f49ded6d69d9c4fcdd2",
"sha256:6e6dd17783c6cf038b179dcf662982d1cca891a3e30232aec0221cc69821b7f1",
"sha256:7e4e7e53781d85a609bdf899d585a39a69e9eedf2b9ac75261685a1aff0072ea",
"sha256:810488f80a1d93652498222f9d1391d9287b3b842971d7a8878e69a287c2476f",
"sha256:85ab867102d7c2182acf852c61ca60c90790bfbb4a939dc096054d904318ba37",
"sha256:8babd800331978d20d82ed1494868d15f5b953266c2b943a7d34e4826016e0b8",
"sha256:94f20e08cdfcba011440204fd9df381af1c423a9888dfd3287b66d9e7e1421bf",
"sha256:9d4a1cc8da1860d8772e831b03ea05386ae6a805718cd8621de736725d52a901",
"sha256:9f67e2c57413ac8be4eec5344c2bcaeb1a18c59fe348afd589d9b95bd4dfc077",
"sha256:b4c64ddc8fe9b11dc52f81d38076bd560ce97abf4695151d2eab390ae760fcac",
"sha256:b5d4431e77f32fd1edc10d214db89b33f2c7f8ceb7152a6651192ef90945db17",
"sha256:d3a0cf2dcc10cd7a7b877e955cfac7ddee6050860a39375f46218f7f1c02e903",
"sha256:dd551d5ff0e4c95537a366fb2281152c7293e60d60bf6ba909faba7d0ee669ad",
"sha256:dea790ae9809ab0ed0f5e32c938d36441f5ab3e74a884692ce84902e8ed1187b",
"sha256:fe47949abbf9f67416e545b0c61c8e75546f1ad8f4cfbe5ee608824258cdaa3e"
"sha256:087dc8e141dcfa0e76e93227a22f6b9cee000b3837b9e048ba96f389d0ee5d41",
"sha256:1bcf4e45a831b302a0b6ae6cbd41aa6c81f95964b1d61e8da41186a4a779f701",
"sha256:22d6615e742e7320a3a77148f65a8ba3591c054133faf6305a525c439b57cf38",
"sha256:24d51dcc2d73e5d123acab4fef5d611f545ff2ce16c837d85833364d4d2cda45",
"sha256:26a3af4845db89f364d18757978fad39ea852b6e7cae3137000a07c44d292b42",
"sha256:36e9d557ef0505a6ec335faf9b2c93d4d062daa339dd1a6cbcda2a6dc886b38e",
"sha256:417abdc29be8ddedabeb100a728b6525c5e1967ba47a03b9e0a81391efb4feb1",
"sha256:5e71dcefdd889538a289cdaa2bb4559e4477e3f17846ffbdfad54b0e76443cf5",
"sha256:62a6f2e2552bfd1bcd17b5e0e024db9ab7e93db39f43bb4246faff9b01154d47",
"sha256:7a054701104c601d72b5ab8b3025a44b1b400f334ee7259dbd4bb1a2c24dad03",
"sha256:7dcf6545c7deb2f6511a3b9220d56297b4165eeedc2eab785acba698cc9d95c0",
"sha256:82da7b5d5a57e4704f7a81e75324b07b19577a96e06f5c5d8a89b29dec814766",
"sha256:8cdafd18013b17f257655e95bfcb4ef14a7fc84a7334a9877b0532db4b55e3ff",
"sha256:a0ff0291f74ef45dd2a1e1316b7d6464b996351365debbf611a5293cf2ff2562",
"sha256:a2ef88f786aed79da559cd1a6a844f99e258971d64670bfba1efad96ed175fb0",
"sha256:a84bbc7b3f9819c1541913bac2781da40d9506255c1cedb7233f9027ce23db92",
"sha256:b1e0cfb6f5abe4d4863c55b2c9424340e5b44095789ef1368a0de99f8b4f852e",
"sha256:ca8efe77f1f44d3c1c0d738407b87816f1445438aa6873d45e58fdd595e96c98",
"sha256:d0f48252f23c128a3ddde16d98fa6567ac7fbce6792209771183b57c744106e1",
"sha256:e1d988ddf063d6abf3d71e7c5bc46e5690fdcf0b06d7f00fced5d0b908f92267",
"sha256:ec9d853c895693dd55b12ae37056808e192e5e2a8d2486cb30d19a5e7d6ff6a9",
"sha256:fcbb6e37426564ccaf6bb301616700277d426225895b00a64283a95ff648f3b9",
"sha256:ff29a8bd50f47554be7e062b3e1a2b466a7f567e1e49417dc62c3948b28304c7"
],
"index": "pypi",
"version": "==2.11.1"
"version": "==2.12.0"
},
"pillow": {
"hashes": [
@@ -794,11 +808,11 @@
},
"python-dotenv": {
"hashes": [
"sha256:471b782da0af10da1a80341e8438fca5fadeba2881c54360d5fd8d03d03a4f4a",
"sha256:49782a97c9d641e8a09ae1d9af0856cc587c8d2474919342d5104d85be9890b2"
"sha256:00aa34e92d992e9f8383730816359647f358f4a3be1ba45e5a5cefd27ee91544",
"sha256:b1ae5e9643d5ed987fc57cc2583021e38db531946518130777734f9589b3141f"
],
"index": "pypi",
"version": "==0.17.0"
"version": "==0.17.1"
},
"python-gnupg": {
"hashes": [
@@ -849,6 +863,7 @@
"sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183",
"sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541",
"sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb",
"sha256:8fc87fd1a1d30991d9198a4317e90dfaf3d2963c013608a019e8311568fa08b2",
"sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185",
"sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc",
"sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db",
@@ -1032,18 +1047,18 @@
},
"service-identity": {
"hashes": [
"sha256:001c0707759cb3de7e49c078a7c0c9cd12594161d3bf06b9c254fdcb1a60dc36",
"sha256:0858a54aabc5b459d1aafa8a518ed2081a285087f349fe3e55197989232e2e2d"
"sha256:6e6c6086ca271dc11b033d17c3a8bea9f24ebff920c587da090afc9519419d34",
"sha256:f0b0caac3d40627c3c04d7a51b6e06721857a0e10a8775f2d1d7e72901b3a7db"
],
"version": "==18.1.0"
"version": "==21.1.0"
},
"six": {
"hashes": [
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.15.0"
"version": "==1.16.0"
},
"sortedcontainers": {
"hashes": [
@@ -1312,19 +1327,19 @@
},
"attrs": {
"hashes": [
"sha256:31b2eced602aa8423c2aea9c76a724617ed67cf9513173fd3a4f03e3a929c7e6",
"sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"
"sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1",
"sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==20.3.0"
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==21.2.0"
},
"babel": {
"hashes": [
"sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5",
"sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"
"sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9",
"sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==2.9.0"
"version": "==2.9.1"
},
"certifi": {
"hashes": [
@@ -1342,6 +1357,9 @@
"version": "==4.0.0"
},
"coverage": {
"extras": [
"toml"
],
"hashes": [
"sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c",
"sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6",
@@ -1447,11 +1465,11 @@
},
"faker": {
"hashes": [
"sha256:26c7c3df8d46f1db595a34962f8967021dd90bbd38cc6e27461a3fb16cd413ae",
"sha256:44eb060fad3015690ff3fec6564d7171be393021e820ad1851d96cb968fbfcd4"
"sha256:73562fb99b6046c5d26b8dd98a1437a896f8601c96382d835c656166159f4f59",
"sha256:c6a4a0a1dde71f16d489a3097661a87ae96329dbde4c3ece8a5ccc340441ade1"
],
"markers": "python_version >= '3.6'",
"version": "==8.1.0"
"version": "==8.1.4"
},
"filelock": {
"hashes": [
@@ -1488,72 +1506,52 @@
},
"jinja2": {
"hashes": [
"sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419",
"sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"
"sha256:2f2de5285cf37f33d33ecd4a9080b75c87cd0c1994d5a9c6df17131ea1f049c6",
"sha256:ea8d7dd814ce9df6de6a761ec7f1cac98afe305b8cdc4aaae4e114b8d8ce24c5"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
"version": "==2.11.3"
"markers": "python_version >= '3.6'",
"version": "==3.0.0"
},
"markupsafe": {
"hashes": [
"sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473",
"sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161",
"sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235",
"sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5",
"sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42",
"sha256:19536834abffb3fa155017053c607cb835b2ecc6a3a2554a88043d991dffb736",
"sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f",
"sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39",
"sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff",
"sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b",
"sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014",
"sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f",
"sha256:3d61f15e39611aacd91b7e71d903787da86d9e80896e683c0103fced9add7834",
"sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1",
"sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e",
"sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183",
"sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66",
"sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b",
"sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1",
"sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15",
"sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1",
"sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85",
"sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1",
"sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e",
"sha256:7952deddf24b85c88dab48f6ec366ac6e39d2761b5280f2f9594911e03fcd064",
"sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b",
"sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905",
"sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850",
"sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0",
"sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735",
"sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d",
"sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb",
"sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e",
"sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d",
"sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c",
"sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1",
"sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2",
"sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21",
"sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2",
"sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5",
"sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7",
"sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b",
"sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8",
"sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6",
"sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193",
"sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f",
"sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b",
"sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f",
"sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2",
"sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5",
"sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c",
"sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032",
"sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7",
"sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be",
"sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"
"sha256:007dc055dbce5b1104876acee177dbfd18757e19d562cd440182e1f492e96b95",
"sha256:031bf79a27d1c42f69c276d6221172417b47cb4b31cdc73d362a9bf5a1889b9f",
"sha256:161d575fa49395860b75da5135162481768b11208490d5a2143ae6785123e77d",
"sha256:24bbc3507fb6dfff663af7900a631f2aca90d5a445f272db5fc84999fa5718bc",
"sha256:2efaeb1baff547063bad2b2893a8f5e9c459c4624e1a96644bbba08910ae34e0",
"sha256:31d4206caf9be06b8e7a85de4df933d159b4877d4fc308ca8192d97faf56a41e",
"sha256:32200f562daaab472921a11cbb63780f1654552ae49518196fc361ed8e12e901",
"sha256:3261fae28155e5c8634dd7710635fe540a05b58f160cef7713c7700cb9980e66",
"sha256:3b54a9c68995ef4164567e2cd1a5e16db5dac30b2a50c39c82db8d4afaf14f63",
"sha256:3c352ff634e289061711608f5e474ec38dbaa21e3e168820d53d5f4015e5b91b",
"sha256:3fb47f97f1d338b943126e90b79cad50d4fcfa0b80637b5a9f468941dbbd9ce5",
"sha256:441ce2a8c17683d97e06447fcbccbdb057cbf587c78eb75ae43ea7858042fe2c",
"sha256:45535241baa0fc0ba2a43961a1ac7562ca3257f46c4c3e9c0de38b722be41bd1",
"sha256:4aca81a687975b35e3e80bcf9aa93fe10cd57fac37bf18b2314c186095f57e05",
"sha256:4cc563836f13c57f1473bc02d1e01fc37bab70ad4ee6be297d58c1d66bc819bf",
"sha256:4fae0677f712ee090721d8b17f412f1cbceefbf0dc180fe91bab3232f38b4527",
"sha256:58bc9fce3e1557d463ef5cee05391a05745fd95ed660f23c1742c711712c0abb",
"sha256:664832fb88b8162268928df233f4b12a144a0c78b01d38b81bdcf0fc96668ecb",
"sha256:70820a1c96311e02449591cbdf5cd1c6a34d5194d5b55094ab725364375c9eb2",
"sha256:79b2ae94fa991be023832e6bcc00f41dbc8e5fe9d997a02db965831402551730",
"sha256:83cf0228b2f694dcdba1374d5312f2277269d798e65f40344964f642935feac1",
"sha256:87de598edfa2230ff274c4de7fcf24c73ffd96208c8e1912d5d0fee459767d75",
"sha256:8f806bfd0f218477d7c46a11d3e52dc7f5fdfaa981b18202b7dc84bbc287463b",
"sha256:90053234a6479738fd40d155268af631c7fca33365f964f2208867da1349294b",
"sha256:a00dce2d96587651ef4fa192c17e039e8cfab63087c67e7d263a5533c7dad715",
"sha256:a08cd07d3c3c17cd33d9e66ea9dee8f8fc1c48e2d11bd88fd2dc515a602c709b",
"sha256:a19d39b02a24d3082856a5b06490b714a9d4179321225bbf22809ff1e1887cc8",
"sha256:d00a669e4a5bec3ee6dbeeeedd82a405ced19f8aeefb109a012ea88a45afff96",
"sha256:dab0c685f21f4a6c95bfc2afd1e7eae0033b403dd3d8c1b6d13a652ada75b348",
"sha256:df561f65049ed3556e5b52541669310e88713fdae2934845ec3606f283337958",
"sha256:e4570d16f88c7f3032ed909dc9e905a17da14a1c4cfd92608e3fda4cb1208bbd",
"sha256:e77e4b983e2441aff0c0d07ee711110c106b625f440292dfe02a2f60c8218bd6",
"sha256:e79212d09fc0e224d20b43ad44bb0a0a3416d1e04cf6b45fed265114a5d43d20",
"sha256:f58b5ba13a5689ca8317b98439fccfbcc673acaaf8241c1869ceea40f5d585bf",
"sha256:fef86115fdad7ae774720d7103aa776144cf9b66673b4afa9bcaa7af990ed07b"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.1.1"
"markers": "python_version >= '3.6'",
"version": "==2.0.0"
},
"packaging": {
"hashes": [
@@ -1589,11 +1587,11 @@
},
"pygments": {
"hashes": [
"sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94",
"sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"
"sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f",
"sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"
],
"markers": "python_version >= '3.5'",
"version": "==2.8.1"
"version": "==2.9.0"
},
"pyparsing": {
"hashes": [
@@ -1605,19 +1603,19 @@
},
"pytest": {
"hashes": [
"sha256:671238a46e4df0f3498d1c3270e5deb9b32d25134c99b7d75370a68cfbe9b634",
"sha256:6ad9c7bdf517a808242b998ac20063c41532a570d088d77eec1ee12b0b5574bc"
"sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b",
"sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"
],
"index": "pypi",
"version": "==6.2.3"
"version": "==6.2.4"
},
"pytest-cov": {
"hashes": [
"sha256:359952d9d39b9f822d9d29324483e7ba04a3a17dd7d05aa6beb7ea01e359e5f7",
"sha256:bdb9fdb0b85a7cc825269a4c56b48ccaa5c7e365054b6038772c32ddcdc969da"
"sha256:8535764137fecce504a49c2b742288e3d34bc09eed298ad65963616cc98fd45e",
"sha256:95d4933dcbbacfa377bb60b29801daa30d90c33981ab2a79e9ab4452c165066e"
],
"index": "pypi",
"version": "==2.11.1"
"version": "==2.12.0"
},
"pytest-django": {
"hashes": [
@@ -1685,11 +1683,11 @@
},
"six": {
"hashes": [
"sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259",
"sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"
"sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
"sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==1.15.0"
"version": "==1.16.0"
},
"snowballstemmer": {
"hashes": [
@@ -1786,11 +1784,11 @@
},
"tox": {
"hashes": [
"sha256:05a4dbd5e4d3d8269b72b55600f0b0303e2eb47ad5c6fe76d3576f4c58d93661",
"sha256:e007673f3595cede9b17a7c4962389e4305d4a3682a6c5a4159a1453b4f326aa"
"sha256:307a81ddb82bd463971a273f33e9533a24ed22185f27db8ce3386bff27d324e3",
"sha256:b0b5818049a1c1997599d42012a637a33f24c62ab8187223fdd318fa8522637b"
],
"index": "pypi",
"version": "==3.23.0"
"version": "==3.23.1"
},
"urllib3": {
"hashes": [
@@ -1802,11 +1800,11 @@
},
"virtualenv": {
"hashes": [
"sha256:49ec4eb4c224c6f7dd81bb6d0a28a09ecae5894f4e593c89b0db0885f565a107",
"sha256:83f95875d382c7abafe06bd2a4cdd1b363e1bb77e02f155ebe8ac082a916b37c"
"sha256:307a555cf21e1550885c82120eccaf5acedf42978fd362d32ba8410f9593f543",
"sha256:72cf267afc04bf9c86ec932329b7e94db6a0331ae9847576daaa7ca3c86b29a4"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
"version": "==20.4.3"
"version": "==20.4.6"
}
}
}

View File

@@ -4,37 +4,41 @@ 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
CURRENT_USER=$(stat -c '%U' ../)
CURRENT_GROUP=$(stat -c '%G' ../)
if [[ ${CURRENT_USER} != "paperless" || ${CURRENT_GROUP} != "paperless" ]] ; then
echo "Adjusting permissions of paperless files. This may take a while."
chown -R paperless:paperless ../
fi
chown -R paperless:paperless /tmp/paperless
set -e
set -e
gosu paperless /sbin/docker-prepare.sh
gosu paperless /sbin/docker-prepare.sh
}
install_languages() {
@@ -50,35 +54,35 @@ 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

View File

@@ -5,6 +5,32 @@
Changelog
*********
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
##################
@@ -1366,6 +1392,8 @@ 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

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>

View File

@@ -360,7 +360,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 +464,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 +490,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 +518,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 +534,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

@@ -8,10 +8,10 @@
-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'
arrow==1.1.0; python_version >= '3.6'
asgiref==3.3.4; 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
@@ -28,35 +28,35 @@ 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-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==3.2.3
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
httptools==0.1.2
humanfriendly==9.1; 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
imap-tools==0.41.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
ocrmypdf==12.0.1
pathvalidate==2.4.1
pdfminer.six==20201018
pikepdf==2.11.1
pikepdf==2.12.0
pillow==8.2.0
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'
@@ -66,7 +66,7 @@ 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-dotenv==0.17.1
python-gnupg==0.4.7
python-levenshtein==0.12.2
python-magic==0.4.22
@@ -78,8 +78,8 @@ 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'
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'
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.3.0
sqlparse==0.4.1; python_version >= '3.5'
threadpoolctl==2.1.0; python_version >= '3.5'

View File

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

View File

@@ -26,7 +26,8 @@
"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"
}
},
"architect": {

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">

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,7 @@ 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';
registerLocaleData(localeFr)
@@ -88,6 +89,7 @@ registerLocaleData(localeRo)
registerLocaleData(localeRu)
registerLocaleData(localeEs)
registerLocaleData(localePl)
registerLocaleData(localeSv)
@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

@@ -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,8 @@ 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"}
]
}

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.2",
version: "1.4.4",
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

@@ -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="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">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="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">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">

View File

@@ -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,6 +1632,14 @@
</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">
@@ -1977,11 +1994,19 @@
</context-group>
<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">

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="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">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="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="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="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">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="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="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="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">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="needs-translation">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">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="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">Скачать оригиналы</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

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

@@ -13,6 +13,10 @@ class IncompatibleClassifierVersionError(Exception):
pass
class ClassifierModelCorruptError(Exception):
pass
logger = logging.getLogger("paperless.classifier")
@@ -34,7 +38,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 +47,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,13 +84,16 @@ 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:

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

@@ -36,8 +36,19 @@ def _tags_from_path(filepath):
return tag_ids
def _is_ignored(filepath):
# https://github.com/jonaswinkler/paperless-ng/discussions/1037
basename = os.path.basename(filepath)
if basename == ".DS_STORE":
return True
if basename.startswith("._"):
return True
return False
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 +82,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)

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

@@ -57,6 +57,12 @@ 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"
)
def handle(self, *args, **options):
@@ -68,7 +74,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(

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.")

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

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,26 @@ 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"])
@override_settings(CONSUMER_POLLING=1, CONSUMER_POLLING_DELAY=1, CONSUMER_POLLING_RETRY_COUNT=20)
class TestConsumerPolling(TestConsumer):

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-05-16 11:15\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -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-05-16 10:09\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 ""
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr ""
#: 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-05-16 10:09\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"
@@ -372,119 +372,131 @@ 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 ""
#: 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 ""
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr ""
#: 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 ""
#: 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 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."
#: 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."
@@ -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 ""
#: 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 "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"
#: 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"
#: 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
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Usar el tipo seleccionado debajo"
#: paperless_mail/models.py:113
#: 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 ""
#: 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 ""
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "asignar titulo 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"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "asignar este tipo de documento"

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

@@ -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-18 13:19\n"
"POT-Creation-Date: 2021-05-16 09:38+0000\n"
"PO-Revision-Date: 2021-05-19 20:48\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -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"
@@ -372,119 +372,131 @@ 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 "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 labels, documenttypes of correspondenten toewijst, zal Paperless nog steeds alle regels verwerken die je hebt gedefinieerd."
@@ -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-05-16 10:09\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 ""
#: 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 ""
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr ""
#: 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 ""
#: 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 "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 ""
#: 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 ""
#: 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-05-16 10:09\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 ""
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr ""
#: 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 ""
#: 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 "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 ""
#: 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 ""
#: 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"

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: Russian\n"
"Language: ru_RU\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 "имя"
@@ -372,119 +372,131 @@ msgstr "Неверный цвет."
msgid "File type %(type)s not supported"
msgstr "Тип файла %(type)s не поддерживается"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng загружается..."
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Выполнен выход из 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 "Вы успешно вышли из системы. До свидания!"
#: 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 "Выполнен выход в Paperless-ng"
#: 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 "Portuguese (Brazil)"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Португальский"
#: 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 "Русский"
#: 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-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 "Фильтр"
#: 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 будет обрабатывать только те письма, которые соответствуют всем фильтрам, указанным ниже."
#: 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 process all matching rules that you have defined."
msgstr "Автоматически назначать метаданные документам, полученным из этого правила. Если вы не назначаете здесь теги, типы или корреспонденты, paperless все равно будут обрабатывать все соответствующие правила, которые вы определили."
@@ -536,139 +548,151 @@ msgstr "Имя пользователя"
msgid "password"
msgstr "пароль"
#: 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 "правило почты"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "правила почты"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Обрабатывать только вложения."
#: paperless_mail/models.py:68
#: 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 "Использовать email адрес"
#: 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
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr ""
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "фильтр по отправителю"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "фильтр по теме"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "фильтр по тексту сообщения"
#: paperless_mail/models.py:138
#: 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 "Обрабатывать только документы, которые полностью совпадают с именем файла (если оно указано). Маски, например *.pdf или *счет*, разрешены. Без учёта регистра."
#: 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
msgid "Additional parameter for the action selected above, i.e., the target folder of the move to folder action."
msgstr "Дополнительный параметр для выбранного действия, например целевой каталог для действия \"переместить в каталог\"."
#: 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

@@ -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-05-16 11:15\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\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: sv-SE\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 "Dokument"
#: documents/models.py:32
msgid "Any word"
msgstr "Valfritt ord"
#: documents/models.py:33
msgid "All words"
msgstr "Alla ord"
#: documents/models.py:34
msgid "Exact match"
msgstr "Exakt matchning"
#: documents/models.py:35
msgid "Regular expression"
msgstr "Reguljära uttryck"
#: documents/models.py:36
msgid "Fuzzy word"
msgstr "Fuzzy word"
#: documents/models.py:37
msgid "Automatic"
msgstr "Automatisk"
#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
#: paperless_mail/models.py:117
msgid "name"
msgstr "namn"
#: documents/models.py:45
msgid "match"
msgstr "träff"
#: documents/models.py:49
msgid "matching algorithm"
msgstr "matchande algoritm"
#: documents/models.py:55
msgid "is insensitive"
msgstr "är ej skiftlägeskänsligt"
#: documents/models.py:74 documents/models.py:120
msgid "correspondent"
msgstr "korrespondent"
#: documents/models.py:75
msgid "correspondents"
msgstr "korrespondenter"
#: documents/models.py:81
msgid "color"
msgstr "färg"
#: documents/models.py:87
msgid "is inbox tag"
msgstr "är inkorgstagg"
#: documents/models.py:89
msgid "Marks this tag as an inbox tag: All newly consumed documents will be tagged with inbox tags."
msgstr "Markerar denna tagg som en inkorgstagg: Alla nyligen konsumerade dokument kommer att taggas med inkorgstaggar."
#: documents/models.py:94
msgid "tag"
msgstr "tagg"
#: documents/models.py:95 documents/models.py:151
msgid "tags"
msgstr "taggar"
#: documents/models.py:101 documents/models.py:133
msgid "document type"
msgstr "dokumenttyp"
#: documents/models.py:102
msgid "document types"
msgstr "dokumenttyper"
#: documents/models.py:110
msgid "Unencrypted"
msgstr "Okrypterad"
#: documents/models.py:111
msgid "Encrypted with GNU Privacy Guard"
msgstr "Krypterad med GNU Privacy Guard"
#: documents/models.py:124
msgid "title"
msgstr "titel"
#: documents/models.py:137
msgid "content"
msgstr "innehåll"
#: documents/models.py:139
msgid "The raw, text-only data of the document. This field is primarily used for searching."
msgstr "Dokumentets råa, enbart text data. Detta fält används främst för sökning."
#: documents/models.py:144
msgid "mime type"
msgstr "MIME-typ"
#: documents/models.py:155
msgid "checksum"
msgstr "kontrollsumma"
#: documents/models.py:159
msgid "The checksum of the original document."
msgstr "Kontrollsumman för originaldokumentet."
#: documents/models.py:163
msgid "archive checksum"
msgstr "arkivera kontrollsumma"
#: documents/models.py:168
msgid "The checksum of the archived document."
msgstr "Kontrollsumman för arkiverat dokument."
#: documents/models.py:172 documents/models.py:328
msgid "created"
msgstr "skapad"
#: documents/models.py:176
msgid "modified"
msgstr "ändrad"
#: documents/models.py:180
msgid "storage type"
msgstr "Lagringstyp"
#: documents/models.py:188
msgid "added"
msgstr "tillagd"
#: documents/models.py:192
msgid "filename"
msgstr "filnamn"
#: documents/models.py:198
msgid "Current filename in storage"
msgstr "Nuvarande filnamn i lagring"
#: documents/models.py:202
msgid "archive filename"
msgstr "arkivfilnamn"
#: documents/models.py:208
msgid "Current archive filename in storage"
msgstr "Nuvarande arkivfilnamn i lagring"
#: documents/models.py:212
msgid "archive serial number"
msgstr "arkivets serienummer"
#: documents/models.py:217
msgid "The position of this document in your physical document archive."
msgstr "Placeringen av detta dokument i ditt fysiska dokumentarkiv."
#: documents/models.py:223
msgid "document"
msgstr "dokument"
#: documents/models.py:224
msgid "documents"
msgstr "dokument"
#: documents/models.py:311
msgid "debug"
msgstr "felsök"
#: documents/models.py:312
msgid "information"
msgstr "information"
#: documents/models.py:313
msgid "warning"
msgstr "varning"
#: documents/models.py:314
msgid "error"
msgstr "fel"
#: documents/models.py:315
msgid "critical"
msgstr "kritisk"
#: documents/models.py:319
msgid "group"
msgstr "grupp"
#: documents/models.py:322
msgid "message"
msgstr "meddelande"
#: documents/models.py:325
msgid "level"
msgstr "nivå"
#: documents/models.py:332
msgid "log"
msgstr "logg"
#: documents/models.py:333
msgid "logs"
msgstr "loggar"
#: documents/models.py:344 documents/models.py:401
msgid "saved view"
msgstr "sparad vy"
#: documents/models.py:345
msgid "saved views"
msgstr "sparade vyer"
#: documents/models.py:348
msgid "user"
msgstr "användare"
#: documents/models.py:354
msgid "show on dashboard"
msgstr "visa på instrumentpanelen"
#: documents/models.py:357
msgid "show in sidebar"
msgstr "visa i sidofältet"
#: documents/models.py:361
msgid "sort field"
msgstr "sortera fält"
#: documents/models.py:367
msgid "sort reverse"
msgstr "sortera omvänd"
#: documents/models.py:373
msgid "title contains"
msgstr "titel innehåller"
#: documents/models.py:374
msgid "content contains"
msgstr "innehåll innehåller"
#: documents/models.py:375
msgid "ASN is"
msgstr "ASN är"
#: documents/models.py:376
msgid "correspondent is"
msgstr "korrespondent är"
#: documents/models.py:377
msgid "document type is"
msgstr "dokumenttyp är"
#: documents/models.py:378
msgid "is in inbox"
msgstr "är i inkorgen"
#: documents/models.py:379
msgid "has tag"
msgstr "har tagg"
#: documents/models.py:380
msgid "has any tag"
msgstr "har någon tagg"
#: documents/models.py:381
msgid "created before"
msgstr "skapad före"
#: documents/models.py:382
msgid "created after"
msgstr "skapad efter"
#: documents/models.py:383
msgid "created year is"
msgstr "skapat år är"
#: documents/models.py:384
msgid "created month is"
msgstr "skapad månad är"
#: documents/models.py:385
msgid "created day is"
msgstr "skapad dag är"
#: documents/models.py:386
msgid "added before"
msgstr "tillagd före"
#: documents/models.py:387
msgid "added after"
msgstr "tillagd efter"
#: documents/models.py:388
msgid "modified before"
msgstr "ändrad före"
#: documents/models.py:389
msgid "modified after"
msgstr "ändrad efter"
#: documents/models.py:390
msgid "does not have tag"
msgstr "har inte tagg"
#: documents/models.py:391
msgid "does not have ASN"
msgstr "har inte ASN"
#: documents/models.py:392
msgid "title or content contains"
msgstr "titeln eller innehållet innehåller"
#: documents/models.py:393
msgid "fulltext query"
msgstr "fulltextfråga"
#: documents/models.py:394
msgid "more like this"
msgstr "mer som detta"
#: documents/models.py:405
msgid "rule type"
msgstr "regeltyp"
#: documents/models.py:409
msgid "value"
msgstr "värde"
#: documents/models.py:415
msgid "filter rule"
msgstr "filtrera regel"
#: documents/models.py:416
msgid "filter rules"
msgstr "filtrera regler"
#: documents/serialisers.py:53
#, python-format
msgid "Invalid regular expression: %(error)s"
msgstr "Ogiltigt reguljärt uttryck: %(error)s"
#: documents/serialisers.py:177
msgid "Invalid color."
msgstr "Ogiltig färg."
#: documents/serialisers.py:451
#, python-format
msgid "File type %(type)s not supported"
msgstr "Filtypen %(type)s stöds inte"
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "Paperless-ng laddas..."
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "Paperless-ng utloggad"
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "Du är nu utloggad!"
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "Logga in igen"
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "Paperless-ng inloggning"
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "Vänligen logga in."
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "Ditt användarnamn och lösenord stämde inte. Försök igen."
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "Användarnamn"
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "Lösenord"
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "Logga in"
#: paperless/settings.py:303
msgid "English (US)"
msgstr "Engelska (USA)"
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "Engelska (GB)"
#: paperless/settings.py:305
msgid "German"
msgstr "Tyska"
#: paperless/settings.py:306
msgid "Dutch"
msgstr "Holländska"
#: paperless/settings.py:307
msgid "French"
msgstr "Franska"
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "Portugisiska (Brasilien)"
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "Portugisiska"
#: paperless/settings.py:310
msgid "Italian"
msgstr "Italienska"
#: paperless/settings.py:311
msgid "Romanian"
msgstr "Rumänska"
#: paperless/settings.py:312
msgid "Russian"
msgstr "Ryska"
#: paperless/settings.py:313
msgid "Spanish"
msgstr "Spanska"
#: paperless/settings.py:314
msgid "Polish"
msgstr "Polska"
#: paperless/settings.py:315
msgid "Swedish"
msgstr "Svenska"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "Paperless-ng administration"
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "Autentisering"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "Avancerade inställningar"
#: 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 kommer endast att behandla e-postmeddelanden som matchar ALLA filter som anges nedan."
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "Åtgärder"
#: 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 "Åtgärden tillämpas på e-postmeddelandet. Denna åtgärd utförs endast när dokument konsumerades från e-postmeddelandet. E-post utan bilagor kommer att förbli helt orörda."
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "Metadata"
#: 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 "Tilldela metadata till dokument som konsumeras från denna regel automatiskt. Om du inte tilldelar taggar, typer eller korrespondenter här kommer paperless fortfarande att behandla alla matchande regler som du har definierat."
#: paperless_mail/apps.py:9
msgid "Paperless mail"
msgstr "Paperless e-post"
#: paperless_mail/models.py:11
msgid "mail account"
msgstr "e-postkonto"
#: paperless_mail/models.py:12
msgid "mail accounts"
msgstr "e-postkonton"
#: paperless_mail/models.py:19
msgid "No encryption"
msgstr "Ingen kryptering"
#: paperless_mail/models.py:20
msgid "Use SSL"
msgstr "Använd SSL"
#: paperless_mail/models.py:21
msgid "Use STARTTLS"
msgstr "Använd STARTTLS"
#: 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 "Detta är vanligtvis 143 för okrypterade och STARTTLS-anslutningar, och 993 för SSL-anslutningar."
#: paperless_mail/models.py:40
msgid "IMAP security"
msgstr "IMAP säkerhet"
#: paperless_mail/models.py:46
msgid "username"
msgstr "användarnamn"
#: paperless_mail/models.py:50
msgid "password"
msgstr "lösenord"
#: paperless_mail/models.py:54
msgid "character set"
msgstr "Teckenuppsättning"
#: 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 "Teckenuppsättningen som är tänkt att användas vid kommunikation med mailservern, exempelvis UTF-8 eller US-ASCII."
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "e-postregel"
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "e-postregler"
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "Behandla endast bilagor."
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "Behandla alla filer, inklusive \"inline\" bilagor."
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "Markera som läst, bearbeta inte lästa meddelanden"
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "Flagga mailet, bearbeta inte flaggade mail"
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "Flytta till angiven mapp"
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "Radera"
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "Använd ämne som titel"
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "Använd bilagans filnamn som titel"
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "Tilldela inte en korrespondent"
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "Använd e-postadress"
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "Använd namn (eller e-postadress om inte tillgängligt)"
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "Använd korrespondent som valts nedan"
#: paperless_mail/models.py:121
msgid "order"
msgstr "ordning"
#: paperless_mail/models.py:128
msgid "account"
msgstr "konto"
#: paperless_mail/models.py:132
msgid "folder"
msgstr "mapp"
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "Undermappar måste vara separerade med punkter."
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "filtrera från"
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "filtrera ämne"
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "filtrera kropp"
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "filtrera filnamn för bilaga"
#: 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 "Konsumera endast dokument som helt och hållet matchar detta filnamn om det anges. Wildcards som *.pdf eller *faktura* är tillåtna. Ej skiftlägeskänsliga."
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "maximal ålder"
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "Anges i dagar."
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "typ av bilaga"
#: paperless_mail/models.py:164
msgid "Inline attachments include embedded images, so it's best to combine this option with a filename filter."
msgstr "Bifogade bilagor inkluderar inbäddade bilder, så det är bäst att kombinera detta alternativ med ett filnamnsfilter."
#: paperless_mail/models.py:169
msgid "action"
msgstr "åtgärd"
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "åtgärdsparameter"
#: 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 "Ytterligare parametrar för åtgärden som valts ovan, d.v.s. målmappen för flytten till mapp-åtgärder. Undermappar måste vara separerade med punkter."
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "tilldela titel från"
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "tilldela denna tagg"
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "tilldela den här dokumenttypen"
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "tilldela korrespondent från"
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "tilldela denna korrespondent"

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-05-16 10:09\n"
"Last-Translator: \n"
"Language-Team: Xhosa\n"
"Language: xh_ZA\n"
@@ -46,7 +46,7 @@ msgid "Automatic"
msgstr "crwdns2540:0crwdne2540:0"
#: 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 "crwdns2542:0crwdne2542:0"
@@ -372,119 +372,131 @@ msgstr "crwdns2692:0crwdne2692:0"
msgid "File type %(type)s not supported"
msgstr "crwdns2694:0%(type)scrwdne2694:0"
#: documents/templates/index.html:21
#: documents/templates/index.html:22
msgid "Paperless-ng is loading..."
msgstr "crwdns2696:0crwdne2696:0"
#: documents/templates/registration/logged_out.html:13
#: documents/templates/registration/logged_out.html:14
msgid "Paperless-ng signed out"
msgstr "crwdns2698:0crwdne2698:0"
#: documents/templates/registration/logged_out.html:41
#: documents/templates/registration/logged_out.html:45
msgid "You have been successfully logged out. Bye!"
msgstr "crwdns2700:0crwdne2700:0"
#: documents/templates/registration/logged_out.html:42
#: documents/templates/registration/logged_out.html:46
msgid "Sign in again"
msgstr "crwdns2702:0crwdne2702:0"
#: documents/templates/registration/login.html:13
#: documents/templates/registration/login.html:15
msgid "Paperless-ng sign in"
msgstr "crwdns2704:0crwdne2704:0"
#: documents/templates/registration/login.html:42
#: documents/templates/registration/login.html:47
msgid "Please sign in."
msgstr "crwdns2706:0crwdne2706:0"
#: documents/templates/registration/login.html:45
#: documents/templates/registration/login.html:50
msgid "Your username and password didn't match. Please try again."
msgstr "crwdns2708:0crwdne2708:0"
#: documents/templates/registration/login.html:48
#: documents/templates/registration/login.html:53
msgid "Username"
msgstr "crwdns2710:0crwdne2710:0"
#: documents/templates/registration/login.html:49
#: documents/templates/registration/login.html:54
msgid "Password"
msgstr "crwdns2712:0crwdne2712:0"
#: documents/templates/registration/login.html:54
#: documents/templates/registration/login.html:59
msgid "Sign in"
msgstr "crwdns2714:0crwdne2714:0"
#: paperless/settings.py:298
#: paperless/settings.py:303
msgid "English (US)"
msgstr "crwdns2716:0crwdne2716:0"
#: paperless/settings.py:299
#: paperless/settings.py:304
msgid "English (GB)"
msgstr "crwdns2718:0crwdne2718:0"
#: paperless/settings.py:300
#: paperless/settings.py:305
msgid "German"
msgstr "crwdns2720:0crwdne2720:0"
#: paperless/settings.py:301
#: paperless/settings.py:306
msgid "Dutch"
msgstr "crwdns2722:0crwdne2722:0"
#: paperless/settings.py:302
#: paperless/settings.py:307
msgid "French"
msgstr "crwdns2724:0crwdne2724:0"
#: paperless/settings.py:303
#: paperless/settings.py:308
msgid "Portuguese (Brazil)"
msgstr "crwdns2726:0crwdne2726:0"
#: paperless/settings.py:304
#: paperless/settings.py:309
msgid "Portuguese"
msgstr "crwdns3424:0crwdne3424:0"
#: paperless/settings.py:305
#: paperless/settings.py:310
msgid "Italian"
msgstr "crwdns2728:0crwdne2728:0"
#: paperless/settings.py:306
#: paperless/settings.py:311
msgid "Romanian"
msgstr "crwdns2730:0crwdne2730:0"
#: paperless/settings.py:307
#: paperless/settings.py:312
msgid "Russian"
msgstr "crwdns3414:0crwdne3414:0"
#: paperless/settings.py:308
#: paperless/settings.py:313
msgid "Spanish"
msgstr "crwdns3420:0crwdne3420:0"
#: paperless/settings.py:309
#: paperless/settings.py:314
msgid "Polish"
msgstr "crwdns3444:0crwdne3444:0"
#: paperless/urls.py:113
#: paperless/settings.py:315
msgid "Swedish"
msgstr "crwdns3448:0crwdne3448:0"
#: paperless/urls.py:120
msgid "Paperless-ng administration"
msgstr "crwdns2732:0crwdne2732:0"
#: paperless_mail/admin.py:25
#: paperless_mail/admin.py:15
msgid "Authentication"
msgstr "crwdns3456:0crwdne3456:0"
#: paperless_mail/admin.py:18
msgid "Advanced settings"
msgstr "crwdns3458:0crwdne3458:0"
#: paperless_mail/admin.py:37
msgid "Filter"
msgstr "crwdns2734:0crwdne2734:0"
#: 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 "crwdns2736:0crwdne2736:0"
#: paperless_mail/admin.py:37
#: paperless_mail/admin.py:49
msgid "Actions"
msgstr "crwdns2738:0crwdne2738:0"
#: 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 "crwdns2740:0crwdne2740:0"
#: paperless_mail/admin.py:46
#: paperless_mail/admin.py:58
msgid "Metadata"
msgstr "crwdns2742:0crwdne2742:0"
#: 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 "crwdns2744:0crwdne2744:0"
@@ -536,139 +548,151 @@ msgstr "crwdns2766:0crwdne2766:0"
msgid "password"
msgstr "crwdns2768:0crwdne2768:0"
#: paperless_mail/models.py:60
#: paperless_mail/models.py:54
msgid "character set"
msgstr "crwdns3460:0crwdne3460:0"
#: 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 "crwdns3462:0crwdne3462:0"
#: paperless_mail/models.py:68
msgid "mail rule"
msgstr "crwdns2770:0crwdne2770:0"
#: paperless_mail/models.py:61
#: paperless_mail/models.py:69
msgid "mail rules"
msgstr "crwdns2772:0crwdne2772:0"
#: paperless_mail/models.py:67
#: paperless_mail/models.py:75
msgid "Only process attachments."
msgstr "crwdns2774:0crwdne2774:0"
#: paperless_mail/models.py:68
#: paperless_mail/models.py:76
msgid "Process all files, including 'inline' attachments."
msgstr "crwdns2776:0crwdne2776:0"
#: paperless_mail/models.py:78
#: paperless_mail/models.py:86
msgid "Mark as read, don't process read mails"
msgstr "crwdns2778:0crwdne2778:0"
#: paperless_mail/models.py:79
#: paperless_mail/models.py:87
msgid "Flag the mail, don't process flagged mails"
msgstr "crwdns2780:0crwdne2780:0"
#: paperless_mail/models.py:80
#: paperless_mail/models.py:88
msgid "Move to specified folder"
msgstr "crwdns2782:0crwdne2782:0"
#: paperless_mail/models.py:81
#: paperless_mail/models.py:89
msgid "Delete"
msgstr "crwdns2784:0crwdne2784:0"
#: paperless_mail/models.py:88
#: paperless_mail/models.py:96
msgid "Use subject as title"
msgstr "crwdns2786:0crwdne2786:0"
#: paperless_mail/models.py:89
#: paperless_mail/models.py:97
msgid "Use attachment filename as title"
msgstr "crwdns2788:0crwdne2788:0"
#: paperless_mail/models.py:99
#: paperless_mail/models.py:107
msgid "Do not assign a correspondent"
msgstr "crwdns2790:0crwdne2790:0"
#: paperless_mail/models.py:101
#: paperless_mail/models.py:109
msgid "Use mail address"
msgstr "crwdns2792:0crwdne2792:0"
#: paperless_mail/models.py:103
#: paperless_mail/models.py:111
msgid "Use name (or mail address if not available)"
msgstr "crwdns2794:0crwdne2794:0"
#: paperless_mail/models.py:105
#: paperless_mail/models.py:113
msgid "Use correspondent selected below"
msgstr "crwdns2796:0crwdne2796:0"
#: paperless_mail/models.py:113
#: paperless_mail/models.py:121
msgid "order"
msgstr "crwdns2798:0crwdne2798:0"
#: paperless_mail/models.py:120
#: paperless_mail/models.py:128
msgid "account"
msgstr "crwdns2800:0crwdne2800:0"
#: paperless_mail/models.py:124
#: paperless_mail/models.py:132
msgid "folder"
msgstr "crwdns2802:0crwdne2802:0"
#: paperless_mail/models.py:128
#: paperless_mail/models.py:134
msgid "Subfolders must be separated by dots."
msgstr "crwdns3464:0crwdne3464:0"
#: paperless_mail/models.py:138
msgid "filter from"
msgstr "crwdns2804:0crwdne2804:0"
#: paperless_mail/models.py:131
#: paperless_mail/models.py:141
msgid "filter subject"
msgstr "crwdns2806:0crwdne2806:0"
#: paperless_mail/models.py:134
#: paperless_mail/models.py:144
msgid "filter body"
msgstr "crwdns2808:0crwdne2808:0"
#: paperless_mail/models.py:138
#: paperless_mail/models.py:148
msgid "filter attachment filename"
msgstr "crwdns2810:0crwdne2810:0"
#: 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 "crwdns2812:0crwdne2812:0"
#: paperless_mail/models.py:146
#: paperless_mail/models.py:156
msgid "maximum age"
msgstr "crwdns2814:0crwdne2814:0"
#: paperless_mail/models.py:148
#: paperless_mail/models.py:158
msgid "Specified in days."
msgstr "crwdns2816:0crwdne2816:0"
#: paperless_mail/models.py:151
#: paperless_mail/models.py:161
msgid "attachment type"
msgstr "crwdns2818:0crwdne2818:0"
#: 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 "crwdns2820:0crwdne2820:0"
#: paperless_mail/models.py:159
#: paperless_mail/models.py:169
msgid "action"
msgstr "crwdns2822:0crwdne2822:0"
#: paperless_mail/models.py:165
#: paperless_mail/models.py:175
msgid "action parameter"
msgstr "crwdns2824:0crwdne2824:0"
#: 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 "crwdns2826:0crwdne2826:0"
#: 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 "crwdns3466:0crwdne3466:0"
#: paperless_mail/models.py:173
#: paperless_mail/models.py:184
msgid "assign title from"
msgstr "crwdns2828:0crwdne2828:0"
#: paperless_mail/models.py:183
#: paperless_mail/models.py:194
msgid "assign this tag"
msgstr "crwdns2830:0crwdne2830:0"
#: paperless_mail/models.py:191
#: paperless_mail/models.py:202
msgid "assign this document type"
msgstr "crwdns2832:0crwdne2832:0"
#: paperless_mail/models.py:195
#: paperless_mail/models.py:206
msgid "assign correspondent from"
msgstr "crwdns2834:0crwdne2834:0"
#: paperless_mail/models.py:205
#: paperless_mail/models.py:216
msgid "assign this correspondent"
msgstr "crwdns2836:0crwdne2836:0"

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: Chinese Simplified\n"
"Language: zh_CN\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 "名字"
@@ -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 ""
#: 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
msgid "Filter"
#: 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 "Actions"
msgid "Filter"
msgstr ""
#: 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 ""
#: 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 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 ""
#: 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

@@ -142,11 +142,14 @@ MIDDLEWARE = [
ROOT_URLCONF = 'paperless.urls'
FORCE_SCRIPT_NAME = os.getenv("PAPERLESS_FORCE_SCRIPT_NAME")
BASE_URL = (FORCE_SCRIPT_NAME or "") + "/"
LOGIN_URL = BASE_URL + "accounts/login/"
WSGI_APPLICATION = 'paperless.wsgi.application'
ASGI_APPLICATION = "paperless.asgi.application"
STATIC_URL = os.getenv("PAPERLESS_STATIC_URL", "/static/")
STATIC_URL = os.getenv("PAPERLESS_STATIC_URL", BASE_URL + "static/")
WHITENOISE_STATIC_PREFIX = "/static/"
# TODO: what is this used for?
TEMPLATES = [
@@ -308,7 +311,8 @@ LANGUAGES = [
("ro-ro", _("Romanian")),
("ru-ru", _("Russian")),
("es-es", _("Spanish")),
("pl-pl", _("Polish"))
("pl-pl", _("Polish")),
("sv-se", _("Swedish")),
]
LOCALE_PATHS = [

19
src/paperless/urls.py Executable file → Normal file
View File

@@ -9,6 +9,8 @@ from rest_framework.routers import DefaultRouter
from django.utils.translation import gettext_lazy as _
from django.conf import settings
from paperless.consumers import StatusConsumer
from documents.views import (
CorrespondentViewSet,
@@ -73,31 +75,36 @@ urlpatterns = [
re_path(r"^fetch/", include([
re_path(
r"^doc/(?P<pk>\d+)$",
RedirectView.as_view(url='/api/documents/%(pk)s/download/'),
RedirectView.as_view(url=settings.BASE_URL +
'api/documents/%(pk)s/download/'),
),
re_path(
r"^thumb/(?P<pk>\d+)$",
RedirectView.as_view(url='/api/documents/%(pk)s/thumb/'),
RedirectView.as_view(url=settings.BASE_URL +
'api/documents/%(pk)s/thumb/'),
),
re_path(
r"^preview/(?P<pk>\d+)$",
RedirectView.as_view(url='/api/documents/%(pk)s/preview/'),
RedirectView.as_view(url=settings.BASE_URL +
'api/documents/%(pk)s/preview/'),
),
])),
re_path(r"^push$", csrf_exempt(
RedirectView.as_view(url='/api/documents/post_document/'))),
RedirectView.as_view(url=settings.BASE_URL +
'api/documents/post_document/'))),
# Frontend assets TODO: this is pretty bad, but it works.
path('assets/<path:path>',
RedirectView.as_view(url='/static/frontend/en-US/assets/%(path)s')),
RedirectView.as_view(url=settings.STATIC_URL +
'frontend/en-US/assets/%(path)s')),
# TODO: with localization, this is even worse! :/
# login, logout
path('accounts/', include('django.contrib.auth.urls')),
# Root of the Frontent
re_path(r".*", login_required(IndexView.as_view())),
re_path(r".*", login_required(IndexView.as_view()), name='base'),
]

View File

@@ -1 +1 @@
__version__ = (1, 4, 2)
__version__ = (1, 4, 4)

11
src/paperless/workers.py Normal file
View File

@@ -0,0 +1,11 @@
import os
from uvicorn.workers import UvicornWorker
from django.conf import settings
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "paperless.settings")
class ConfigurableWorker(UvicornWorker):
CONFIG_KWARGS = {
"root_path": settings.FORCE_SCRIPT_NAME or "",
}

View File

@@ -8,6 +8,18 @@ class MailAccountAdmin(admin.ModelAdmin):
list_display = ("name", "imap_server", "username")
fieldsets = [
(None, {
'fields': ['name', 'imap_server', 'imap_port']
}),
(_("Authentication"), {
'fields': ['imap_security', 'username', 'password']
}),
(_("Advanced settings"), {
'fields': ['character_set']
})
]
class MailRuleAdmin(admin.ModelAdmin):

View File

@@ -200,8 +200,10 @@ class MailAccountHandler(LoggingMixin):
f"{str(AND(**criterias))}")
try:
messages = M.fetch(criteria=AND(**criterias),
mark_seen=False, charset='UTF-8')
messages = M.fetch(
criteria=AND(**criterias),
mark_seen=False,
charset=rule.account.character_set)
except Exception:
raise MailError(
f"Rule {rule}: Error while fetching folder {rule.folder}")

View File

@@ -0,0 +1,28 @@
# Generated by Django 3.2.3 on 2021-05-16 09:40
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('paperless_mail', '0007_auto_20210106_0138'),
]
operations = [
migrations.AddField(
model_name='mailaccount',
name='character_set',
field=models.CharField(default='UTF-8', help_text="The character set to use when communicating with the mail server, such as 'UTF-8' or 'US-ASCII'.", max_length=256, verbose_name='character set'),
),
migrations.AlterField(
model_name='mailrule',
name='action_parameter',
field=models.CharField(blank=True, help_text='Additional parameter for the action selected above, i.e., the target folder of the move to folder action. Subfolders must be separated by dots.', max_length=256, null=True, verbose_name='action parameter'),
),
migrations.AlterField(
model_name='mailrule',
name='folder',
field=models.CharField(default='INBOX', help_text='Subfolders must be separated by dots.', max_length=256, verbose_name='folder'),
),
]

View File

@@ -50,6 +50,14 @@ class MailAccount(models.Model):
_("password"),
max_length=256)
character_set = models.CharField(
_("character set"),
max_length=256,
default="UTF-8",
help_text=_("The character set to use when communicating with the "
"mail server, such as 'UTF-8' or 'US-ASCII'.")
)
def __str__(self):
return self.name
@@ -122,7 +130,9 @@ class MailRule(models.Model):
folder = models.CharField(
_("folder"),
default='INBOX', max_length=256)
default='INBOX', max_length=256,
help_text=_("Subfolders must be separated by dots.")
)
filter_from = models.CharField(
_("filter from"),
@@ -166,7 +176,8 @@ class MailRule(models.Model):
max_length=256, blank=True, null=True,
help_text=_("Additional parameter for the action selected above, "
"i.e., "
"the target folder of the move to folder action.")
"the target folder of the move to folder action. "
"Subfolders must be separated by dots.")
)
assign_title_from = models.PositiveIntegerField(

View File

@@ -121,7 +121,12 @@ class RasterisedDocumentParser(DocumentParser):
self.log("debug", f"Extracted text from PDF file {pdf_file}")
return stripped
except PDFException:
except Exception:
# TODO catch all for various issues with PDFminer.six.
# If PDFminer fails, fall back to OCR.
self.log("warn",
"Error while getting text from PDF document with "
"pdfminer.six", exc_info=True)
# probably not a PDF file.
return None

View File

@@ -1,4 +1,3 @@
def get_parser(*args, **kwargs):
from .parsers import TikaDocumentParser
@@ -20,5 +19,6 @@ def tika_consumer_declaration(sender, **kwargs):
"application/vnd.oasis.opendocument.presentation": ".odp",
"application/vnd.oasis.opendocument.spreadsheet": ".ods",
"application/vnd.oasis.opendocument.text": ".odt",
"text/rtf": ".rtf",
},
}