mirror of
				https://github.com/paperless-ngx/paperless-ngx.git
				synced 2025-11-02 18:47:10 -05:00 
			
		
		
		
	Merge branch 'dev' into fix/issue-603
This commit is contained in:
		
						commit
						fe3c3b8946
					
				
							
								
								
									
										1
									
								
								.github/workflows/ansible.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.github/workflows/ansible.yml
									
									
									
									
										vendored
									
									
								
							@ -47,7 +47,6 @@ jobs:
 | 
				
			|||||||
          molecule converge
 | 
					          molecule converge
 | 
				
			||||||
          molecule idempotence
 | 
					          molecule idempotence
 | 
				
			||||||
          molecule verify
 | 
					          molecule verify
 | 
				
			||||||
          molecule destroy
 | 
					 | 
				
			||||||
        working-directory: "${{ github.repository }}"
 | 
					        working-directory: "${{ github.repository }}"
 | 
				
			||||||
  # # https://galaxy.ansible.com/docs/contributing/importing.html
 | 
					  # # https://galaxy.ansible.com/docs/contributing/importing.html
 | 
				
			||||||
  # release:
 | 
					  # release:
 | 
				
			||||||
 | 
				
			|||||||
@ -18,8 +18,9 @@ paperlessng_directory: /opt/paperless-ng
 | 
				
			|||||||
paperlessng_consumption_dir: "{{ paperlessng_directory }}/consumption"
 | 
					paperlessng_consumption_dir: "{{ paperlessng_directory }}/consumption"
 | 
				
			||||||
paperlessng_data_dir: "{{ paperlessng_directory }}/data"
 | 
					paperlessng_data_dir: "{{ paperlessng_directory }}/data"
 | 
				
			||||||
paperlessng_media_root: "{{ paperlessng_directory }}/media"
 | 
					paperlessng_media_root: "{{ paperlessng_directory }}/media"
 | 
				
			||||||
paperlessng_static_dir: "{{ paperlessng_directory }}/static"
 | 
					paperlessng_staticdir: "{{ paperlessng_directory }}/static"
 | 
				
			||||||
paperlessng_filename_format:
 | 
					paperlessng_filename_format:
 | 
				
			||||||
 | 
					paperlessng_logging_dir: "{{ paperlessng_data_dir }}/log"
 | 
				
			||||||
paperlessng_virtualenv: "{{ paperlessng_directory }}/.venv"
 | 
					paperlessng_virtualenv: "{{ paperlessng_directory }}/.venv"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Hosting & Security
 | 
					# Hosting & Security
 | 
				
			||||||
@ -36,12 +37,15 @@ paperlessng_enable_http_remote_user: False
 | 
				
			|||||||
paperlessng_ocr_languages:
 | 
					paperlessng_ocr_languages:
 | 
				
			||||||
  - eng
 | 
					  - eng
 | 
				
			||||||
paperlessng_ocr_mode: skip
 | 
					paperlessng_ocr_mode: skip
 | 
				
			||||||
 | 
					paperlessng_ocr_clean: clean
 | 
				
			||||||
 | 
					paperlessng_ocr_deskew: True
 | 
				
			||||||
 | 
					paperlessng_ocr_rotate_pages: True
 | 
				
			||||||
 | 
					paperlessng_ocr_rotate_pages_threshold: 12
 | 
				
			||||||
paperlessng_ocr_output_type: pdfa
 | 
					paperlessng_ocr_output_type: pdfa
 | 
				
			||||||
paperlessng_ocr_pages: 0
 | 
					paperlessng_ocr_pages: 0
 | 
				
			||||||
paperlessng_ocr_image_dpi:
 | 
					paperlessng_ocr_image_dpi:
 | 
				
			||||||
# see https://ocrmypdf.readthedocs.io/en/latest/api.html#ocrmypdf.ocr
 | 
					# see https://ocrmypdf.readthedocs.io/en/latest/api.html#ocrmypdf.ocr
 | 
				
			||||||
paperlessng_ocr_user_args:
 | 
					paperlessng_ocr_user_args:
 | 
				
			||||||
  #- "deskew": True  # https://github.com/jonaswinkler/paperless-ng/issues/231
 | 
					 | 
				
			||||||
  - "optimize": 1
 | 
					  - "optimize": 1
 | 
				
			||||||
paperlessng_use_jbig2enc: True
 | 
					paperlessng_use_jbig2enc: True
 | 
				
			||||||
paperlessng_big2enc_lossy: False
 | 
					paperlessng_big2enc_lossy: False
 | 
				
			||||||
@ -57,10 +61,11 @@ paperlessng_consumer_polling: 0
 | 
				
			|||||||
paperlessng_consumer_delete_duplicates: False
 | 
					paperlessng_consumer_delete_duplicates: False
 | 
				
			||||||
paperlessng_consumer_recursive: False
 | 
					paperlessng_consumer_recursive: False
 | 
				
			||||||
paperlessng_consumer_subdirs_as_tags: False
 | 
					paperlessng_consumer_subdirs_as_tags: False
 | 
				
			||||||
 | 
					paperlessng_convert_memory_limit: 0
 | 
				
			||||||
 | 
					paperlessng_convert_tmpdir:
 | 
				
			||||||
paperlessng_optimize_thumbnails: True
 | 
					paperlessng_optimize_thumbnails: True
 | 
				
			||||||
paperlessng_post_consume_script:
 | 
					paperlessng_post_consume_script:
 | 
				
			||||||
paperlessng_filename_date_order:
 | 
					paperlessng_filename_date_order:
 | 
				
			||||||
paperlessng_filename_parse_transforms:
 | 
					 | 
				
			||||||
paperlessng_thumbnail_font_name: /usr/share/fonts/liberation/LiberationSerif-Regular.ttf
 | 
					paperlessng_thumbnail_font_name: /usr/share/fonts/liberation/LiberationSerif-Regular.ttf
 | 
				
			||||||
paperlessng_ignore_dates: ""
 | 
					paperlessng_ignore_dates: ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -2,9 +2,15 @@
 | 
				
			|||||||
- name: update previous release to newest release
 | 
					- name: update previous release to newest release
 | 
				
			||||||
  hosts: all
 | 
					  hosts: all
 | 
				
			||||||
  tasks:
 | 
					  tasks:
 | 
				
			||||||
 | 
					    - name: install git dependency
 | 
				
			||||||
 | 
					      apt:
 | 
				
			||||||
 | 
					        pkg: git
 | 
				
			||||||
 | 
					    - name: obtain latest git hash in current tree
 | 
				
			||||||
 | 
					      command: git rev-parse HEAD
 | 
				
			||||||
 | 
					      register: git_hash
 | 
				
			||||||
    - name: set current github commit as version when available
 | 
					    - name: set current github commit as version when available
 | 
				
			||||||
      set_fact:
 | 
					      set_fact:
 | 
				
			||||||
        paperlessng_version: "{{ lookup('env', 'GITHUB_SHA') | default('master', True) }}"
 | 
					        paperlessng_version: "{{ git_hash.stdout }}"
 | 
				
			||||||
    - name: update to newest paperless-ng release
 | 
					    - name: update to newest paperless-ng release
 | 
				
			||||||
      include_role:
 | 
					      include_role:
 | 
				
			||||||
        name: ansible
 | 
					        name: ansible
 | 
				
			||||||
 | 
				
			|||||||
@ -43,7 +43,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- name: install ocr languages
 | 
					- name: install ocr languages
 | 
				
			||||||
  apt:
 | 
					  apt:
 | 
				
			||||||
    pkg: "{{ paperlessng_ocr_languages | map('regex_replace', '^(.*)$', 'tesseract-ocr-\\1') | list }}"
 | 
					    pkg: "{{ paperlessng_ocr_languages | map('regex_replace', '^(.*)$', 'tesseract-ocr-\\1') | map('replace', '_', '-') | list }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: set up notesalexp repository key (for jbig2enc)
 | 
					- name: set up notesalexp repository key (for jbig2enc)
 | 
				
			||||||
  apt_key:
 | 
					  apt_key:
 | 
				
			||||||
@ -256,7 +256,7 @@
 | 
				
			|||||||
    - "{{ paperlessng_consumption_dir }}"
 | 
					    - "{{ paperlessng_consumption_dir }}"
 | 
				
			||||||
    - "{{ paperlessng_data_dir }}"
 | 
					    - "{{ paperlessng_data_dir }}"
 | 
				
			||||||
    - "{{ paperlessng_media_root }}"
 | 
					    - "{{ paperlessng_media_root }}"
 | 
				
			||||||
    - "{{ paperlessng_static_dir }}"
 | 
					    - "{{ paperlessng_staticdir }}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- name: rename initial config
 | 
					- name: rename initial config
 | 
				
			||||||
  command:
 | 
					  command:
 | 
				
			||||||
@ -280,9 +280,11 @@
 | 
				
			|||||||
    - regexp: PAPERLESS_MEDIA_ROOT
 | 
					    - regexp: PAPERLESS_MEDIA_ROOT
 | 
				
			||||||
      line: "PAPERLESS_MEDIA_ROOT={{ paperlessng_media_root }}"
 | 
					      line: "PAPERLESS_MEDIA_ROOT={{ paperlessng_media_root }}"
 | 
				
			||||||
    - regexp: PAPERLESS_STATICDIR
 | 
					    - regexp: PAPERLESS_STATICDIR
 | 
				
			||||||
      line: "PAPERLESS_STATICDIR={{ paperlessng_static_dir }}"
 | 
					      line: "PAPERLESS_STATICDIR={{ paperlessng_staticdir }}"
 | 
				
			||||||
    - regexp: PAPERLESS_FILENAME_FORMAT
 | 
					    - regexp: PAPERLESS_FILENAME_FORMAT
 | 
				
			||||||
      line: "PAPERLESS_FILENAME_FORMAT={{ paperlessng_filename_format }}"
 | 
					      line: "PAPERLESS_FILENAME_FORMAT={{ paperlessng_filename_format }}"
 | 
				
			||||||
 | 
					    - regexp: PAPERLESS_LOGGING_DIR
 | 
				
			||||||
 | 
					      line: "PAPERLESS_LOGGING_DIR={{ paperlessng_logging_dir }}"
 | 
				
			||||||
    # Hosting & Security
 | 
					    # Hosting & Security
 | 
				
			||||||
    - regexp: PAPERLESS_SECRET_KEY
 | 
					    - regexp: PAPERLESS_SECRET_KEY
 | 
				
			||||||
      line: "PAPERLESS_SECRET_KEY={{ paperlessng_secret_key }}"
 | 
					      line: "PAPERLESS_SECRET_KEY={{ paperlessng_secret_key }}"
 | 
				
			||||||
@ -302,9 +304,17 @@
 | 
				
			|||||||
      line: "PAPERLESS_ENABLE_HTTP_REMOTE_USER={{ paperlessng_enable_http_remote_user }}"
 | 
					      line: "PAPERLESS_ENABLE_HTTP_REMOTE_USER={{ paperlessng_enable_http_remote_user }}"
 | 
				
			||||||
    # OCR settings
 | 
					    # OCR settings
 | 
				
			||||||
    - regexp: PAPERLESS_OCR_LANGUAGE
 | 
					    - regexp: PAPERLESS_OCR_LANGUAGE
 | 
				
			||||||
      line: "PAPERLESS_OCR_LANGUAGE={{ paperlessng_ocr_languages | join('+') }}"
 | 
					      line: "PAPERLESS_OCR_LANGUAGE={{ paperlessng_ocr_languages | join('+') | replace('-','_') }}"
 | 
				
			||||||
    - regexp: PAPERLESS_OCR_MODE
 | 
					    - regexp: PAPERLESS_OCR_MODE
 | 
				
			||||||
      line: "PAPERLESS_OCR_MODE={{ paperlessng_ocr_mode }}"
 | 
					      line: "PAPERLESS_OCR_MODE={{ paperlessng_ocr_mode }}"
 | 
				
			||||||
 | 
					    - regexp: PAPERLESS_OCR_CLEAN
 | 
				
			||||||
 | 
					      line: "PAPERLESS_OCR_CLEAN={{ paperlessng_ocr_clean }}"
 | 
				
			||||||
 | 
					    - regexp: PAPERLESS_OCR_DESKEW
 | 
				
			||||||
 | 
					      line: "PAPERLESS_OCR_DESKEW={{ paperlessng_ocr_deskew }}"
 | 
				
			||||||
 | 
					    - regexp: PAPERLESS_OCR_ROTATE_PAGES
 | 
				
			||||||
 | 
					      line: "PAPERLESS_OCR_ROTATE_PAGES={{ paperlessng_ocr_rotate_pages }}"
 | 
				
			||||||
 | 
					    - regexp: PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD
 | 
				
			||||||
 | 
					      line: "PAPERLESS_OCR_ROTATE_PAGES_THRESHOLD={{ paperlessng_ocr_rotate_pages_threshold }}"
 | 
				
			||||||
    - regexp: PAPERLESS_OCR_OUTPUT_TYPE
 | 
					    - regexp: PAPERLESS_OCR_OUTPUT_TYPE
 | 
				
			||||||
      line: "PAPERLESS_OCR_OUTPUT_TYPE={{ paperlessng_ocr_output_type }}"
 | 
					      line: "PAPERLESS_OCR_OUTPUT_TYPE={{ paperlessng_ocr_output_type }}"
 | 
				
			||||||
    - regexp: PAPERLESS_OCR_PAGES
 | 
					    - regexp: PAPERLESS_OCR_PAGES
 | 
				
			||||||
@ -331,6 +341,10 @@
 | 
				
			|||||||
      line: "PAPERLESS_CONSUMER_RECURSIVE={{ paperlessng_consumer_recursive }}"
 | 
					      line: "PAPERLESS_CONSUMER_RECURSIVE={{ paperlessng_consumer_recursive }}"
 | 
				
			||||||
    - regexp: PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS
 | 
					    - regexp: PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS
 | 
				
			||||||
      line: "PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS={{ paperlessng_consumer_subdirs_as_tags }}"
 | 
					      line: "PAPERLESS_CONSUMER_SUBDIRS_AS_TAGS={{ paperlessng_consumer_subdirs_as_tags }}"
 | 
				
			||||||
 | 
					    - regexp: PAPERLESS_CONVERT_MEMORY_LIMIT
 | 
				
			||||||
 | 
					      line: "PAPERLESS_CONVERT_MEMORY_LIMIT={{ paperlessng_convert_memory_limit }}"
 | 
				
			||||||
 | 
					    - regexp: PAPERLESS_CONVERT_TMPDIR
 | 
				
			||||||
 | 
					      line: "PAPERLESS_CONVERT_TMPDIR={{ paperlessng_convert_tmpdir }}"
 | 
				
			||||||
    - regexp: PAPERLESS_OPTIMIZE_THUMBNAILS
 | 
					    - regexp: PAPERLESS_OPTIMIZE_THUMBNAILS
 | 
				
			||||||
      line: "PAPERLESS_OPTIMIZE_THUMBNAILS={{ paperlessng_optimize_thumbnails }}"
 | 
					      line: "PAPERLESS_OPTIMIZE_THUMBNAILS={{ paperlessng_optimize_thumbnails }}"
 | 
				
			||||||
    - regexp: PAPERLESS_POST_CONSUME_SCRIPT
 | 
					    - regexp: PAPERLESS_POST_CONSUME_SCRIPT
 | 
				
			||||||
 | 
				
			|||||||
@ -5,29 +5,82 @@ Paperless development
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
This section describes the steps you need to take to start development on paperless-ng.
 | 
					This section describes the steps you need to take to start development on paperless-ng.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1.  Check out the source from github. The repository is organized in the following way:
 | 
					Check out the source from github. The repository is organized in the following way:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *   ``master`` always represents the latest release and will only see changes
 | 
					*   ``master`` always represents the latest release and will only see changes
 | 
				
			||||||
        when a new release is made.
 | 
					    when a new release is made.
 | 
				
			||||||
    *   ``dev`` contains the code that will be in the next release.
 | 
					*   ``dev`` contains the code that will be in the next release.
 | 
				
			||||||
    *   ``feature-X`` contain bigger changes that will be in some release, but not
 | 
					*   ``feature-X`` contain bigger changes that will be in some release, but not
 | 
				
			||||||
        necessarily the next one.
 | 
					    necessarily the next one.
 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    Apart from that, the folder structure is as follows:
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *   ``docs/`` - Documentation.
 | 
					When making functional changes to paperless, *always* make your changes on the ``dev`` branch.
 | 
				
			||||||
    *   ``src-ui/`` - Code of the front end.
 | 
					 | 
				
			||||||
    *   ``src/`` - Code of the back end.
 | 
					 | 
				
			||||||
    *   ``scripts/`` - Various scripts that help with different parts of development.
 | 
					 | 
				
			||||||
    *   ``docker/`` - Files required to build the docker image.
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
2.  Install some dependencies.
 | 
					Apart from that, the folder structure is as follows:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *   Python 3.6.
 | 
					*   ``docs/`` - Documentation.
 | 
				
			||||||
    *   All dependencies listed in the :ref:`Bare metal route <setup-bare_metal>`
 | 
					*   ``src-ui/`` - Code of the front end.
 | 
				
			||||||
    *   redis. You can either install redis or use the included scritps/start-services.sh
 | 
					*   ``src/`` - Code of the back end.
 | 
				
			||||||
        to use docker to fire up a redis instance (and some other services such as tika,
 | 
					*   ``scripts/`` - Various scripts that help with different parts of development.
 | 
				
			||||||
        gotenberg and a postgresql server).
 | 
					*   ``docker/`` - Files required to build the docker image.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Initial setup and first start 
 | 
				
			||||||
 | 
					=============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					After you forked and cloned the code from github you need to perform a first-time setup. 
 | 
				
			||||||
 | 
					To do the setup you need to perform the steps from the following chapters in a certain order:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.  Install prerequisites + pipenv as mentioned in :ref:`Bare metal route <setup-bare_metal>`
 | 
				
			||||||
 | 
					2.  Copy ``paperless.conf.example`` to ``paperless.conf`` and enable debug mode.
 | 
				
			||||||
 | 
					3.  Install the Angular CLI interface:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: shell-session
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $ npm install -g @angular/cli 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					4.  Create ``consume`` and ``media`` folders in the cloned root folder.
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					    .. code:: shell-session
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mkdir -p consume media
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					5.  You can now either ...
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    *  install redis or 
 | 
				
			||||||
 | 
					    *  use the included scripts/start-services.sh to use docker to fire up a redis instance (and some other services such as tika, gotenberg and a postgresql server) or
 | 
				
			||||||
 | 
					    *  spin up a bare redis container 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        .. code:: shell-session
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            docker run -d -p 6379:6379 -restart unless-stopped redis:latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					6.  Install the python dependencies by performing in the src/ directory.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: shell-session
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        pipenv install --dev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					7.  Generate the static UI so you can perform a login to get session that is required for frontend development (this needs to be done one time only). From root folder:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: shell-session
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        compile-frontend.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					8.  Apply migrations and create a superuser for your dev instance:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: shell-session
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        python3 manage.py migrate
 | 
				
			||||||
 | 
					        python3 manage.py createsuperuser
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					9.  Now spin up the dev backend. Depending on which part of paperless you're developing for, you need to have some or all of them running.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: shell-session
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        python3 manage.py runserver & python3 manage.py document_consumer & python3 manage.py qcluster
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					10. Login with the superuser credentials provided in step 8 at ``http://localhost:8000`` to create a session that enables you to use the backend.
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					Backend development environment is now ready, to start Frontend development go to ``/src-ui`` and run ``ng serve``. From there you can use ``http://localhost:4200`` for a preview.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Back end development
 | 
					Back end development
 | 
				
			||||||
====================
 | 
					====================
 | 
				
			||||||
@ -35,21 +88,18 @@ Back end development
 | 
				
			|||||||
The backend is a django application. I use PyCharm for development, but you can use whatever
 | 
					The backend is a django application. I use PyCharm for development, but you can use whatever
 | 
				
			||||||
you want.
 | 
					you want.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Install the python dependencies by performing ``pipenv install --dev`` in the src/ directory.
 | 
					 | 
				
			||||||
This will also create a virtual environment, which you can enter with ``pipenv shell`` or
 | 
					 | 
				
			||||||
execute one-shot commands in with ``pipenv run``.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Copy ``paperless.conf.example`` to ``paperless.conf`` and enable debug mode.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Configure the IDE to use the src/ folder as the base source folder. Configure the following
 | 
					Configure the IDE to use the src/ folder as the base source folder. Configure the following
 | 
				
			||||||
launch configurations in your IDE:
 | 
					launch configurations in your IDE:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
*   python3 manage.py runserver
 | 
					*   python3 manage.py runserver
 | 
				
			||||||
*   python3 manage.py qcluster
 | 
					*   python3 manage.py qcluster
 | 
				
			||||||
*   python3 manage.py consumer
 | 
					*   python3 manage.py document_consumer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Depending on which part of paperless you're developing for, you need to have some or all of
 | 
					To start them all:
 | 
				
			||||||
them running.
 | 
					
 | 
				
			||||||
 | 
					.. code:: shell-session
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    python3 manage.py runserver & python3 manage.py document_consumer & python3 manage.py qcluster
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Testing and code style:
 | 
					Testing and code style:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -62,7 +112,7 @@ Testing and code style:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        The line length rule E501 is generally useful for getting multiple source files
 | 
					        The line length rule E501 is generally useful for getting multiple source files
 | 
				
			||||||
        next to each other on the screen. However, in some cases, its just not possible
 | 
					        next to each other on the screen. However, in some cases, its just not possible
 | 
				
			||||||
        to make some lines fit, especially complicated IF cases. Append ``  # NOQA: E501``
 | 
					        to make some lines fit, especially complicated IF cases. Append ``# NOQA: E501``
 | 
				
			||||||
        to disable this check for certain lines.
 | 
					        to disable this check for certain lines.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Front end development
 | 
					Front end development
 | 
				
			||||||
@ -109,6 +159,92 @@ This will build the front end and put it in a location from which the Django ser
 | 
				
			|||||||
it as static content. This way, you can verify that authentication is working.
 | 
					it as static content. This way, you can verify that authentication is working.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Localization
 | 
				
			||||||
 | 
					============
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Paperless is available in many different languages. Since paperless consists both of a django
 | 
				
			||||||
 | 
					application and an Angular front end, both these parts have to be translated separately.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Front end localization
 | 
				
			||||||
 | 
					----------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*   The Angular front end does localization according to the `Angular documentation <https://angular.io/guide/i18n>`_.
 | 
				
			||||||
 | 
					*   The source language of the project is "en_US".
 | 
				
			||||||
 | 
					*   The source strings end up in the file "src-ui/messages.xlf".
 | 
				
			||||||
 | 
					*   The translated strings need to be placed in the "src-ui/src/locale/" folder.
 | 
				
			||||||
 | 
					*   In order to extract added or changed strings from the source files, call ``ng xi18n --ivy``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Adding new languages requires adding the translated files in the "src-ui/src/locale/" fodler and adjusting a couple files.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1.  Adjust "src-ui/angular.json":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        "i18n": {
 | 
				
			||||||
 | 
					            "sourceLocale": "en-US",
 | 
				
			||||||
 | 
					            "locales": {
 | 
				
			||||||
 | 
					                "de": "src/locale/messages.de.xlf",
 | 
				
			||||||
 | 
					                "nl-NL": "src/locale/messages.nl_NL.xlf",
 | 
				
			||||||
 | 
					                "fr": "src/locale/messages.fr.xlf",
 | 
				
			||||||
 | 
					                "en-GB": "src/locale/messages.en_GB.xlf",
 | 
				
			||||||
 | 
					                "pt-BR": "src/locale/messages.pt_BR.xlf",
 | 
				
			||||||
 | 
					                "language-code": "language-file"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2.  Add the language to the available options in "src-ui/src/app/services/settings.service.ts":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: typescript
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        getLanguageOptions(): LanguageOption[] {
 | 
				
			||||||
 | 
					            return [
 | 
				
			||||||
 | 
					                {code: "en-us", name: $localize`English (US)`, englishName: "English (US)", dateInputFormat: "mm/dd/yyyy"},
 | 
				
			||||||
 | 
					                {code: "en-gb", name: $localize`English (GB)`, englishName: "English (GB)", dateInputFormat: "dd/mm/yyyy"},
 | 
				
			||||||
 | 
					                {code: "de", name: $localize`German`, englishName: "German", dateInputFormat: "dd.mm.yyyy"},
 | 
				
			||||||
 | 
					                {code: "nl", name: $localize`Dutch`, englishName: "Dutch", dateInputFormat: "dd-mm-yyyy"},
 | 
				
			||||||
 | 
					                {code: "fr", name: $localize`French`, englishName: "French", dateInputFormat: "dd/mm/yyyy"},
 | 
				
			||||||
 | 
					                {code: "pt-br", name: $localize`Portuguese (Brazil)`, englishName: "Portuguese (Brazil)", dateInputFormat: "dd/mm/yyyy"}
 | 
				
			||||||
 | 
					                // Add your new language here
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    ``dateInputFormat`` is a special string that defines the behavior of the date input fields and absolutely needs to contain "dd", "mm" and "yyyy".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3.  Import and register the Angular data for this locale in "src-ui/src/app/app.module.ts":
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: typescript
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        import localeDe from '@angular/common/locales/de';
 | 
				
			||||||
 | 
					        registerLocaleData(localeDe)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Back end localization
 | 
				
			||||||
 | 
					---------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A majority of the strings that appear in the back end appear only when the admin is used. However,
 | 
				
			||||||
 | 
					some of these are still shown on the front end (such as error messages).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					*   The django application does localization according to the `django documentation <https://docs.djangoproject.com/en/3.1/topics/i18n/translation/>`_.
 | 
				
			||||||
 | 
					*   The source language of the project is "en_US".
 | 
				
			||||||
 | 
					*   Localization files end up in the folder "src/locale/".
 | 
				
			||||||
 | 
					*   In order to extract strings from the application, call ``python3 manage.py makemessages -l en_US``. This is important after making changes to translatable strings.
 | 
				
			||||||
 | 
					*   The message files need to be compiled for them to show up in the application. Call ``python3 manage.py compilemessages`` to do this. The generated files don't get
 | 
				
			||||||
 | 
					    committed into git, since these are derived artifacts. The build pipeline takes care of executing this command.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Adding new languages requires adding the translated files in the "src/locale/" folder and adjusting the file "src/paperless/settings.py" to include the new language:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. code:: python
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    LANGUAGES = [
 | 
				
			||||||
 | 
					        ("en-us", _("English (US)")),
 | 
				
			||||||
 | 
					        ("en-gb", _("English (GB)")),
 | 
				
			||||||
 | 
					        ("de", _("German")),
 | 
				
			||||||
 | 
					        ("nl-nl", _("Dutch")),
 | 
				
			||||||
 | 
					        ("fr", _("French")),
 | 
				
			||||||
 | 
					        ("pt-br", _("Portuguese (Brazil)")),
 | 
				
			||||||
 | 
					        # Add language here.
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Building the documentation
 | 
					Building the documentation
 | 
				
			||||||
==========================
 | 
					==========================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -284,6 +284,12 @@ writing. Windows is not and will never be supported.
 | 
				
			|||||||
    *   ``libmagic-dev`` for mime type detection
 | 
					    *   ``libmagic-dev`` for mime type detection
 | 
				
			||||||
    *   ``mime-support`` for mime type detection
 | 
					    *   ``mime-support`` for mime type detection
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Use this list for your preferred package management:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        python3 python3-pip python3-dev imagemagick fonts-liberation optipng gnupg libpq-dev libmagic-dev mime-support
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    These dependencies are required for OCRmyPDF, which is used for text recognition.
 | 
					    These dependencies are required for OCRmyPDF, which is used for text recognition.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *   ``unpaper``
 | 
					    *   ``unpaper``
 | 
				
			||||||
@ -297,6 +303,12 @@ writing. Windows is not and will never be supported.
 | 
				
			|||||||
    *   ``tesseract-ocr`` >= 4.0.0 for OCR
 | 
					    *   ``tesseract-ocr`` >= 4.0.0 for OCR
 | 
				
			||||||
    *   ``tesseract-ocr`` language packs (``tesseract-ocr-eng``, ``tesseract-ocr-deu``, etc)
 | 
					    *   ``tesseract-ocr`` language packs (``tesseract-ocr-eng``, ``tesseract-ocr-deu``, etc)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Use this list for your preferred package management:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    .. code:: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        unpaper ghostscript icc-profiles-free qpdf liblept5 libxml2 pngquant zlib1g tesseract-ocr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    On Raspberry Pi, these libraries are required as well:
 | 
					    On Raspberry Pi, these libraries are required as well:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    *   ``libatlas-base-dev``
 | 
					    *   ``libatlas-base-dev``
 | 
				
			||||||
 | 
				
			|||||||
@ -20,7 +20,8 @@
 | 
				
			|||||||
					"nl-NL": "src/locale/messages.nl_NL.xlf",
 | 
										"nl-NL": "src/locale/messages.nl_NL.xlf",
 | 
				
			||||||
					"fr": "src/locale/messages.fr.xlf",
 | 
										"fr": "src/locale/messages.fr.xlf",
 | 
				
			||||||
					"en-GB": "src/locale/messages.en_GB.xlf",
 | 
										"en-GB": "src/locale/messages.en_GB.xlf",
 | 
				
			||||||
					"pt-BR": "src/locale/messages.pt_BR.xlf"
 | 
										"pt-BR": "src/locale/messages.pt_BR.xlf",
 | 
				
			||||||
 | 
										"it": "src/locale/messages.it.xlf"
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
			},
 | 
								},
 | 
				
			||||||
			"architect": {
 | 
								"architect": {
 | 
				
			||||||
 | 
				
			|||||||
@ -419,7 +419,7 @@
 | 
				
			|||||||
        <source>Do you really want to delete the tag "<x id="PH" equiv-text="object.name"/>"?</source>
 | 
					        <source>Do you really want to delete the tag "<x id="PH" equiv-text="object.name"/>"?</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-list.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-list.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">30</context>
 | 
					          <context context-type="linenumber">26</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
 | 
					      <trans-unit id="cafc87479686947e2590b9f588a88040aeaf660b" datatype="html">
 | 
				
			||||||
@ -867,28 +867,28 @@
 | 
				
			|||||||
        <source>Create new tag</source>
 | 
					        <source>Create new tag</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">21</context>
 | 
					          <context context-type="linenumber">22</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="5872175735754226507" datatype="html">
 | 
					      <trans-unit id="5872175735754226507" datatype="html">
 | 
				
			||||||
        <source>Edit tag</source>
 | 
					        <source>Edit tag</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">25</context>
 | 
					          <context context-type="linenumber">26</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="f2a30b4e1a89a8a0db0bd147b54d6626b9a9bc42" datatype="html">
 | 
					      <trans-unit id="f2a30b4e1a89a8a0db0bd147b54d6626b9a9bc42" datatype="html">
 | 
				
			||||||
        <source>Inbox tag</source>
 | 
					        <source>Inbox tag</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
 | 
				
			||||||
          <context context-type="linenumber">21</context>
 | 
					          <context context-type="linenumber">13</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="5e2f1a4ea12a1b8606ee3f0548d0ba64bf266077" datatype="html">
 | 
					      <trans-unit id="5e2f1a4ea12a1b8606ee3f0548d0ba64bf266077" datatype="html">
 | 
				
			||||||
        <source>Inbox tags are automatically assigned to all consumed documents.</source>
 | 
					        <source>Inbox tags are automatically assigned to all consumed documents.</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
 | 
				
			||||||
          <context context-type="linenumber">21</context>
 | 
					          <context context-type="linenumber">13</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="6672809941092516947" datatype="html">
 | 
					      <trans-unit id="6672809941092516947" datatype="html">
 | 
				
			||||||
@ -1128,28 +1128,28 @@
 | 
				
			|||||||
        <source>Last 7 days</source>
 | 
					        <source>Last 7 days</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">24</context>
 | 
					          <context context-type="linenumber">34</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="4463380307954693363" datatype="html">
 | 
					      <trans-unit id="4463380307954693363" datatype="html">
 | 
				
			||||||
        <source>Last month</source>
 | 
					        <source>Last month</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">25</context>
 | 
					          <context context-type="linenumber">35</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="8697368973702409683" datatype="html">
 | 
					      <trans-unit id="8697368973702409683" datatype="html">
 | 
				
			||||||
        <source>Last 3 months</source>
 | 
					        <source>Last 3 months</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">26</context>
 | 
					          <context context-type="linenumber">36</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="3566342898065860218" datatype="html">
 | 
					      <trans-unit id="3566342898065860218" datatype="html">
 | 
				
			||||||
        <source>Last year</source>
 | 
					        <source>Last year</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">27</context>
 | 
					          <context context-type="linenumber">37</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="be2add3a3d9e4e2556b8f9048a15a9c0f00bf1ad" datatype="html">
 | 
					      <trans-unit id="be2add3a3d9e4e2556b8f9048a15a9c0f00bf1ad" datatype="html">
 | 
				
			||||||
@ -1163,7 +1163,7 @@
 | 
				
			|||||||
        <source>Before</source>
 | 
					        <source>Before</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.html</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.html</context>
 | 
				
			||||||
          <context context-type="linenumber">29</context>
 | 
					          <context context-type="linenumber">38</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">
 | 
					      <trans-unit id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46" datatype="html">
 | 
				
			||||||
@ -1602,7 +1602,7 @@
 | 
				
			|||||||
        <source>Invalid date.</source>
 | 
					        <source>Invalid date.</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/input/date/date.component.html</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/input/date/date.component.html</context>
 | 
				
			||||||
          <context context-type="linenumber">13</context>
 | 
					          <context context-type="linenumber">14</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="2807800733729323332" datatype="html">
 | 
					      <trans-unit id="2807800733729323332" datatype="html">
 | 
				
			||||||
@ -1668,11 +1668,18 @@
 | 
				
			|||||||
          <context context-type="linenumber">93</context>
 | 
					          <context context-type="linenumber">93</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
 | 
					      <trans-unit id="2935232983274991580" datatype="html">
 | 
				
			||||||
 | 
					        <source>Italian</source>
 | 
				
			||||||
 | 
					        <context-group purpose="location">
 | 
				
			||||||
 | 
					          <context context-type="sourcefile">src/app/services/settings.service.ts</context>
 | 
				
			||||||
 | 
					          <context context-type="linenumber">94</context>
 | 
				
			||||||
 | 
					        </context-group>
 | 
				
			||||||
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="4912706592792948707" datatype="html">
 | 
					      <trans-unit id="4912706592792948707" datatype="html">
 | 
				
			||||||
        <source>ISO 8601</source>
 | 
					        <source>ISO 8601</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/services/settings.service.ts</context>
 | 
					          <context context-type="sourcefile">src/app/services/settings.service.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">98</context>
 | 
					          <context context-type="linenumber">99</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="2119857572761283468" datatype="html">
 | 
					      <trans-unit id="2119857572761283468" datatype="html">
 | 
				
			||||||
@ -1833,97 +1840,6 @@
 | 
				
			|||||||
          <context context-type="linenumber">23</context>
 | 
					          <context context-type="linenumber">23</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit id="2056433880533904076" datatype="html">
 | 
					 | 
				
			||||||
        <source>Light blue</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">6</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="4082253113407591781" datatype="html">
 | 
					 | 
				
			||||||
        <source>Blue</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">7</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="1143414876575720034" datatype="html">
 | 
					 | 
				
			||||||
        <source>Light green</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">8</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="119581980963263815" datatype="html">
 | 
					 | 
				
			||||||
        <source>Green</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">9</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="3250646524116252719" datatype="html">
 | 
					 | 
				
			||||||
        <source>Light red</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">10</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="1628552745302385832" datatype="html">
 | 
					 | 
				
			||||||
        <source>Red </source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">11</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="5479028842846122610" datatype="html">
 | 
					 | 
				
			||||||
        <source>Light orange</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">12</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="8598918991528773310" datatype="html">
 | 
					 | 
				
			||||||
        <source>Orange</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">13</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="1789283185177957430" datatype="html">
 | 
					 | 
				
			||||||
        <source>Light violet</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">14</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="2682868487071320453" datatype="html">
 | 
					 | 
				
			||||||
        <source>Violet</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">15</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="1449010446077321264" datatype="html">
 | 
					 | 
				
			||||||
        <source>Brown</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">16</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="30300572504753589" datatype="html">
 | 
					 | 
				
			||||||
        <source>Black</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">17</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="461048771215121187" datatype="html">
 | 
					 | 
				
			||||||
        <source>Light grey</source>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">18</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit id="4561076822163447092" datatype="html">
 | 
					      <trans-unit id="4561076822163447092" datatype="html">
 | 
				
			||||||
        <source>Create new item</source>
 | 
					        <source>Create new item</source>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
 | 
				
			|||||||
@ -70,12 +70,14 @@ import localeFr from '@angular/common/locales/fr';
 | 
				
			|||||||
import localeNl from '@angular/common/locales/nl';
 | 
					import localeNl from '@angular/common/locales/nl';
 | 
				
			||||||
import localeDe from '@angular/common/locales/de';
 | 
					import localeDe from '@angular/common/locales/de';
 | 
				
			||||||
import localePt from '@angular/common/locales/pt';
 | 
					import localePt from '@angular/common/locales/pt';
 | 
				
			||||||
 | 
					import localeIt from '@angular/common/locales/it';
 | 
				
			||||||
import localeEnGb from '@angular/common/locales/en-GB';
 | 
					import localeEnGb from '@angular/common/locales/en-GB';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
registerLocaleData(localeFr)
 | 
					registerLocaleData(localeFr)
 | 
				
			||||||
registerLocaleData(localeNl)
 | 
					registerLocaleData(localeNl)
 | 
				
			||||||
registerLocaleData(localeDe)
 | 
					registerLocaleData(localeDe)
 | 
				
			||||||
registerLocaleData(localePt, "pt-BR")
 | 
					registerLocaleData(localePt, "pt-BR")
 | 
				
			||||||
 | 
					registerLocaleData(localeIt)
 | 
				
			||||||
registerLocaleData(localeEnGb)
 | 
					registerLocaleData(localeEnGb)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@NgModule({
 | 
					@NgModule({
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
<div class="card mb-3 shadow-sm" [class.card-selected]="selected" [class.document-card]="selectable">
 | 
					<div class="card mb-3 shadow-sm" [class.card-selected]="selected" [class.document-card]="selectable">
 | 
				
			||||||
  <div class="row no-gutters">
 | 
					  <div class="row no-gutters">
 | 
				
			||||||
    <div class="col-md-2 d-none d-lg-block doc-img-background rounded-left" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)">
 | 
					    <div class="col-md-2 d-none d-lg-block doc-img-background rounded-left" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)">
 | 
				
			||||||
      <img [src]="getThumbUrl()" class="card-img doc-img border-right rounded-left">
 | 
					      <img [src]="getThumbUrl()" class="card-img doc-img border-right rounded-left" [class.inverted]="getIsThumbInverted()">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div style="top: 0; left: 0" class="position-absolute border-right border-bottom bg-light p-1" [class.document-card-check]="!selected">
 | 
					      <div style="top: 0; left: 0" class="position-absolute border-right border-bottom bg-light p-1" [class.document-card-check]="!selected">
 | 
				
			||||||
        <div class="custom-control custom-checkbox">
 | 
					        <div class="custom-control custom-checkbox">
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,7 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 | 
				
			|||||||
import { DomSanitizer } from '@angular/platform-browser';
 | 
					import { DomSanitizer } from '@angular/platform-browser';
 | 
				
			||||||
import { PaperlessDocument } from 'src/app/data/paperless-document';
 | 
					import { PaperlessDocument } from 'src/app/data/paperless-document';
 | 
				
			||||||
import { DocumentService } from 'src/app/services/rest/document.service';
 | 
					import { DocumentService } from 'src/app/services/rest/document.service';
 | 
				
			||||||
 | 
					import { SettingsService, SETTINGS_KEYS } from 'src/app/services/settings.service';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component({
 | 
					@Component({
 | 
				
			||||||
  selector: 'app-document-card-large',
 | 
					  selector: 'app-document-card-large',
 | 
				
			||||||
@ -10,7 +11,7 @@ import { DocumentService } from 'src/app/services/rest/document.service';
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
export class DocumentCardLargeComponent implements OnInit {
 | 
					export class DocumentCardLargeComponent implements OnInit {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(private documentService: DocumentService, private sanitizer: DomSanitizer) { }
 | 
					  constructor(private documentService: DocumentService, private sanitizer: DomSanitizer, private settingsService: SettingsService) { }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Input()
 | 
					  @Input()
 | 
				
			||||||
  selected = false
 | 
					  selected = false
 | 
				
			||||||
@ -53,6 +54,10 @@ export class DocumentCardLargeComponent implements OnInit {
 | 
				
			|||||||
  ngOnInit(): void {
 | 
					  ngOnInit(): void {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  getIsThumbInverted() {
 | 
				
			||||||
 | 
					    return this.settingsService.get(SETTINGS_KEYS.DARK_MODE_THUMB_INVERTED)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  getDetailsAsString() {
 | 
					  getDetailsAsString() {
 | 
				
			||||||
    if (typeof this.details === 'string') {
 | 
					    if (typeof this.details === 'string') {
 | 
				
			||||||
      return this.details.substring(0, 500)
 | 
					      return this.details.substring(0, 500)
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,7 @@
 | 
				
			|||||||
<div class="col p-2 h-100">
 | 
					<div class="col p-2 h-100">
 | 
				
			||||||
  <div class="card h-100 shadow-sm document-card" [class.card-selected]="selected">
 | 
					  <div class="card h-100 shadow-sm document-card" [class.card-selected]="selected">
 | 
				
			||||||
    <div class="border-bottom doc-img-container" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)">
 | 
					    <div class="border-bottom doc-img-container" [class.doc-img-background-selected]="selected" (click)="this.toggleSelected.emit($event)">
 | 
				
			||||||
      <img class="card-img doc-img rounded-top" [src]="getThumbUrl()">
 | 
					      <img class="card-img doc-img rounded-top" [class.inverted]="getIsThumbInverted()" [src]="getThumbUrl()">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <div class="border-right border-bottom bg-light p-1 rounded document-card-check">
 | 
					      <div class="border-right border-bottom bg-light p-1 rounded document-card-check">
 | 
				
			||||||
        <div class="custom-control custom-checkbox">
 | 
					        <div class="custom-control custom-checkbox">
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,7 @@ import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
 | 
				
			|||||||
import { map } from 'rxjs/operators';
 | 
					import { map } from 'rxjs/operators';
 | 
				
			||||||
import { PaperlessDocument } from 'src/app/data/paperless-document';
 | 
					import { PaperlessDocument } from 'src/app/data/paperless-document';
 | 
				
			||||||
import { DocumentService } from 'src/app/services/rest/document.service';
 | 
					import { DocumentService } from 'src/app/services/rest/document.service';
 | 
				
			||||||
 | 
					import { SettingsService, SETTINGS_KEYS } from 'src/app/services/settings.service';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Component({
 | 
					@Component({
 | 
				
			||||||
  selector: 'app-document-card-small',
 | 
					  selector: 'app-document-card-small',
 | 
				
			||||||
@ -10,7 +11,7 @@ import { DocumentService } from 'src/app/services/rest/document.service';
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
export class DocumentCardSmallComponent implements OnInit {
 | 
					export class DocumentCardSmallComponent implements OnInit {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  constructor(private documentService: DocumentService) { }
 | 
					  constructor(private documentService: DocumentService, private settingsService: SettingsService) { }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @Input()
 | 
					  @Input()
 | 
				
			||||||
  selected = false
 | 
					  selected = false
 | 
				
			||||||
@ -32,6 +33,10 @@ export class DocumentCardSmallComponent implements OnInit {
 | 
				
			|||||||
  ngOnInit(): void {
 | 
					  ngOnInit(): void {
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  getIsThumbInverted() {
 | 
				
			||||||
 | 
					    return this.settingsService.get(SETTINGS_KEYS.DARK_MODE_THUMB_INVERTED)
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  getThumbUrl() {
 | 
					  getThumbUrl() {
 | 
				
			||||||
    return this.documentService.getThumbUrl(this.document.id)
 | 
					    return this.documentService.getThumbUrl(this.document.id)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
@ -96,6 +96,7 @@
 | 
				
			|||||||
          <div class="col">
 | 
					          <div class="col">
 | 
				
			||||||
            <app-input-check i18n-title title="Use system settings" formControlName="darkModeUseSystem"></app-input-check>
 | 
					            <app-input-check i18n-title title="Use system settings" formControlName="darkModeUseSystem"></app-input-check>
 | 
				
			||||||
            <app-input-check [hidden]="settingsForm.value.darkModeUseSystem" i18n-title title="Enable dark mode" formControlName="darkModeEnabled"></app-input-check>
 | 
					            <app-input-check [hidden]="settingsForm.value.darkModeUseSystem" i18n-title title="Enable dark mode" formControlName="darkModeEnabled"></app-input-check>
 | 
				
			||||||
 | 
					            <app-input-check i18n-title title="Invert Thumbnails in dark mode" formControlName="darkModeInvertThumbs"></app-input-check>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -21,6 +21,7 @@ export class SettingsComponent implements OnInit {
 | 
				
			|||||||
    'documentListItemPerPage': new FormControl(this.settings.get(SETTINGS_KEYS.DOCUMENT_LIST_SIZE)),
 | 
					    'documentListItemPerPage': new FormControl(this.settings.get(SETTINGS_KEYS.DOCUMENT_LIST_SIZE)),
 | 
				
			||||||
    'darkModeUseSystem': new FormControl(this.settings.get(SETTINGS_KEYS.DARK_MODE_USE_SYSTEM)),
 | 
					    'darkModeUseSystem': new FormControl(this.settings.get(SETTINGS_KEYS.DARK_MODE_USE_SYSTEM)),
 | 
				
			||||||
    'darkModeEnabled': new FormControl(this.settings.get(SETTINGS_KEYS.DARK_MODE_ENABLED)),
 | 
					    'darkModeEnabled': new FormControl(this.settings.get(SETTINGS_KEYS.DARK_MODE_ENABLED)),
 | 
				
			||||||
 | 
					    'darkModeInvertThumbs': new FormControl(this.settings.get(SETTINGS_KEYS.DARK_MODE_THUMB_INVERTED)),
 | 
				
			||||||
    'useNativePdfViewer': new FormControl(this.settings.get(SETTINGS_KEYS.USE_NATIVE_PDF_VIEWER)),
 | 
					    'useNativePdfViewer': new FormControl(this.settings.get(SETTINGS_KEYS.USE_NATIVE_PDF_VIEWER)),
 | 
				
			||||||
    'savedViews': this.savedViewGroup,
 | 
					    'savedViews': this.savedViewGroup,
 | 
				
			||||||
    'displayLanguage': new FormControl(this.settings.getLanguage()),
 | 
					    'displayLanguage': new FormControl(this.settings.getLanguage()),
 | 
				
			||||||
@ -74,6 +75,7 @@ export class SettingsComponent implements OnInit {
 | 
				
			|||||||
    this.settings.set(SETTINGS_KEYS.DOCUMENT_LIST_SIZE, this.settingsForm.value.documentListItemPerPage)
 | 
					    this.settings.set(SETTINGS_KEYS.DOCUMENT_LIST_SIZE, this.settingsForm.value.documentListItemPerPage)
 | 
				
			||||||
    this.settings.set(SETTINGS_KEYS.DARK_MODE_USE_SYSTEM, this.settingsForm.value.darkModeUseSystem)
 | 
					    this.settings.set(SETTINGS_KEYS.DARK_MODE_USE_SYSTEM, this.settingsForm.value.darkModeUseSystem)
 | 
				
			||||||
    this.settings.set(SETTINGS_KEYS.DARK_MODE_ENABLED, (this.settingsForm.value.darkModeEnabled == true).toString())
 | 
					    this.settings.set(SETTINGS_KEYS.DARK_MODE_ENABLED, (this.settingsForm.value.darkModeEnabled == true).toString())
 | 
				
			||||||
 | 
					    this.settings.set(SETTINGS_KEYS.DARK_MODE_THUMB_INVERTED, (this.settingsForm.value.darkModeInvertThumbs == true).toString())
 | 
				
			||||||
    this.settings.set(SETTINGS_KEYS.USE_NATIVE_PDF_VIEWER, this.settingsForm.value.useNativePdfViewer)
 | 
					    this.settings.set(SETTINGS_KEYS.USE_NATIVE_PDF_VIEWER, this.settingsForm.value.useNativePdfViewer)
 | 
				
			||||||
    this.settings.set(SETTINGS_KEYS.DATE_LOCALE, this.settingsForm.value.dateLocale)
 | 
					    this.settings.set(SETTINGS_KEYS.DATE_LOCALE, this.settingsForm.value.dateLocale)
 | 
				
			||||||
    this.settings.set(SETTINGS_KEYS.DATE_FORMAT, this.settingsForm.value.dateFormat)
 | 
					    this.settings.set(SETTINGS_KEYS.DATE_FORMAT, this.settingsForm.value.dateFormat)
 | 
				
			||||||
 | 
				
			|||||||
@ -26,6 +26,7 @@ export const SETTINGS_KEYS = {
 | 
				
			|||||||
  DOCUMENT_LIST_SIZE: 'general-settings:documentListSize',
 | 
					  DOCUMENT_LIST_SIZE: 'general-settings:documentListSize',
 | 
				
			||||||
  DARK_MODE_USE_SYSTEM: 'general-settings:dark-mode:use-system',
 | 
					  DARK_MODE_USE_SYSTEM: 'general-settings:dark-mode:use-system',
 | 
				
			||||||
  DARK_MODE_ENABLED: 'general-settings:dark-mode:enabled',
 | 
					  DARK_MODE_ENABLED: 'general-settings:dark-mode:enabled',
 | 
				
			||||||
 | 
					  DARK_MODE_THUMB_INVERTED: 'general-settings:dark-mode:thumb-inverted',
 | 
				
			||||||
  USE_NATIVE_PDF_VIEWER: 'general-settings:document-details:native-pdf-viewer',
 | 
					  USE_NATIVE_PDF_VIEWER: 'general-settings:document-details:native-pdf-viewer',
 | 
				
			||||||
  DATE_LOCALE: 'general-settings:date-display:date-locale',
 | 
					  DATE_LOCALE: 'general-settings:date-display:date-locale',
 | 
				
			||||||
  DATE_FORMAT: 'general-settings:date-display:date-format',
 | 
					  DATE_FORMAT: 'general-settings:date-display:date-format',
 | 
				
			||||||
@ -41,6 +42,7 @@ const SETTINGS: PaperlessSettings[] = [
 | 
				
			|||||||
  {key: SETTINGS_KEYS.DOCUMENT_LIST_SIZE, type: "number", default: 50},
 | 
					  {key: SETTINGS_KEYS.DOCUMENT_LIST_SIZE, type: "number", default: 50},
 | 
				
			||||||
  {key: SETTINGS_KEYS.DARK_MODE_USE_SYSTEM, type: "boolean", default: true},
 | 
					  {key: SETTINGS_KEYS.DARK_MODE_USE_SYSTEM, type: "boolean", default: true},
 | 
				
			||||||
  {key: SETTINGS_KEYS.DARK_MODE_ENABLED, type: "boolean", default: false},
 | 
					  {key: SETTINGS_KEYS.DARK_MODE_ENABLED, type: "boolean", default: false},
 | 
				
			||||||
 | 
					  {key: SETTINGS_KEYS.DARK_MODE_THUMB_INVERTED, type: "boolean", default: true},
 | 
				
			||||||
  {key: SETTINGS_KEYS.USE_NATIVE_PDF_VIEWER, type: "boolean", default: false},
 | 
					  {key: SETTINGS_KEYS.USE_NATIVE_PDF_VIEWER, type: "boolean", default: false},
 | 
				
			||||||
  {key: SETTINGS_KEYS.DATE_LOCALE, type: "string", default: ""},
 | 
					  {key: SETTINGS_KEYS.DATE_LOCALE, type: "string", default: ""},
 | 
				
			||||||
  {key: SETTINGS_KEYS.DATE_FORMAT, type: "string", default: "mediumDate"},
 | 
					  {key: SETTINGS_KEYS.DATE_FORMAT, type: "string", default: "mediumDate"},
 | 
				
			||||||
@ -90,7 +92,8 @@ export class SettingsService {
 | 
				
			|||||||
      {code: "de", name: $localize`German`, englishName: "German", dateInputFormat: "dd.mm.yyyy"},
 | 
					      {code: "de", name: $localize`German`, englishName: "German", dateInputFormat: "dd.mm.yyyy"},
 | 
				
			||||||
      {code: "nl", name: $localize`Dutch`, englishName: "Dutch", dateInputFormat: "dd-mm-yyyy"},
 | 
					      {code: "nl", name: $localize`Dutch`, englishName: "Dutch", dateInputFormat: "dd-mm-yyyy"},
 | 
				
			||||||
      {code: "fr", name: $localize`French`, englishName: "French", dateInputFormat: "dd/mm/yyyy"},
 | 
					      {code: "fr", name: $localize`French`, englishName: "French", dateInputFormat: "dd/mm/yyyy"},
 | 
				
			||||||
      {code: "pt-br", name: $localize`Portuguese (Brazil)`, englishName: "Portuguese (Brazil)", dateInputFormat: "dd/mm/yyyy"}
 | 
					      {code: "pt-br", name: $localize`Portuguese (Brazil)`, englishName: "Portuguese (Brazil)", dateInputFormat: "dd/mm/yyyy"},
 | 
				
			||||||
 | 
					      {code: "it", name: $localize`Italian`, englishName: "Italian", dateInputFormat: "dd/mm/yyyy"}
 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -478,7 +478,7 @@
 | 
				
			|||||||
        <target>Möchten Sie das Tag "<x equiv-text="object.name" id="PH"/>" wirklich löschen?</target>
 | 
					        <target>Möchten Sie das Tag "<x equiv-text="object.name" id="PH"/>" wirklich löschen?</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-list.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-list.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">30</context>
 | 
					          <context context-type="linenumber">26</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="cafc87479686947e2590b9f588a88040aeaf660b">
 | 
					      <trans-unit datatype="html" id="cafc87479686947e2590b9f588a88040aeaf660b">
 | 
				
			||||||
@ -990,7 +990,7 @@
 | 
				
			|||||||
        <target>Neues Tag erstellen</target>
 | 
					        <target>Neues Tag erstellen</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">21</context>
 | 
					          <context context-type="linenumber">22</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="5872175735754226507">
 | 
					      <trans-unit datatype="html" id="5872175735754226507">
 | 
				
			||||||
@ -998,7 +998,7 @@
 | 
				
			|||||||
        <target>Tag bearbeiten</target>
 | 
					        <target>Tag bearbeiten</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">25</context>
 | 
					          <context context-type="linenumber">26</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="f2a30b4e1a89a8a0db0bd147b54d6626b9a9bc42">
 | 
					      <trans-unit datatype="html" id="f2a30b4e1a89a8a0db0bd147b54d6626b9a9bc42">
 | 
				
			||||||
@ -1006,7 +1006,7 @@
 | 
				
			|||||||
        <target>Posteingangs-Tag</target>
 | 
					        <target>Posteingangs-Tag</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
 | 
				
			||||||
          <context context-type="linenumber">21</context>
 | 
					          <context context-type="linenumber">13</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="5e2f1a4ea12a1b8606ee3f0548d0ba64bf266077">
 | 
					      <trans-unit datatype="html" id="5e2f1a4ea12a1b8606ee3f0548d0ba64bf266077">
 | 
				
			||||||
@ -1014,7 +1014,7 @@
 | 
				
			|||||||
        <target>Ein Tag mit dieser Option wird automatisch allen neuen Dokumenten zugewiesen.</target>
 | 
					        <target>Ein Tag mit dieser Option wird automatisch allen neuen Dokumenten zugewiesen.</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
 | 
					          <context context-type="sourcefile">src/app/components/manage/tag-list/tag-edit-dialog/tag-edit-dialog.component.html</context>
 | 
				
			||||||
          <context context-type="linenumber">21</context>
 | 
					          <context context-type="linenumber">13</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="6672809941092516947">
 | 
					      <trans-unit datatype="html" id="6672809941092516947">
 | 
				
			||||||
@ -1288,7 +1288,7 @@
 | 
				
			|||||||
        <target>Letzte 7 Tage</target>
 | 
					        <target>Letzte 7 Tage</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">24</context>
 | 
					          <context context-type="linenumber">34</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="4463380307954693363">
 | 
					      <trans-unit datatype="html" id="4463380307954693363">
 | 
				
			||||||
@ -1296,7 +1296,7 @@
 | 
				
			|||||||
        <target>Letzten Monat</target>
 | 
					        <target>Letzten Monat</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">25</context>
 | 
					          <context context-type="linenumber">35</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="8697368973702409683">
 | 
					      <trans-unit datatype="html" id="8697368973702409683">
 | 
				
			||||||
@ -1304,7 +1304,7 @@
 | 
				
			|||||||
        <target>Letzte 3 Monate</target>
 | 
					        <target>Letzte 3 Monate</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">26</context>
 | 
					          <context context-type="linenumber">36</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="3566342898065860218">
 | 
					      <trans-unit datatype="html" id="3566342898065860218">
 | 
				
			||||||
@ -1312,7 +1312,7 @@
 | 
				
			|||||||
        <target>Letztes Jahr</target>
 | 
					        <target>Letztes Jahr</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">27</context>
 | 
					          <context context-type="linenumber">37</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="be2add3a3d9e4e2556b8f9048a15a9c0f00bf1ad">
 | 
					      <trans-unit datatype="html" id="be2add3a3d9e4e2556b8f9048a15a9c0f00bf1ad">
 | 
				
			||||||
@ -1328,7 +1328,7 @@
 | 
				
			|||||||
        <target>Vor</target>
 | 
					        <target>Vor</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.html</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/date-dropdown/date-dropdown.component.html</context>
 | 
				
			||||||
          <context context-type="linenumber">29</context>
 | 
					          <context context-type="linenumber">38</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
 | 
					      <trans-unit datatype="html" id="99ee4faa69cd2ea8e3678c1f557c0ff1f05aae46">
 | 
				
			||||||
@ -1829,7 +1829,7 @@
 | 
				
			|||||||
        <target>Ungültiges Datum.</target>
 | 
					        <target>Ungültiges Datum.</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/components/common/input/date/date.component.html</context>
 | 
					          <context context-type="sourcefile">src/app/components/common/input/date/date.component.html</context>
 | 
				
			||||||
          <context context-type="linenumber">13</context>
 | 
					          <context context-type="linenumber">14</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="2807800733729323332">
 | 
					      <trans-unit datatype="html" id="2807800733729323332">
 | 
				
			||||||
@ -1904,12 +1904,20 @@
 | 
				
			|||||||
          <context context-type="linenumber">93</context>
 | 
					          <context context-type="linenumber">93</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
 | 
					      <trans-unit datatype="html" id="2935232983274991580">
 | 
				
			||||||
 | 
					        <source>Italian</source>
 | 
				
			||||||
 | 
					        <target>Italienisch</target>
 | 
				
			||||||
 | 
					        <context-group purpose="location">
 | 
				
			||||||
 | 
					          <context context-type="sourcefile">src/app/services/settings.service.ts</context>
 | 
				
			||||||
 | 
					          <context context-type="linenumber">94</context>
 | 
				
			||||||
 | 
					        </context-group>
 | 
				
			||||||
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="4912706592792948707">
 | 
					      <trans-unit datatype="html" id="4912706592792948707">
 | 
				
			||||||
        <source>ISO 8601</source>
 | 
					        <source>ISO 8601</source>
 | 
				
			||||||
        <target>ISO 8601</target>
 | 
					        <target>ISO 8601</target>
 | 
				
			||||||
        <context-group purpose="location">
 | 
					        <context-group purpose="location">
 | 
				
			||||||
          <context context-type="sourcefile">src/app/services/settings.service.ts</context>
 | 
					          <context context-type="sourcefile">src/app/services/settings.service.ts</context>
 | 
				
			||||||
          <context context-type="linenumber">98</context>
 | 
					          <context context-type="linenumber">99</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="2119857572761283468">
 | 
					      <trans-unit datatype="html" id="2119857572761283468">
 | 
				
			||||||
@ -2092,110 +2100,6 @@
 | 
				
			|||||||
          <context context-type="linenumber">23</context>
 | 
					          <context context-type="linenumber">23</context>
 | 
				
			||||||
        </context-group>
 | 
					        </context-group>
 | 
				
			||||||
      </trans-unit>
 | 
					      </trans-unit>
 | 
				
			||||||
      <trans-unit datatype="html" id="2056433880533904076">
 | 
					 | 
				
			||||||
        <source>Light blue</source>
 | 
					 | 
				
			||||||
        <target>Blau, hell</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">6</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="4082253113407591781">
 | 
					 | 
				
			||||||
        <source>Blue</source>
 | 
					 | 
				
			||||||
        <target>Blau</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">7</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="1143414876575720034">
 | 
					 | 
				
			||||||
        <source>Light green</source>
 | 
					 | 
				
			||||||
        <target>Grün, hell</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">8</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="119581980963263815">
 | 
					 | 
				
			||||||
        <source>Green</source>
 | 
					 | 
				
			||||||
        <target>Grün</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">9</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="3250646524116252719">
 | 
					 | 
				
			||||||
        <source>Light red</source>
 | 
					 | 
				
			||||||
        <target>Rot, hell</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">10</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="1628552745302385832">
 | 
					 | 
				
			||||||
        <source>Red </source>
 | 
					 | 
				
			||||||
        <target>Rot</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">11</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="5479028842846122610">
 | 
					 | 
				
			||||||
        <source>Light orange</source>
 | 
					 | 
				
			||||||
        <target>Orange, hell</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">12</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="8598918991528773310">
 | 
					 | 
				
			||||||
        <source>Orange</source>
 | 
					 | 
				
			||||||
        <target>Orange</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">13</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="1789283185177957430">
 | 
					 | 
				
			||||||
        <source>Light violet</source>
 | 
					 | 
				
			||||||
        <target>Violet, hell</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">14</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="2682868487071320453">
 | 
					 | 
				
			||||||
        <source>Violet</source>
 | 
					 | 
				
			||||||
        <target>Violet</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">15</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="1449010446077321264">
 | 
					 | 
				
			||||||
        <source>Brown</source>
 | 
					 | 
				
			||||||
        <target>Braun</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">16</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="30300572504753589">
 | 
					 | 
				
			||||||
        <source>Black</source>
 | 
					 | 
				
			||||||
        <target>Schwarz</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">17</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="461048771215121187">
 | 
					 | 
				
			||||||
        <source>Light grey</source>
 | 
					 | 
				
			||||||
        <target>Grau, hell</target>
 | 
					 | 
				
			||||||
        <context-group purpose="location">
 | 
					 | 
				
			||||||
          <context context-type="sourcefile">src/app/data/paperless-tag.ts</context>
 | 
					 | 
				
			||||||
          <context context-type="linenumber">18</context>
 | 
					 | 
				
			||||||
        </context-group>
 | 
					 | 
				
			||||||
      </trans-unit>
 | 
					 | 
				
			||||||
      <trans-unit datatype="html" id="4561076822163447092">
 | 
					      <trans-unit datatype="html" id="4561076822163447092">
 | 
				
			||||||
        <source>Create new item</source>
 | 
					        <source>Create new item</source>
 | 
				
			||||||
        <target>Neues Element erstellen</target>
 | 
					        <target>Neues Element erstellen</target>
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2353
									
								
								src-ui/src/locale/messages.it.xlf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2353
									
								
								src-ui/src/locale/messages.it.xlf
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -143,15 +143,18 @@ $border-color-dark-mode: #47494f;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  .doc-img {
 | 
					  .doc-img {
 | 
				
			||||||
    mix-blend-mode: normal;
 | 
					    mix-blend-mode: normal;
 | 
				
			||||||
    filter: invert(95%) hue-rotate(180deg);
 | 
					 | 
				
			||||||
    border-radius: 0;
 | 
					    border-radius: 0;
 | 
				
			||||||
    border-color: $bg-dark-mode;
 | 
					    border-color: $bg-dark-mode;
 | 
				
			||||||
 | 
					    filter: invert(10%);
 | 
				
			||||||
    &.border-right {
 | 
					    &.border-right {
 | 
				
			||||||
      border-right: none !important;
 | 
					      border-right: none !important;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  .doc-img.inverted {
 | 
				
			||||||
 | 
					    filter: invert(95%) hue-rotate(180deg);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .card-selected .doc-img {
 | 
					  .card-selected .doc-img {
 | 
				
			||||||
    mix-blend-mode: luminosity;
 | 
					    mix-blend-mode: luminosity;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
@ -1356,3 +1356,16 @@ class TestApiAuth(APITestCase):
 | 
				
			|||||||
        self.assertEqual(self.client.get("/api/documents/bulk_edit/").status_code, 401)
 | 
					        self.assertEqual(self.client.get("/api/documents/bulk_edit/").status_code, 401)
 | 
				
			||||||
        self.assertEqual(self.client.get("/api/documents/bulk_download/").status_code, 401)
 | 
					        self.assertEqual(self.client.get("/api/documents/bulk_download/").status_code, 401)
 | 
				
			||||||
        self.assertEqual(self.client.get("/api/documents/selection_data/").status_code, 401)
 | 
					        self.assertEqual(self.client.get("/api/documents/selection_data/").status_code, 401)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_api_version_no_auth(self):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        response = self.client.get("/api/")
 | 
				
			||||||
 | 
					        self.assertNotIn("X-Api-Version", response)
 | 
				
			||||||
 | 
					        self.assertNotIn("X-Version", response)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test_api_version_with_auth(self):
 | 
				
			||||||
 | 
					        user = User.objects.create_superuser(username="test")
 | 
				
			||||||
 | 
					        self.client.force_login(user)
 | 
				
			||||||
 | 
					        response = self.client.get("/api/")
 | 
				
			||||||
 | 
					        self.assertIn("X-Api-Version", response)
 | 
				
			||||||
 | 
					        self.assertIn("X-Version", response)
 | 
				
			||||||
 | 
				
			|||||||
@ -11,7 +11,7 @@ msgid ""
 | 
				
			|||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
					"Project-Id-Version: PACKAGE VERSION\n"
 | 
				
			||||||
"Report-Msgid-Bugs-To: \n"
 | 
					"Report-Msgid-Bugs-To: \n"
 | 
				
			||||||
"POT-Creation-Date: 2021-02-24 16:49+0100\n"
 | 
					"POT-Creation-Date: 2021-02-26 12:56+0100\n"
 | 
				
			||||||
"PO-Revision-Date: 2021-02-16 18:37+0000\n"
 | 
					"PO-Revision-Date: 2021-02-16 18:37+0000\n"
 | 
				
			||||||
"Last-Translator: Jonas Winkler, 2021\n"
 | 
					"Last-Translator: Jonas Winkler, 2021\n"
 | 
				
			||||||
"Language-Team: German (https://www.transifex.com/paperless/teams/115905/de/)\n"
 | 
					"Language-Team: German (https://www.transifex.com/paperless/teams/115905/de/)\n"
 | 
				
			||||||
@ -49,7 +49,7 @@ msgstr "Ungenaues Wort"
 | 
				
			|||||||
msgid "Automatic"
 | 
					msgid "Automatic"
 | 
				
			||||||
msgstr "Automatisch"
 | 
					msgstr "Automatisch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:41 documents/models.py:364 paperless_mail/models.py:25
 | 
					#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
 | 
				
			||||||
#: paperless_mail/models.py:109
 | 
					#: paperless_mail/models.py:109
 | 
				
			||||||
msgid "name"
 | 
					msgid "name"
 | 
				
			||||||
msgstr "Name"
 | 
					msgstr "Name"
 | 
				
			||||||
@ -66,7 +66,7 @@ msgstr "Zuweisungsalgorithmus"
 | 
				
			|||||||
msgid "is insensitive"
 | 
					msgid "is insensitive"
 | 
				
			||||||
msgstr "Groß-/Kleinschreibung irrelevant"
 | 
					msgstr "Groß-/Kleinschreibung irrelevant"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:74 documents/models.py:134
 | 
					#: documents/models.py:74 documents/models.py:120
 | 
				
			||||||
msgid "correspondent"
 | 
					msgid "correspondent"
 | 
				
			||||||
msgstr "Korrespondent"
 | 
					msgstr "Korrespondent"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -74,15 +74,15 @@ msgstr "Korrespondent"
 | 
				
			|||||||
msgid "correspondents"
 | 
					msgid "correspondents"
 | 
				
			||||||
msgstr "Korrespondenten"
 | 
					msgstr "Korrespondenten"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:97
 | 
					#: documents/models.py:81
 | 
				
			||||||
msgid "color"
 | 
					msgid "color"
 | 
				
			||||||
msgstr "Farbe"
 | 
					msgstr "Farbe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:101
 | 
					#: documents/models.py:87
 | 
				
			||||||
msgid "is inbox tag"
 | 
					msgid "is inbox tag"
 | 
				
			||||||
msgstr "Posteingangs-Tag"
 | 
					msgstr "Posteingangs-Tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:103
 | 
					#: documents/models.py:89
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Marks this tag as an inbox tag: All newly consumed documents will be tagged "
 | 
					"Marks this tag as an inbox tag: All newly consumed documents will be tagged "
 | 
				
			||||||
"with inbox tags."
 | 
					"with inbox tags."
 | 
				
			||||||
@ -90,39 +90,39 @@ msgstr ""
 | 
				
			|||||||
"Markiert das Tag als Posteingangs-Tag. Neue Dokumente werden immer mit "
 | 
					"Markiert das Tag als Posteingangs-Tag. Neue Dokumente werden immer mit "
 | 
				
			||||||
"diesem Tag versehen."
 | 
					"diesem Tag versehen."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:108
 | 
					#: documents/models.py:94
 | 
				
			||||||
msgid "tag"
 | 
					msgid "tag"
 | 
				
			||||||
msgstr "Tag"
 | 
					msgstr "Tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:109 documents/models.py:165
 | 
					#: documents/models.py:95 documents/models.py:151
 | 
				
			||||||
msgid "tags"
 | 
					msgid "tags"
 | 
				
			||||||
msgstr "Tags"
 | 
					msgstr "Tags"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:115 documents/models.py:147
 | 
					#: documents/models.py:101 documents/models.py:133
 | 
				
			||||||
msgid "document type"
 | 
					msgid "document type"
 | 
				
			||||||
msgstr "Dokumenttyp"
 | 
					msgstr "Dokumenttyp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:116
 | 
					#: documents/models.py:102
 | 
				
			||||||
msgid "document types"
 | 
					msgid "document types"
 | 
				
			||||||
msgstr "Dokumenttypen"
 | 
					msgstr "Dokumenttypen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:124
 | 
					#: documents/models.py:110
 | 
				
			||||||
msgid "Unencrypted"
 | 
					msgid "Unencrypted"
 | 
				
			||||||
msgstr "Nicht verschlüsselt"
 | 
					msgstr "Nicht verschlüsselt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:125
 | 
					#: documents/models.py:111
 | 
				
			||||||
msgid "Encrypted with GNU Privacy Guard"
 | 
					msgid "Encrypted with GNU Privacy Guard"
 | 
				
			||||||
msgstr "Verschlüsselt mit GNU Privacy Guard"
 | 
					msgstr "Verschlüsselt mit GNU Privacy Guard"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:138
 | 
					#: documents/models.py:124
 | 
				
			||||||
msgid "title"
 | 
					msgid "title"
 | 
				
			||||||
msgstr "Titel"
 | 
					msgstr "Titel"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:151
 | 
					#: documents/models.py:137
 | 
				
			||||||
msgid "content"
 | 
					msgid "content"
 | 
				
			||||||
msgstr "Inhalt"
 | 
					msgstr "Inhalt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:153
 | 
					#: documents/models.py:139
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"The raw, text-only data of the document. This field is primarily used for "
 | 
					"The raw, text-only data of the document. This field is primarily used for "
 | 
				
			||||||
"searching."
 | 
					"searching."
 | 
				
			||||||
@ -130,241 +130,245 @@ msgstr ""
 | 
				
			|||||||
"Der Inhalt des Dokuments in Textform. Dieses Feld wird primär für die Suche "
 | 
					"Der Inhalt des Dokuments in Textform. Dieses Feld wird primär für die Suche "
 | 
				
			||||||
"verwendet."
 | 
					"verwendet."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:158
 | 
					#: documents/models.py:144
 | 
				
			||||||
msgid "mime type"
 | 
					msgid "mime type"
 | 
				
			||||||
msgstr "MIME-Typ"
 | 
					msgstr "MIME-Typ"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:169
 | 
					#: documents/models.py:155
 | 
				
			||||||
msgid "checksum"
 | 
					msgid "checksum"
 | 
				
			||||||
msgstr "Prüfsumme"
 | 
					msgstr "Prüfsumme"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:173
 | 
					#: documents/models.py:159
 | 
				
			||||||
msgid "The checksum of the original document."
 | 
					msgid "The checksum of the original document."
 | 
				
			||||||
msgstr "Die Prüfsumme des originalen Dokuments."
 | 
					msgstr "Die Prüfsumme des originalen Dokuments."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:177
 | 
					#: documents/models.py:163
 | 
				
			||||||
msgid "archive checksum"
 | 
					msgid "archive checksum"
 | 
				
			||||||
msgstr "Archiv-Prüfsumme"
 | 
					msgstr "Archiv-Prüfsumme"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:182
 | 
					#: documents/models.py:168
 | 
				
			||||||
msgid "The checksum of the archived document."
 | 
					msgid "The checksum of the archived document."
 | 
				
			||||||
msgstr "Die Prüfsumme des archivierten Dokuments."
 | 
					msgstr "Die Prüfsumme des archivierten Dokuments."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:186 documents/models.py:342
 | 
					#: documents/models.py:172 documents/models.py:328
 | 
				
			||||||
msgid "created"
 | 
					msgid "created"
 | 
				
			||||||
msgstr "Ausgestellt"
 | 
					msgstr "Ausgestellt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:190
 | 
					#: documents/models.py:176
 | 
				
			||||||
msgid "modified"
 | 
					msgid "modified"
 | 
				
			||||||
msgstr "Geändert"
 | 
					msgstr "Geändert"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:194
 | 
					#: documents/models.py:180
 | 
				
			||||||
msgid "storage type"
 | 
					msgid "storage type"
 | 
				
			||||||
msgstr "Speichertyp"
 | 
					msgstr "Speichertyp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:202
 | 
					#: documents/models.py:188
 | 
				
			||||||
msgid "added"
 | 
					msgid "added"
 | 
				
			||||||
msgstr "Hinzugefügt"
 | 
					msgstr "Hinzugefügt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:206
 | 
					#: documents/models.py:192
 | 
				
			||||||
msgid "filename"
 | 
					msgid "filename"
 | 
				
			||||||
msgstr "Dateiname"
 | 
					msgstr "Dateiname"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:212
 | 
					#: documents/models.py:198
 | 
				
			||||||
msgid "Current filename in storage"
 | 
					msgid "Current filename in storage"
 | 
				
			||||||
msgstr "Aktueller Dateiname im Datenspeicher"
 | 
					msgstr "Aktueller Dateiname im Datenspeicher"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:216
 | 
					#: documents/models.py:202
 | 
				
			||||||
msgid "archive filename"
 | 
					msgid "archive filename"
 | 
				
			||||||
msgstr "Archiv-Dateiname"
 | 
					msgstr "Archiv-Dateiname"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:222
 | 
					#: documents/models.py:208
 | 
				
			||||||
msgid "Current archive filename in storage"
 | 
					msgid "Current archive filename in storage"
 | 
				
			||||||
msgstr "Aktueller Dateiname im Archiv"
 | 
					msgstr "Aktueller Dateiname im Archiv"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:226
 | 
					#: documents/models.py:212
 | 
				
			||||||
msgid "archive serial number"
 | 
					msgid "archive serial number"
 | 
				
			||||||
msgstr "Archiv-Seriennummer"
 | 
					msgstr "Archiv-Seriennummer"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:231
 | 
					#: documents/models.py:217
 | 
				
			||||||
msgid "The position of this document in your physical document archive."
 | 
					msgid "The position of this document in your physical document archive."
 | 
				
			||||||
msgstr "Die Position dieses Dokuments in Ihrem physischen Dokumentenarchiv."
 | 
					msgstr "Die Position dieses Dokuments in Ihrem physischen Dokumentenarchiv."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:237
 | 
					#: documents/models.py:223
 | 
				
			||||||
msgid "document"
 | 
					msgid "document"
 | 
				
			||||||
msgstr "Dokument"
 | 
					msgstr "Dokument"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:238
 | 
					#: documents/models.py:224
 | 
				
			||||||
msgid "documents"
 | 
					msgid "documents"
 | 
				
			||||||
msgstr "Dokumente"
 | 
					msgstr "Dokumente"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:325
 | 
					#: documents/models.py:311
 | 
				
			||||||
msgid "debug"
 | 
					msgid "debug"
 | 
				
			||||||
msgstr "Debug"
 | 
					msgstr "Debug"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:326
 | 
					#: documents/models.py:312
 | 
				
			||||||
msgid "information"
 | 
					msgid "information"
 | 
				
			||||||
msgstr "Information"
 | 
					msgstr "Information"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:327
 | 
					#: documents/models.py:313
 | 
				
			||||||
msgid "warning"
 | 
					msgid "warning"
 | 
				
			||||||
msgstr "Warnung"
 | 
					msgstr "Warnung"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:328
 | 
					#: documents/models.py:314
 | 
				
			||||||
msgid "error"
 | 
					msgid "error"
 | 
				
			||||||
msgstr "Fehler"
 | 
					msgstr "Fehler"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:329
 | 
					#: documents/models.py:315
 | 
				
			||||||
msgid "critical"
 | 
					msgid "critical"
 | 
				
			||||||
msgstr "Kritisch"
 | 
					msgstr "Kritisch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:333
 | 
					#: documents/models.py:319
 | 
				
			||||||
msgid "group"
 | 
					msgid "group"
 | 
				
			||||||
msgstr "Gruppe"
 | 
					msgstr "Gruppe"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:336
 | 
					#: documents/models.py:322
 | 
				
			||||||
msgid "message"
 | 
					msgid "message"
 | 
				
			||||||
msgstr "Nachricht"
 | 
					msgstr "Nachricht"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:339
 | 
					#: documents/models.py:325
 | 
				
			||||||
msgid "level"
 | 
					msgid "level"
 | 
				
			||||||
msgstr "Level"
 | 
					msgstr "Level"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:346
 | 
					#: documents/models.py:332
 | 
				
			||||||
msgid "log"
 | 
					msgid "log"
 | 
				
			||||||
msgstr "Protokoll"
 | 
					msgstr "Protokoll"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:347
 | 
					#: documents/models.py:333
 | 
				
			||||||
msgid "logs"
 | 
					msgid "logs"
 | 
				
			||||||
msgstr "Protokoll"
 | 
					msgstr "Protokoll"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:358 documents/models.py:408
 | 
					#: documents/models.py:344 documents/models.py:394
 | 
				
			||||||
msgid "saved view"
 | 
					msgid "saved view"
 | 
				
			||||||
msgstr "Gespeicherte Ansicht"
 | 
					msgstr "Gespeicherte Ansicht"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:359
 | 
					#: documents/models.py:345
 | 
				
			||||||
msgid "saved views"
 | 
					msgid "saved views"
 | 
				
			||||||
msgstr "Gespeicherte Ansichten"
 | 
					msgstr "Gespeicherte Ansichten"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:362
 | 
					#: documents/models.py:348
 | 
				
			||||||
msgid "user"
 | 
					msgid "user"
 | 
				
			||||||
msgstr "Benutzer"
 | 
					msgstr "Benutzer"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:368
 | 
					#: documents/models.py:354
 | 
				
			||||||
msgid "show on dashboard"
 | 
					msgid "show on dashboard"
 | 
				
			||||||
msgstr "Auf Startseite zeigen"
 | 
					msgstr "Auf Startseite zeigen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:371
 | 
					#: documents/models.py:357
 | 
				
			||||||
msgid "show in sidebar"
 | 
					msgid "show in sidebar"
 | 
				
			||||||
msgstr "In Seitenleiste zeigen"
 | 
					msgstr "In Seitenleiste zeigen"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:375
 | 
					#: documents/models.py:361
 | 
				
			||||||
msgid "sort field"
 | 
					msgid "sort field"
 | 
				
			||||||
msgstr "Sortierfeld"
 | 
					msgstr "Sortierfeld"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:378
 | 
					#: documents/models.py:364
 | 
				
			||||||
msgid "sort reverse"
 | 
					msgid "sort reverse"
 | 
				
			||||||
msgstr "Umgekehrte Sortierung"
 | 
					msgstr "Umgekehrte Sortierung"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:384
 | 
					#: documents/models.py:370
 | 
				
			||||||
msgid "title contains"
 | 
					msgid "title contains"
 | 
				
			||||||
msgstr "Titel enthält"
 | 
					msgstr "Titel enthält"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:385
 | 
					#: documents/models.py:371
 | 
				
			||||||
msgid "content contains"
 | 
					msgid "content contains"
 | 
				
			||||||
msgstr "Inhalt enthält"
 | 
					msgstr "Inhalt enthält"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:386
 | 
					#: documents/models.py:372
 | 
				
			||||||
msgid "ASN is"
 | 
					msgid "ASN is"
 | 
				
			||||||
msgstr "ASN ist"
 | 
					msgstr "ASN ist"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:387
 | 
					#: documents/models.py:373
 | 
				
			||||||
msgid "correspondent is"
 | 
					msgid "correspondent is"
 | 
				
			||||||
msgstr "Korrespondent ist"
 | 
					msgstr "Korrespondent ist"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:388
 | 
					#: documents/models.py:374
 | 
				
			||||||
msgid "document type is"
 | 
					msgid "document type is"
 | 
				
			||||||
msgstr "Dokumenttyp ist"
 | 
					msgstr "Dokumenttyp ist"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:389
 | 
					#: documents/models.py:375
 | 
				
			||||||
msgid "is in inbox"
 | 
					msgid "is in inbox"
 | 
				
			||||||
msgstr "Ist im Posteingang"
 | 
					msgstr "Ist im Posteingang"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:390
 | 
					#: documents/models.py:376
 | 
				
			||||||
msgid "has tag"
 | 
					msgid "has tag"
 | 
				
			||||||
msgstr "Hat Tag"
 | 
					msgstr "Hat Tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:391
 | 
					#: documents/models.py:377
 | 
				
			||||||
msgid "has any tag"
 | 
					msgid "has any tag"
 | 
				
			||||||
msgstr "Hat irgendein Tag"
 | 
					msgstr "Hat irgendein Tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:392
 | 
					#: documents/models.py:378
 | 
				
			||||||
msgid "created before"
 | 
					msgid "created before"
 | 
				
			||||||
msgstr "Ausgestellt vor"
 | 
					msgstr "Ausgestellt vor"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:393
 | 
					#: documents/models.py:379
 | 
				
			||||||
msgid "created after"
 | 
					msgid "created after"
 | 
				
			||||||
msgstr "Ausgestellt nach"
 | 
					msgstr "Ausgestellt nach"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:394
 | 
					#: documents/models.py:380
 | 
				
			||||||
msgid "created year is"
 | 
					msgid "created year is"
 | 
				
			||||||
msgstr "Ausgestellt im Jahr"
 | 
					msgstr "Ausgestellt im Jahr"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:395
 | 
					#: documents/models.py:381
 | 
				
			||||||
msgid "created month is"
 | 
					msgid "created month is"
 | 
				
			||||||
msgstr "Ausgestellt im Monat"
 | 
					msgstr "Ausgestellt im Monat"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:396
 | 
					#: documents/models.py:382
 | 
				
			||||||
msgid "created day is"
 | 
					msgid "created day is"
 | 
				
			||||||
msgstr "Ausgestellt am Tag"
 | 
					msgstr "Ausgestellt am Tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:397
 | 
					#: documents/models.py:383
 | 
				
			||||||
msgid "added before"
 | 
					msgid "added before"
 | 
				
			||||||
msgstr "Hinzugefügt vor"
 | 
					msgstr "Hinzugefügt vor"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:398
 | 
					#: documents/models.py:384
 | 
				
			||||||
msgid "added after"
 | 
					msgid "added after"
 | 
				
			||||||
msgstr "Hinzugefügt nach"
 | 
					msgstr "Hinzugefügt nach"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:399
 | 
					#: documents/models.py:385
 | 
				
			||||||
msgid "modified before"
 | 
					msgid "modified before"
 | 
				
			||||||
msgstr "Geändert vor"
 | 
					msgstr "Geändert vor"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:400
 | 
					#: documents/models.py:386
 | 
				
			||||||
msgid "modified after"
 | 
					msgid "modified after"
 | 
				
			||||||
msgstr "Geändert nach"
 | 
					msgstr "Geändert nach"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:401
 | 
					#: documents/models.py:387
 | 
				
			||||||
msgid "does not have tag"
 | 
					msgid "does not have tag"
 | 
				
			||||||
msgstr "Hat nicht folgendes Tag"
 | 
					msgstr "Hat nicht folgendes Tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:412
 | 
					#: documents/models.py:398
 | 
				
			||||||
msgid "rule type"
 | 
					msgid "rule type"
 | 
				
			||||||
msgstr "Regeltyp"
 | 
					msgstr "Regeltyp"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:416
 | 
					#: documents/models.py:402
 | 
				
			||||||
msgid "value"
 | 
					msgid "value"
 | 
				
			||||||
msgstr "Wert"
 | 
					msgstr "Wert"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:422
 | 
					#: documents/models.py:408
 | 
				
			||||||
msgid "filter rule"
 | 
					msgid "filter rule"
 | 
				
			||||||
msgstr "Filterregel"
 | 
					msgstr "Filterregel"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:423
 | 
					#: documents/models.py:409
 | 
				
			||||||
msgid "filter rules"
 | 
					msgid "filter rules"
 | 
				
			||||||
msgstr "Filterregeln"
 | 
					msgstr "Filterregeln"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/serialisers.py:52
 | 
					#: documents/serialisers.py:53
 | 
				
			||||||
#, python-format
 | 
					#, python-format
 | 
				
			||||||
msgid "Invalid regular expresssion: %(error)s"
 | 
					msgid "Invalid regular expresssion: %(error)s"
 | 
				
			||||||
msgstr "Ungültiger regulärer Ausdruck: %(error)s"
 | 
					msgstr "Ungültiger regulärer Ausdruck: %(error)s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/serialisers.py:378
 | 
					#: documents/serialisers.py:177
 | 
				
			||||||
 | 
					msgid "Invalid color."
 | 
				
			||||||
 | 
					msgstr "Ungültige Farbe."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/serialisers.py:451
 | 
				
			||||||
#, python-format
 | 
					#, python-format
 | 
				
			||||||
msgid "File type %(type)s not supported"
 | 
					msgid "File type %(type)s not supported"
 | 
				
			||||||
msgstr "Dateityp %(type)s nicht unterstützt"
 | 
					msgstr "Dateityp %(type)s nicht unterstützt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/templates/index.html:20
 | 
					#: documents/templates/index.html:21
 | 
				
			||||||
msgid "Paperless-ng is loading..."
 | 
					msgid "Paperless-ng is loading..."
 | 
				
			||||||
msgstr "Paperless-ng wird geladen..."
 | 
					msgstr "Paperless-ng wird geladen..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -406,30 +410,34 @@ msgstr "Passwort"
 | 
				
			|||||||
msgid "Sign in"
 | 
					msgid "Sign in"
 | 
				
			||||||
msgstr "Anmelden"
 | 
					msgstr "Anmelden"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:291
 | 
					#: paperless/settings.py:297
 | 
				
			||||||
msgid "English (US)"
 | 
					msgid "English (US)"
 | 
				
			||||||
msgstr "Englisch (US)"
 | 
					msgstr "Englisch (US)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:292
 | 
					#: paperless/settings.py:298
 | 
				
			||||||
msgid "English (GB)"
 | 
					msgid "English (GB)"
 | 
				
			||||||
msgstr "Englisch (UK)"
 | 
					msgstr "Englisch (UK)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:293
 | 
					#: paperless/settings.py:299
 | 
				
			||||||
msgid "German"
 | 
					msgid "German"
 | 
				
			||||||
msgstr "Deutsch"
 | 
					msgstr "Deutsch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:294
 | 
					#: paperless/settings.py:300
 | 
				
			||||||
msgid "Dutch"
 | 
					msgid "Dutch"
 | 
				
			||||||
msgstr "Niederländisch"
 | 
					msgstr "Niederländisch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:295
 | 
					#: paperless/settings.py:301
 | 
				
			||||||
msgid "French"
 | 
					msgid "French"
 | 
				
			||||||
msgstr "Französisch"
 | 
					msgstr "Französisch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:296
 | 
					#: paperless/settings.py:302
 | 
				
			||||||
msgid "Portuguese (Brazil)"
 | 
					msgid "Portuguese (Brazil)"
 | 
				
			||||||
msgstr "Portugiesisch (Brasilien)"
 | 
					msgstr "Portugiesisch (Brasilien)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless/settings.py:303
 | 
				
			||||||
 | 
					msgid "Italian"
 | 
				
			||||||
 | 
					msgstr "Italienisch"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/urls.py:118
 | 
					#: paperless/urls.py:118
 | 
				
			||||||
msgid "Paperless-ng administration"
 | 
					msgid "Paperless-ng administration"
 | 
				
			||||||
msgstr "Paperless-ng Administration"
 | 
					msgstr "Paperless-ng Administration"
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,7 @@ msgid ""
 | 
				
			|||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
"Project-Id-Version: PACKAGE VERSION\n"
 | 
					"Project-Id-Version: PACKAGE VERSION\n"
 | 
				
			||||||
"Report-Msgid-Bugs-To: \n"
 | 
					"Report-Msgid-Bugs-To: \n"
 | 
				
			||||||
"POT-Creation-Date: 2021-02-24 16:49+0100\n"
 | 
					"POT-Creation-Date: 2021-02-26 12:56+0100\n"
 | 
				
			||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
					"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 | 
				
			||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
					"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 | 
				
			||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
					"Language-Team: LANGUAGE <LL@li.org>\n"
 | 
				
			||||||
@ -45,7 +45,7 @@ msgstr ""
 | 
				
			|||||||
msgid "Automatic"
 | 
					msgid "Automatic"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:41 documents/models.py:364 paperless_mail/models.py:25
 | 
					#: documents/models.py:41 documents/models.py:350 paperless_mail/models.py:25
 | 
				
			||||||
#: paperless_mail/models.py:109
 | 
					#: paperless_mail/models.py:109
 | 
				
			||||||
msgid "name"
 | 
					msgid "name"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
@ -62,7 +62,7 @@ msgstr ""
 | 
				
			|||||||
msgid "is insensitive"
 | 
					msgid "is insensitive"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:74 documents/models.py:134
 | 
					#: documents/models.py:74 documents/models.py:120
 | 
				
			||||||
msgid "correspondent"
 | 
					msgid "correspondent"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -70,293 +70,297 @@ msgstr ""
 | 
				
			|||||||
msgid "correspondents"
 | 
					msgid "correspondents"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:97
 | 
					#: documents/models.py:81
 | 
				
			||||||
msgid "color"
 | 
					msgid "color"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:101
 | 
					#: documents/models.py:87
 | 
				
			||||||
msgid "is inbox tag"
 | 
					msgid "is inbox tag"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:103
 | 
					#: documents/models.py:89
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"Marks this tag as an inbox tag: All newly consumed documents will be tagged "
 | 
					"Marks this tag as an inbox tag: All newly consumed documents will be tagged "
 | 
				
			||||||
"with inbox tags."
 | 
					"with inbox tags."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:108
 | 
					#: documents/models.py:94
 | 
				
			||||||
msgid "tag"
 | 
					msgid "tag"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:109 documents/models.py:165
 | 
					#: documents/models.py:95 documents/models.py:151
 | 
				
			||||||
msgid "tags"
 | 
					msgid "tags"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:115 documents/models.py:147
 | 
					#: documents/models.py:101 documents/models.py:133
 | 
				
			||||||
msgid "document type"
 | 
					msgid "document type"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:116
 | 
					#: documents/models.py:102
 | 
				
			||||||
msgid "document types"
 | 
					msgid "document types"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:124
 | 
					#: documents/models.py:110
 | 
				
			||||||
msgid "Unencrypted"
 | 
					msgid "Unencrypted"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:125
 | 
					#: documents/models.py:111
 | 
				
			||||||
msgid "Encrypted with GNU Privacy Guard"
 | 
					msgid "Encrypted with GNU Privacy Guard"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:138
 | 
					#: documents/models.py:124
 | 
				
			||||||
msgid "title"
 | 
					msgid "title"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:151
 | 
					#: documents/models.py:137
 | 
				
			||||||
msgid "content"
 | 
					msgid "content"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:153
 | 
					#: documents/models.py:139
 | 
				
			||||||
msgid ""
 | 
					msgid ""
 | 
				
			||||||
"The raw, text-only data of the document. This field is primarily used for "
 | 
					"The raw, text-only data of the document. This field is primarily used for "
 | 
				
			||||||
"searching."
 | 
					"searching."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:158
 | 
					#: documents/models.py:144
 | 
				
			||||||
msgid "mime type"
 | 
					msgid "mime type"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:169
 | 
					#: documents/models.py:155
 | 
				
			||||||
msgid "checksum"
 | 
					msgid "checksum"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:173
 | 
					#: documents/models.py:159
 | 
				
			||||||
msgid "The checksum of the original document."
 | 
					msgid "The checksum of the original document."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:177
 | 
					#: documents/models.py:163
 | 
				
			||||||
msgid "archive checksum"
 | 
					msgid "archive checksum"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:182
 | 
					#: documents/models.py:168
 | 
				
			||||||
msgid "The checksum of the archived document."
 | 
					msgid "The checksum of the archived document."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:186 documents/models.py:342
 | 
					#: documents/models.py:172 documents/models.py:328
 | 
				
			||||||
msgid "created"
 | 
					msgid "created"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:190
 | 
					#: documents/models.py:176
 | 
				
			||||||
msgid "modified"
 | 
					msgid "modified"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:194
 | 
					#: documents/models.py:180
 | 
				
			||||||
msgid "storage type"
 | 
					msgid "storage type"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:202
 | 
					#: documents/models.py:188
 | 
				
			||||||
msgid "added"
 | 
					msgid "added"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:206
 | 
					#: documents/models.py:192
 | 
				
			||||||
msgid "filename"
 | 
					msgid "filename"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:212
 | 
					#: documents/models.py:198
 | 
				
			||||||
msgid "Current filename in storage"
 | 
					msgid "Current filename in storage"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:216
 | 
					#: documents/models.py:202
 | 
				
			||||||
msgid "archive filename"
 | 
					msgid "archive filename"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:222
 | 
					#: documents/models.py:208
 | 
				
			||||||
msgid "Current archive filename in storage"
 | 
					msgid "Current archive filename in storage"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:226
 | 
					#: documents/models.py:212
 | 
				
			||||||
msgid "archive serial number"
 | 
					msgid "archive serial number"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:231
 | 
					#: documents/models.py:217
 | 
				
			||||||
msgid "The position of this document in your physical document archive."
 | 
					msgid "The position of this document in your physical document archive."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:237
 | 
					#: documents/models.py:223
 | 
				
			||||||
msgid "document"
 | 
					msgid "document"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:238
 | 
					#: documents/models.py:224
 | 
				
			||||||
msgid "documents"
 | 
					msgid "documents"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:325
 | 
					#: documents/models.py:311
 | 
				
			||||||
msgid "debug"
 | 
					msgid "debug"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:326
 | 
					#: documents/models.py:312
 | 
				
			||||||
msgid "information"
 | 
					msgid "information"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:327
 | 
					#: documents/models.py:313
 | 
				
			||||||
msgid "warning"
 | 
					msgid "warning"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:328
 | 
					#: documents/models.py:314
 | 
				
			||||||
msgid "error"
 | 
					msgid "error"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:329
 | 
					#: documents/models.py:315
 | 
				
			||||||
msgid "critical"
 | 
					msgid "critical"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:333
 | 
					#: documents/models.py:319
 | 
				
			||||||
msgid "group"
 | 
					msgid "group"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:336
 | 
					#: documents/models.py:322
 | 
				
			||||||
msgid "message"
 | 
					msgid "message"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:339
 | 
					#: documents/models.py:325
 | 
				
			||||||
msgid "level"
 | 
					msgid "level"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:346
 | 
					#: documents/models.py:332
 | 
				
			||||||
msgid "log"
 | 
					msgid "log"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:347
 | 
					#: documents/models.py:333
 | 
				
			||||||
msgid "logs"
 | 
					msgid "logs"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:358 documents/models.py:408
 | 
					#: documents/models.py:344 documents/models.py:394
 | 
				
			||||||
msgid "saved view"
 | 
					msgid "saved view"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:359
 | 
					#: documents/models.py:345
 | 
				
			||||||
msgid "saved views"
 | 
					msgid "saved views"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:362
 | 
					#: documents/models.py:348
 | 
				
			||||||
msgid "user"
 | 
					msgid "user"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:368
 | 
					#: documents/models.py:354
 | 
				
			||||||
msgid "show on dashboard"
 | 
					msgid "show on dashboard"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:371
 | 
					#: documents/models.py:357
 | 
				
			||||||
msgid "show in sidebar"
 | 
					msgid "show in sidebar"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:375
 | 
					#: documents/models.py:361
 | 
				
			||||||
msgid "sort field"
 | 
					msgid "sort field"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:378
 | 
					#: documents/models.py:364
 | 
				
			||||||
msgid "sort reverse"
 | 
					msgid "sort reverse"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:384
 | 
					#: documents/models.py:370
 | 
				
			||||||
msgid "title contains"
 | 
					msgid "title contains"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:385
 | 
					#: documents/models.py:371
 | 
				
			||||||
msgid "content contains"
 | 
					msgid "content contains"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:386
 | 
					#: documents/models.py:372
 | 
				
			||||||
msgid "ASN is"
 | 
					msgid "ASN is"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:387
 | 
					#: documents/models.py:373
 | 
				
			||||||
msgid "correspondent is"
 | 
					msgid "correspondent is"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:388
 | 
					#: documents/models.py:374
 | 
				
			||||||
msgid "document type is"
 | 
					msgid "document type is"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:389
 | 
					#: documents/models.py:375
 | 
				
			||||||
msgid "is in inbox"
 | 
					msgid "is in inbox"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:390
 | 
					#: documents/models.py:376
 | 
				
			||||||
msgid "has tag"
 | 
					msgid "has tag"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:391
 | 
					#: documents/models.py:377
 | 
				
			||||||
msgid "has any tag"
 | 
					msgid "has any tag"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:392
 | 
					#: documents/models.py:378
 | 
				
			||||||
msgid "created before"
 | 
					msgid "created before"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:393
 | 
					#: documents/models.py:379
 | 
				
			||||||
msgid "created after"
 | 
					msgid "created after"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:394
 | 
					#: documents/models.py:380
 | 
				
			||||||
msgid "created year is"
 | 
					msgid "created year is"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:395
 | 
					#: documents/models.py:381
 | 
				
			||||||
msgid "created month is"
 | 
					msgid "created month is"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:396
 | 
					#: documents/models.py:382
 | 
				
			||||||
msgid "created day is"
 | 
					msgid "created day is"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:397
 | 
					#: documents/models.py:383
 | 
				
			||||||
msgid "added before"
 | 
					msgid "added before"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:398
 | 
					#: documents/models.py:384
 | 
				
			||||||
msgid "added after"
 | 
					msgid "added after"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:399
 | 
					#: documents/models.py:385
 | 
				
			||||||
msgid "modified before"
 | 
					msgid "modified before"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:400
 | 
					#: documents/models.py:386
 | 
				
			||||||
msgid "modified after"
 | 
					msgid "modified after"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:401
 | 
					#: documents/models.py:387
 | 
				
			||||||
msgid "does not have tag"
 | 
					msgid "does not have tag"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:412
 | 
					#: documents/models.py:398
 | 
				
			||||||
msgid "rule type"
 | 
					msgid "rule type"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:416
 | 
					#: documents/models.py:402
 | 
				
			||||||
msgid "value"
 | 
					msgid "value"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:422
 | 
					#: documents/models.py:408
 | 
				
			||||||
msgid "filter rule"
 | 
					msgid "filter rule"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/models.py:423
 | 
					#: documents/models.py:409
 | 
				
			||||||
msgid "filter rules"
 | 
					msgid "filter rules"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/serialisers.py:52
 | 
					#: documents/serialisers.py:53
 | 
				
			||||||
#, python-format
 | 
					#, python-format
 | 
				
			||||||
msgid "Invalid regular expresssion: %(error)s"
 | 
					msgid "Invalid regular expresssion: %(error)s"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/serialisers.py:378
 | 
					#: documents/serialisers.py:177
 | 
				
			||||||
 | 
					msgid "Invalid color."
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/serialisers.py:451
 | 
				
			||||||
#, python-format
 | 
					#, python-format
 | 
				
			||||||
msgid "File type %(type)s not supported"
 | 
					msgid "File type %(type)s not supported"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: documents/templates/index.html:20
 | 
					#: documents/templates/index.html:21
 | 
				
			||||||
msgid "Paperless-ng is loading..."
 | 
					msgid "Paperless-ng is loading..."
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -396,30 +400,34 @@ msgstr ""
 | 
				
			|||||||
msgid "Sign in"
 | 
					msgid "Sign in"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:291
 | 
					#: paperless/settings.py:297
 | 
				
			||||||
msgid "English (US)"
 | 
					msgid "English (US)"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:292
 | 
					#: paperless/settings.py:298
 | 
				
			||||||
msgid "English (GB)"
 | 
					msgid "English (GB)"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:293
 | 
					#: paperless/settings.py:299
 | 
				
			||||||
msgid "German"
 | 
					msgid "German"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:294
 | 
					#: paperless/settings.py:300
 | 
				
			||||||
msgid "Dutch"
 | 
					msgid "Dutch"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:295
 | 
					#: paperless/settings.py:301
 | 
				
			||||||
msgid "French"
 | 
					msgid "French"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/settings.py:296
 | 
					#: paperless/settings.py:302
 | 
				
			||||||
msgid "Portuguese (Brazil)"
 | 
					msgid "Portuguese (Brazil)"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless/settings.py:303
 | 
				
			||||||
 | 
					msgid "Italian"
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#: paperless/urls.py:118
 | 
					#: paperless/urls.py:118
 | 
				
			||||||
msgid "Paperless-ng administration"
 | 
					msgid "Paperless-ng administration"
 | 
				
			||||||
msgstr ""
 | 
					msgstr ""
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										673
									
								
								src/locale/it/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										673
									
								
								src/locale/it/LC_MESSAGES/django.po
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,673 @@
 | 
				
			|||||||
 | 
					# SOME DESCRIPTIVE TITLE.
 | 
				
			||||||
 | 
					# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 | 
				
			||||||
 | 
					# This file is distributed under the same license as the PACKAGE package.
 | 
				
			||||||
 | 
					# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					# Translators:
 | 
				
			||||||
 | 
					# Ioma Taani, 2021
 | 
				
			||||||
 | 
					# Jonas Winkler, 2021
 | 
				
			||||||
 | 
					# Oliver Thomas Cervera <cervera93-10@yahoo.it>, 2021
 | 
				
			||||||
 | 
					# 
 | 
				
			||||||
 | 
					#, fuzzy
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Project-Id-Version: PACKAGE VERSION\n"
 | 
				
			||||||
 | 
					"Report-Msgid-Bugs-To: \n"
 | 
				
			||||||
 | 
					"POT-Creation-Date: 2021-02-24 16:49+0100\n"
 | 
				
			||||||
 | 
					"PO-Revision-Date: 2021-02-16 18:37+0000\n"
 | 
				
			||||||
 | 
					"Last-Translator: Oliver Thomas Cervera <cervera93-10@yahoo.it>, 2021\n"
 | 
				
			||||||
 | 
					"Language-Team: Italian (https://www.transifex.com/paperless/teams/115905/it/)\n"
 | 
				
			||||||
 | 
					"MIME-Version: 1.0\n"
 | 
				
			||||||
 | 
					"Content-Type: text/plain; charset=UTF-8\n"
 | 
				
			||||||
 | 
					"Content-Transfer-Encoding: 8bit\n"
 | 
				
			||||||
 | 
					"Language: it\n"
 | 
				
			||||||
 | 
					"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/apps.py:10
 | 
				
			||||||
 | 
					msgid "Documents"
 | 
				
			||||||
 | 
					msgstr "Documenti"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:32
 | 
				
			||||||
 | 
					msgid "Any word"
 | 
				
			||||||
 | 
					msgstr "Qualsiasi parola"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:33
 | 
				
			||||||
 | 
					msgid "All words"
 | 
				
			||||||
 | 
					msgstr "Tutte le parole"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:34
 | 
				
			||||||
 | 
					msgid "Exact match"
 | 
				
			||||||
 | 
					msgstr "Corrispondenza esatta"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:35
 | 
				
			||||||
 | 
					msgid "Regular expression"
 | 
				
			||||||
 | 
					msgstr "Espressione regolare"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:36
 | 
				
			||||||
 | 
					msgid "Fuzzy word"
 | 
				
			||||||
 | 
					msgstr "Parole fuzzy"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:37
 | 
				
			||||||
 | 
					msgid "Automatic"
 | 
				
			||||||
 | 
					msgstr "Automatico"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:41 documents/models.py:364 paperless_mail/models.py:25
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:109
 | 
				
			||||||
 | 
					msgid "name"
 | 
				
			||||||
 | 
					msgstr "nome"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:45
 | 
				
			||||||
 | 
					msgid "match"
 | 
				
			||||||
 | 
					msgstr "corrispondenza"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:49
 | 
				
			||||||
 | 
					msgid "matching algorithm"
 | 
				
			||||||
 | 
					msgstr "algoritmo di corrispondenza"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:55
 | 
				
			||||||
 | 
					msgid "is insensitive"
 | 
				
			||||||
 | 
					msgstr "non distingue maiuscole e minuscole"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:74 documents/models.py:134
 | 
				
			||||||
 | 
					msgid "correspondent"
 | 
				
			||||||
 | 
					msgstr "corrispondente"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:75
 | 
				
			||||||
 | 
					msgid "correspondents"
 | 
				
			||||||
 | 
					msgstr "corrispondenti"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:97
 | 
				
			||||||
 | 
					msgid "color"
 | 
				
			||||||
 | 
					msgstr "colore"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:101
 | 
				
			||||||
 | 
					msgid "is inbox tag"
 | 
				
			||||||
 | 
					msgstr "è tag di arrivo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:103
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					"Marks this tag as an inbox tag: All newly consumed documents will be tagged "
 | 
				
			||||||
 | 
					"with inbox tags."
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Contrassegna questo tag come tag in arrivo: tutti i documenti elaborati "
 | 
				
			||||||
 | 
					"verranno taggati con questo tag."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:108
 | 
				
			||||||
 | 
					msgid "tag"
 | 
				
			||||||
 | 
					msgstr "tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:109 documents/models.py:165
 | 
				
			||||||
 | 
					msgid "tags"
 | 
				
			||||||
 | 
					msgstr "tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:115 documents/models.py:147
 | 
				
			||||||
 | 
					msgid "document type"
 | 
				
			||||||
 | 
					msgstr "tipo di documento"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:116
 | 
				
			||||||
 | 
					msgid "document types"
 | 
				
			||||||
 | 
					msgstr "tipi di documento"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:124
 | 
				
			||||||
 | 
					msgid "Unencrypted"
 | 
				
			||||||
 | 
					msgstr "Non criptato"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:125
 | 
				
			||||||
 | 
					msgid "Encrypted with GNU Privacy Guard"
 | 
				
			||||||
 | 
					msgstr "Criptato con GNU Privacy Guard"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:138
 | 
				
			||||||
 | 
					msgid "title"
 | 
				
			||||||
 | 
					msgstr "titolo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:151
 | 
				
			||||||
 | 
					msgid "content"
 | 
				
			||||||
 | 
					msgstr "contenuto"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:153
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					"The raw, text-only data of the document. This field is primarily used for "
 | 
				
			||||||
 | 
					"searching."
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"I dati grezzi o solo testo del documento. Questo campo è usato "
 | 
				
			||||||
 | 
					"principalmente per la ricerca."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:158
 | 
				
			||||||
 | 
					msgid "mime type"
 | 
				
			||||||
 | 
					msgstr "tipo mime"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:169
 | 
				
			||||||
 | 
					msgid "checksum"
 | 
				
			||||||
 | 
					msgstr "checksum"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:173
 | 
				
			||||||
 | 
					msgid "The checksum of the original document."
 | 
				
			||||||
 | 
					msgstr "Il checksum del documento originale."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:177
 | 
				
			||||||
 | 
					msgid "archive checksum"
 | 
				
			||||||
 | 
					msgstr "checksum dell'archivio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:182
 | 
				
			||||||
 | 
					msgid "The checksum of the archived document."
 | 
				
			||||||
 | 
					msgstr "Il checksum del documento archiviato."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:186 documents/models.py:342
 | 
				
			||||||
 | 
					msgid "created"
 | 
				
			||||||
 | 
					msgstr "creato il"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:190
 | 
				
			||||||
 | 
					msgid "modified"
 | 
				
			||||||
 | 
					msgstr "modificato il"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:194
 | 
				
			||||||
 | 
					msgid "storage type"
 | 
				
			||||||
 | 
					msgstr "tipo di storage"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:202
 | 
				
			||||||
 | 
					msgid "added"
 | 
				
			||||||
 | 
					msgstr "aggiunto il"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:206
 | 
				
			||||||
 | 
					msgid "filename"
 | 
				
			||||||
 | 
					msgstr "nome del file"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:212
 | 
				
			||||||
 | 
					msgid "Current filename in storage"
 | 
				
			||||||
 | 
					msgstr "Nome del file corrente nello storage"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:216
 | 
				
			||||||
 | 
					msgid "archive filename"
 | 
				
			||||||
 | 
					msgstr "Nome file in archivio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:222
 | 
				
			||||||
 | 
					msgid "Current archive filename in storage"
 | 
				
			||||||
 | 
					msgstr "Il nome del file nell'archiviazione"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:226
 | 
				
			||||||
 | 
					msgid "archive serial number"
 | 
				
			||||||
 | 
					msgstr "numero seriale dell'archivio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:231
 | 
				
			||||||
 | 
					msgid "The position of this document in your physical document archive."
 | 
				
			||||||
 | 
					msgstr "Posizione di questo documento all'interno dell'archivio fisico."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:237
 | 
				
			||||||
 | 
					msgid "document"
 | 
				
			||||||
 | 
					msgstr "documento"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:238
 | 
				
			||||||
 | 
					msgid "documents"
 | 
				
			||||||
 | 
					msgstr "documenti"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:325
 | 
				
			||||||
 | 
					msgid "debug"
 | 
				
			||||||
 | 
					msgstr "debug"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:326
 | 
				
			||||||
 | 
					msgid "information"
 | 
				
			||||||
 | 
					msgstr "informazione"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:327
 | 
				
			||||||
 | 
					msgid "warning"
 | 
				
			||||||
 | 
					msgstr "avvertimento"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:328
 | 
				
			||||||
 | 
					msgid "error"
 | 
				
			||||||
 | 
					msgstr "errore"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:329
 | 
				
			||||||
 | 
					msgid "critical"
 | 
				
			||||||
 | 
					msgstr "critico"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:333
 | 
				
			||||||
 | 
					msgid "group"
 | 
				
			||||||
 | 
					msgstr "gruppo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:336
 | 
				
			||||||
 | 
					msgid "message"
 | 
				
			||||||
 | 
					msgstr "messaggio"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:339
 | 
				
			||||||
 | 
					msgid "level"
 | 
				
			||||||
 | 
					msgstr "livello"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:346
 | 
				
			||||||
 | 
					msgid "log"
 | 
				
			||||||
 | 
					msgstr "log"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:347
 | 
				
			||||||
 | 
					msgid "logs"
 | 
				
			||||||
 | 
					msgstr "log"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:358 documents/models.py:408
 | 
				
			||||||
 | 
					msgid "saved view"
 | 
				
			||||||
 | 
					msgstr "vista salvata"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:359
 | 
				
			||||||
 | 
					msgid "saved views"
 | 
				
			||||||
 | 
					msgstr "viste salvate"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:362
 | 
				
			||||||
 | 
					msgid "user"
 | 
				
			||||||
 | 
					msgstr "utente"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:368
 | 
				
			||||||
 | 
					msgid "show on dashboard"
 | 
				
			||||||
 | 
					msgstr "mostra sul cruscotto"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:371
 | 
				
			||||||
 | 
					msgid "show in sidebar"
 | 
				
			||||||
 | 
					msgstr "mostra nella barra laterale"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:375
 | 
				
			||||||
 | 
					msgid "sort field"
 | 
				
			||||||
 | 
					msgstr "campo di ordinamento"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:378
 | 
				
			||||||
 | 
					msgid "sort reverse"
 | 
				
			||||||
 | 
					msgstr "ordine invertito"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:384
 | 
				
			||||||
 | 
					msgid "title contains"
 | 
				
			||||||
 | 
					msgstr "il titolo contiene"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:385
 | 
				
			||||||
 | 
					msgid "content contains"
 | 
				
			||||||
 | 
					msgstr "il contenuto contiene"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:386
 | 
				
			||||||
 | 
					msgid "ASN is"
 | 
				
			||||||
 | 
					msgstr "ASN è"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:387
 | 
				
			||||||
 | 
					msgid "correspondent is"
 | 
				
			||||||
 | 
					msgstr "la corrispondenza è"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:388
 | 
				
			||||||
 | 
					msgid "document type is"
 | 
				
			||||||
 | 
					msgstr "il tipo di documento è"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:389
 | 
				
			||||||
 | 
					msgid "is in inbox"
 | 
				
			||||||
 | 
					msgstr "è in arrivo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:390
 | 
				
			||||||
 | 
					msgid "has tag"
 | 
				
			||||||
 | 
					msgstr "ha etichetta"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:391
 | 
				
			||||||
 | 
					msgid "has any tag"
 | 
				
			||||||
 | 
					msgstr "ha qualsiasi etichetta"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:392
 | 
				
			||||||
 | 
					msgid "created before"
 | 
				
			||||||
 | 
					msgstr "creato prima del"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:393
 | 
				
			||||||
 | 
					msgid "created after"
 | 
				
			||||||
 | 
					msgstr "creato dopo il"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:394
 | 
				
			||||||
 | 
					msgid "created year is"
 | 
				
			||||||
 | 
					msgstr "l'anno di creazione è"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:395
 | 
				
			||||||
 | 
					msgid "created month is"
 | 
				
			||||||
 | 
					msgstr "il mese di creazione è"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:396
 | 
				
			||||||
 | 
					msgid "created day is"
 | 
				
			||||||
 | 
					msgstr "il giorno di creazione è"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:397
 | 
				
			||||||
 | 
					msgid "added before"
 | 
				
			||||||
 | 
					msgstr "aggiunto prima del"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:398
 | 
				
			||||||
 | 
					msgid "added after"
 | 
				
			||||||
 | 
					msgstr "aggiunto dopo il"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:399
 | 
				
			||||||
 | 
					msgid "modified before"
 | 
				
			||||||
 | 
					msgstr "modificato prima del"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:400
 | 
				
			||||||
 | 
					msgid "modified after"
 | 
				
			||||||
 | 
					msgstr "modificato dopo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:401
 | 
				
			||||||
 | 
					msgid "does not have tag"
 | 
				
			||||||
 | 
					msgstr "non ha tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:412
 | 
				
			||||||
 | 
					msgid "rule type"
 | 
				
			||||||
 | 
					msgstr "tipo di regola"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:416
 | 
				
			||||||
 | 
					msgid "value"
 | 
				
			||||||
 | 
					msgstr "valore"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:422
 | 
				
			||||||
 | 
					msgid "filter rule"
 | 
				
			||||||
 | 
					msgstr "regola filtro"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/models.py:423
 | 
				
			||||||
 | 
					msgid "filter rules"
 | 
				
			||||||
 | 
					msgstr "regole filtro"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/serialisers.py:52
 | 
				
			||||||
 | 
					#, python-format
 | 
				
			||||||
 | 
					msgid "Invalid regular expresssion: %(error)s"
 | 
				
			||||||
 | 
					msgstr "Espressione regolare non valida: %(error)s"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/serialisers.py:378
 | 
				
			||||||
 | 
					#, python-format
 | 
				
			||||||
 | 
					msgid "File type %(type)s not supported"
 | 
				
			||||||
 | 
					msgstr "Il tipo di file %(type)s non è supportato"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/templates/index.html:20
 | 
				
			||||||
 | 
					msgid "Paperless-ng is loading..."
 | 
				
			||||||
 | 
					msgstr "Paperless-ng si sta caricando..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/templates/registration/logged_out.html:13
 | 
				
			||||||
 | 
					msgid "Paperless-ng signed out"
 | 
				
			||||||
 | 
					msgstr "Paperless-ng è uscito"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/templates/registration/logged_out.html:41
 | 
				
			||||||
 | 
					msgid "You have been successfully logged out. Bye!"
 | 
				
			||||||
 | 
					msgstr "Vi siete disconnessi. Ciao!"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/templates/registration/logged_out.html:42
 | 
				
			||||||
 | 
					msgid "Sign in again"
 | 
				
			||||||
 | 
					msgstr "Rientra nuovamente"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/templates/registration/login.html:13
 | 
				
			||||||
 | 
					msgid "Paperless-ng sign in"
 | 
				
			||||||
 | 
					msgstr "Accedi a Paperless-ng"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/templates/registration/login.html:42
 | 
				
			||||||
 | 
					msgid "Please sign in."
 | 
				
			||||||
 | 
					msgstr "Accedi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/templates/registration/login.html:45
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					msgid "Username"
 | 
				
			||||||
 | 
					msgstr "Nome utente"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/templates/registration/login.html:49
 | 
				
			||||||
 | 
					msgid "Password"
 | 
				
			||||||
 | 
					msgstr "Password"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: documents/templates/registration/login.html:54
 | 
				
			||||||
 | 
					msgid "Sign in"
 | 
				
			||||||
 | 
					msgstr "Accedi"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless/settings.py:291
 | 
				
			||||||
 | 
					msgid "English (US)"
 | 
				
			||||||
 | 
					msgstr "Inglese (US)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless/settings.py:292
 | 
				
			||||||
 | 
					msgid "English (GB)"
 | 
				
			||||||
 | 
					msgstr "Inglese (GB)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless/settings.py:293
 | 
				
			||||||
 | 
					msgid "German"
 | 
				
			||||||
 | 
					msgstr "Tedesco"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless/settings.py:294
 | 
				
			||||||
 | 
					msgid "Dutch"
 | 
				
			||||||
 | 
					msgstr "Olandese"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless/settings.py:295
 | 
				
			||||||
 | 
					msgid "French"
 | 
				
			||||||
 | 
					msgstr "Francese"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless/settings.py:296
 | 
				
			||||||
 | 
					msgid "Portuguese (Brazil)"
 | 
				
			||||||
 | 
					msgstr "Portoghese (Brasile)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless/urls.py:118
 | 
				
			||||||
 | 
					msgid "Paperless-ng administration"
 | 
				
			||||||
 | 
					msgstr "Amministrazione di Paperless-ng"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/admin.py:25
 | 
				
			||||||
 | 
					msgid "Filter"
 | 
				
			||||||
 | 
					msgstr "Filtro"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/admin.py:27
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					msgid "Actions"
 | 
				
			||||||
 | 
					msgstr "Azioni"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/admin.py:39
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					msgid "Metadata"
 | 
				
			||||||
 | 
					msgstr "Metadati"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/admin.py:48
 | 
				
			||||||
 | 
					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."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/apps.py:9
 | 
				
			||||||
 | 
					msgid "Paperless mail"
 | 
				
			||||||
 | 
					msgstr "Email Paperless"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:11
 | 
				
			||||||
 | 
					msgid "mail account"
 | 
				
			||||||
 | 
					msgstr "account email"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:12
 | 
				
			||||||
 | 
					msgid "mail accounts"
 | 
				
			||||||
 | 
					msgstr "account email"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:19
 | 
				
			||||||
 | 
					msgid "No encryption"
 | 
				
			||||||
 | 
					msgstr "Nessuna crittografia"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:20
 | 
				
			||||||
 | 
					msgid "Use SSL"
 | 
				
			||||||
 | 
					msgstr "Usa SSL"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:21
 | 
				
			||||||
 | 
					msgid "Use STARTTLS"
 | 
				
			||||||
 | 
					msgstr "Usa STARTTLS"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:29
 | 
				
			||||||
 | 
					msgid "IMAP server"
 | 
				
			||||||
 | 
					msgstr "Server IMAP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:33
 | 
				
			||||||
 | 
					msgid "IMAP port"
 | 
				
			||||||
 | 
					msgstr "Porta IMAP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:36
 | 
				
			||||||
 | 
					msgid ""
 | 
				
			||||||
 | 
					"This is usually 143 for unencrypted and STARTTLS connections, and 993 for "
 | 
				
			||||||
 | 
					"SSL connections."
 | 
				
			||||||
 | 
					msgstr ""
 | 
				
			||||||
 | 
					"Di solito si usa 143 per STARTTLS o nessuna crittografia e 993 per SSL."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:40
 | 
				
			||||||
 | 
					msgid "IMAP security"
 | 
				
			||||||
 | 
					msgstr "Sicurezza IMAP"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:46
 | 
				
			||||||
 | 
					msgid "username"
 | 
				
			||||||
 | 
					msgstr "nome utente"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:50
 | 
				
			||||||
 | 
					msgid "password"
 | 
				
			||||||
 | 
					msgstr "password"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:60
 | 
				
			||||||
 | 
					msgid "mail rule"
 | 
				
			||||||
 | 
					msgstr "regola email"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:61
 | 
				
			||||||
 | 
					msgid "mail rules"
 | 
				
			||||||
 | 
					msgstr "regole email"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:67
 | 
				
			||||||
 | 
					msgid "Only process attachments."
 | 
				
			||||||
 | 
					msgstr "Elabora solo gli allegati."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:68
 | 
				
			||||||
 | 
					msgid "Process all files, including 'inline' attachments."
 | 
				
			||||||
 | 
					msgstr "Elabora tutti i file, inclusi gli allegati nel corpo."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:78
 | 
				
			||||||
 | 
					msgid "Mark as read, don't process read mails"
 | 
				
			||||||
 | 
					msgstr "Segna come letto, non elaborare le email lette"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:79
 | 
				
			||||||
 | 
					msgid "Flag the mail, don't process flagged mails"
 | 
				
			||||||
 | 
					msgstr "Contrassegna la email, non elaborare le email elaborate."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:80
 | 
				
			||||||
 | 
					msgid "Move to specified folder"
 | 
				
			||||||
 | 
					msgstr "Sposta in una cartella"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:81
 | 
				
			||||||
 | 
					msgid "Delete"
 | 
				
			||||||
 | 
					msgstr "Elimina"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:88
 | 
				
			||||||
 | 
					msgid "Use subject as title"
 | 
				
			||||||
 | 
					msgstr "Usa oggetto come titolo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:89
 | 
				
			||||||
 | 
					msgid "Use attachment filename as title"
 | 
				
			||||||
 | 
					msgstr "Usa il nome dell'allegato come titolo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:99
 | 
				
			||||||
 | 
					msgid "Do not assign a correspondent"
 | 
				
			||||||
 | 
					msgstr "Non assegnare un corrispondente"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:101
 | 
				
			||||||
 | 
					msgid "Use mail address"
 | 
				
			||||||
 | 
					msgstr "Usa indirizzo email"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:103
 | 
				
			||||||
 | 
					msgid "Use name (or mail address if not available)"
 | 
				
			||||||
 | 
					msgstr "Usa nome (o indirizzo email se non disponibile)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:105
 | 
				
			||||||
 | 
					msgid "Use correspondent selected below"
 | 
				
			||||||
 | 
					msgstr "Usa il corrispondente selezionato qui sotto"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:113
 | 
				
			||||||
 | 
					msgid "order"
 | 
				
			||||||
 | 
					msgstr "priorità"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:120
 | 
				
			||||||
 | 
					msgid "account"
 | 
				
			||||||
 | 
					msgstr "account"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:124
 | 
				
			||||||
 | 
					msgid "folder"
 | 
				
			||||||
 | 
					msgstr "cartella"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:128
 | 
				
			||||||
 | 
					msgid "filter from"
 | 
				
			||||||
 | 
					msgstr "filtra da"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:131
 | 
				
			||||||
 | 
					msgid "filter subject"
 | 
				
			||||||
 | 
					msgstr "filtra oggetto"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:134
 | 
				
			||||||
 | 
					msgid "filter body"
 | 
				
			||||||
 | 
					msgstr "filtra corpo"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:138
 | 
				
			||||||
 | 
					msgid "filter attachment filename"
 | 
				
			||||||
 | 
					msgstr "filtra nome allegato"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: 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."
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					msgid "maximum age"
 | 
				
			||||||
 | 
					msgstr "età massima"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:148
 | 
				
			||||||
 | 
					msgid "Specified in days."
 | 
				
			||||||
 | 
					msgstr "Definito in giorni."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:151
 | 
				
			||||||
 | 
					msgid "attachment type"
 | 
				
			||||||
 | 
					msgstr "tipo di allegato"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:154
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					msgid "action"
 | 
				
			||||||
 | 
					msgstr "azione"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:165
 | 
				
			||||||
 | 
					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:173
 | 
				
			||||||
 | 
					msgid "assign title from"
 | 
				
			||||||
 | 
					msgstr "assegna tittolo da"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:183
 | 
				
			||||||
 | 
					msgid "assign this tag"
 | 
				
			||||||
 | 
					msgstr "assegna questo tag"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:191
 | 
				
			||||||
 | 
					msgid "assign this document type"
 | 
				
			||||||
 | 
					msgstr "assegna questo tipo di documento"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:195
 | 
				
			||||||
 | 
					msgid "assign correspondent from"
 | 
				
			||||||
 | 
					msgstr "assegna corrispondente da"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#: paperless_mail/models.py:205
 | 
				
			||||||
 | 
					msgid "assign this correspondent"
 | 
				
			||||||
 | 
					msgstr "assegna questo corrispondente"
 | 
				
			||||||
@ -13,6 +13,8 @@ class ApiVersionMiddleware:
 | 
				
			|||||||
        if request.user.is_authenticated:
 | 
					        if request.user.is_authenticated:
 | 
				
			||||||
            versions = settings.REST_FRAMEWORK['ALLOWED_VERSIONS']
 | 
					            versions = settings.REST_FRAMEWORK['ALLOWED_VERSIONS']
 | 
				
			||||||
            response['X-Api-Version'] = versions[len(versions)-1]
 | 
					            response['X-Api-Version'] = versions[len(versions)-1]
 | 
				
			||||||
            response['X-Version'] = ".".join([str(_) for _ in version.__version__])
 | 
					            response['X-Version'] = ".".join(
 | 
				
			||||||
 | 
					                [str(_) for _ in version.__version__]
 | 
				
			||||||
 | 
					            )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return response
 | 
					        return response
 | 
				
			||||||
 | 
				
			|||||||
@ -299,7 +299,8 @@ LANGUAGES = [
 | 
				
			|||||||
    ("de", _("German")),
 | 
					    ("de", _("German")),
 | 
				
			||||||
    ("nl-nl", _("Dutch")),
 | 
					    ("nl-nl", _("Dutch")),
 | 
				
			||||||
    ("fr", _("French")),
 | 
					    ("fr", _("French")),
 | 
				
			||||||
    ("pt-br", _("Portuguese (Brazil)"))
 | 
					    ("pt-br", _("Portuguese (Brazil)")),
 | 
				
			||||||
 | 
					    ("it", _("Italian"))
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOCALE_PATHS = [
 | 
					LOCALE_PATHS = [
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user