From 19c8c8df3e774b99d9964c76f3ace0a7a3b716ce Mon Sep 17 00:00:00 2001
From: Jonathan Weth <git@jonathanweth.de>
Date: Fri, 12 Aug 2022 23:13:42 +0200
Subject: [PATCH] Add translation files

---
 .../apps/kort/locale/ar/LC_MESSAGES/django.po | 711 ++++++++++++++++++
 .../kort/locale/de_DE/LC_MESSAGES/django.po   | 710 +++++++++++++++++
 .../apps/kort/locale/fr/LC_MESSAGES/django.po | 710 +++++++++++++++++
 .../apps/kort/locale/la/LC_MESSAGES/django.po | 710 +++++++++++++++++
 .../kort/locale/nb_NO/LC_MESSAGES/django.po   | 710 +++++++++++++++++
 .../kort/locale/tr_TR/LC_MESSAGES/django.po   | 710 +++++++++++++++++
 6 files changed, 4261 insertions(+)
 create mode 100644 aleksis/apps/kort/locale/ar/LC_MESSAGES/django.po
 create mode 100644 aleksis/apps/kort/locale/de_DE/LC_MESSAGES/django.po
 create mode 100644 aleksis/apps/kort/locale/fr/LC_MESSAGES/django.po
 create mode 100644 aleksis/apps/kort/locale/la/LC_MESSAGES/django.po
 create mode 100644 aleksis/apps/kort/locale/nb_NO/LC_MESSAGES/django.po
 create mode 100644 aleksis/apps/kort/locale/tr_TR/LC_MESSAGES/django.po

diff --git a/aleksis/apps/kort/locale/ar/LC_MESSAGES/django.po b/aleksis/apps/kort/locale/ar/LC_MESSAGES/django.po
new file mode 100644
index 0000000..e4c9635
--- /dev/null
+++ b/aleksis/apps/kort/locale/ar/LC_MESSAGES/django.po
@@ -0,0 +1,711 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-08-12 23:11+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
+"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+#: aleksis/apps/kort/apps.py:25
+msgid "Access and manage printer status and print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:15
+msgid "Select person(s) or group(s)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:16
+msgid "Select validity"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:17
+msgid "Select layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:18
+msgid "Select printer (optional)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:22 aleksis/apps/kort/forms.py:111
+#: aleksis/apps/kort/templates/kort/printer/detail.html:8
+msgid "Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:23
+msgid "Select a printer to directly print the newly issued card."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:28
+msgid "Persons"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:41
+msgid "Groups"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:51 aleksis/apps/kort/models.py:185
+msgid "Card layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:53 aleksis/apps/kort/models.py:257
+#: aleksis/apps/kort/tables.py:30
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:24
+#: aleksis/apps/kort/templates/kort/card/short.html:12
+msgid "Valid until"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:63
+msgid "You must select at least one person or group."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:71
+msgid "The selected groups don't have any members."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:91
+msgid "Generic attributes"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:93
+msgid "Printer settings"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:138 aleksis/apps/kort/models.py:222
+msgid "Required data fields"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:6
+msgid "Student ID Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:16
+msgid "All Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:27
+msgid "Card Printers"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:38 aleksis/apps/kort/models.py:249
+msgid "Card Layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:24
+msgid "Online"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:25
+msgid "Offline"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:26
+msgid "With errors"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:27
+msgid "Not registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:56
+msgid "Registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:57
+msgid "In progress"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:58
+msgid "Finished"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:59
+msgid "Failed"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:64 aleksis/apps/kort/models.py:217
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card_layout/short.html:4
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/printer/short.html:4
+msgid "Name"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:65
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:24
+msgid "Description"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:66
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/printer/short.html:8
+msgid "Location"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:70 aleksis/apps/kort/models.py:330
+#: aleksis/apps/kort/tables.py:95
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:90
+#: aleksis/apps/kort/templates/kort/printer/short.html:12
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:74 aleksis/apps/kort/models.py:334
+msgid "Status text"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:75 aleksis/apps/kort/tables.py:58
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:31
+msgid "Last seen at"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:80
+msgid "OAuth2 application"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:87
+msgid "CUPS printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:89
+msgid "Generate card number on server"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:91
+msgid "Card detector"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:175
+msgid "Card printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:176
+#: aleksis/apps/kort/templates/kort/printer/list.html:8
+#: aleksis/apps/kort/templates/kort/printer/list.html:9
+msgid "Card printers"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:180
+msgid "Media file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:192
+msgid "Media file for a card layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:193
+msgid "Media files for card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:218
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:43
+msgid "Template"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:219
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:49
+msgid "Custom CSS"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220
+msgid "Width"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220 aleksis/apps/kort/models.py:221
+msgid "in mm"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:221
+msgid "Height"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:242
+msgid "Template is invalid: {}"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:248 aleksis/apps/kort/models.py:261
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:8
+msgid "Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:254
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card/short.html:4
+msgid "Person"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:256
+msgid "Chip Number"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:258 aleksis/apps/kort/tables.py:31
+msgid "Deactivated"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:264
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:297
+msgid "There is no layout provided for the card."
+msgstr ""
+
+#: aleksis/apps/kort/models.py:316 aleksis/apps/kort/models.py:325
+#: aleksis/apps/kort/templates/kort/card/detail.html:8
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:84
+msgid "Card"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:317
+#: aleksis/apps/kort/templates/kort/card/list.html:8
+#: aleksis/apps/kort/templates/kort/card/list.html:9
+msgid "Cards"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:322
+msgid "Printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:337
+msgid "Card print job"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:338
+msgid "Card print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:28
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/card/short.html:8
+msgid "Chip number"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:29 aleksis/apps/kort/tables.py:57
+msgid "Current status"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:32 aleksis/apps/kort/tables.py:61
+#: aleksis/apps/kort/tables.py:85
+msgid "Actions"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:54
+msgid "Printer name"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:55
+msgid "Printer location"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:59
+msgid "Running jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:81
+msgid "Layout name"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:8
+#: aleksis/apps/kort/templates/kort/card/detail.html:9
+#, python-format
+msgid "Card of %(person)s"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:14
+#: aleksis/apps/kort/templates/kort/card/actions.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:11
+#: aleksis/apps/kort/templates/kort/printer/actions.html:11
+msgid "Close"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:20
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:17
+#: aleksis/apps/kort/templates/kort/printer/actions.html:17
+msgid "Show"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:25
+msgid "Do you really want to deactivate the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:35
+#: aleksis/apps/kort/templates/kort/card/actions.html:41
+msgid "Deactivate"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:47
+#: aleksis/apps/kort/templates/kort/card/delete.html:30
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:33
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:29
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:31
+#: aleksis/apps/kort/templates/kort/printer/actions.html:33
+#: aleksis/apps/kort/templates/kort/printer/delete.html:29
+#: aleksis/apps/kort/templates/kort/printer/detail.html:31
+msgid "Delete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:8
+msgid "Delete Card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:12
+msgid "Do you really want to delete the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that a deletion of a card is irreversible and should be only used to clean up misprints.\n"
+"      If you just want to make a card unusable because a student has lost his card or left the school,\n"
+"      please deactivate the card instead.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:25
+#: aleksis/apps/kort/templates/kort/printer/delete.html:25
+msgid "Go back"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:6
+msgid "Card details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:19
+msgid "not set yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:53
+msgid "Show card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:61
+msgid "Generate card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/edit.html:12
+#: aleksis/apps/kort/templates/kort/card/edit.html:13
+msgid "Edit card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:12
+#: aleksis/apps/kort/templates/kort/card/issue.html:13
+msgid "Issue card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:23
+msgid ""
+"\n"
+"          Please select the persons and/or the groups to whom you want to issue new cards.\n"
+"          After clicking on 'Next', you will be able to check whether the data of the persons\n"
+"          are complete and include everything needed for the cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:32
+msgid ""
+"\n"
+"          In the following table you can see all selected persons and the related data needed for the cards.\n"
+"          Please select the persons to whom you want to issue new cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:65
+msgid "Previous step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:71
+msgid "Issue cards for selected persons"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:77
+msgid "Next step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:83
+msgid "Cancel"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/list.html:17
+msgid "Issue new card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/print_form.html:8
+#: aleksis/apps/kort/templates/kort/card/print_form.html:16
+msgid "Print card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:3
+msgid "Valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:5
+msgid "Not valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:24
+#: aleksis/apps/kort/templates/kort/printer/actions.html:27
+#: aleksis/apps/kort/templates/kort/printer/detail.html:24
+msgid "Edit"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:13
+msgid "Create card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:23
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:23
+msgid "Media Files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:8
+msgid "Delete Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:12
+msgid "Do you really want to delete the following card layout?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will prevent the successful finishing of all active print jobs\n"
+"      which use these template.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:15
+msgid "Back to all layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:6
+msgid "Layout details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:17
+msgid "Size (w × h)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:24
+msgid "Media files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:31
+msgid "No media files uploaded."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:13
+msgid "Edit card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:4
+msgid "Instructions on templating the card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:5
+msgid ""
+"\n"
+"      You will be able to use the following data in your individual template. The template has to been written in the\n"
+"      Django template language.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:11
+msgid "The chip number as string"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:15
+msgid "This will give you access to any attributes of the person object like name, personal data or contact data."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:19
+msgid "The date until when the card is valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:24
+msgid "This will give you access to the uploaded media files. Replace 0 by the number of your media file (starting with 0)."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:8
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:9
+msgid "Card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:17
+msgid "Create new card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:5
+#, python-format
+msgid "%(count)s missing data fields"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:10
+msgid "Data complete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/picture.html:4
+msgid "Person picture"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/create.html:12
+#: aleksis/apps/kort/templates/kort/printer/create.html:13
+msgid "Create card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:8
+msgid "Delete Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:12
+msgid "Do you really want to delete the following card printer?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will deactivate the access for the print client and you would have to\n"
+"      reconfigure the client if you want to use it further.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail.html:15
+msgid "Back to all printers"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:6
+msgid "Printer details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:33
+msgid "never seen yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:60
+msgid "Setup printer client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:62
+msgid ""
+"\n"
+"              To enable printing, you have to register the print client on the device\n"
+"              which the printer is connected to.\n"
+"            "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:67
+msgid "1. Download print client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:68
+msgid "2. Download configuration file"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:71
+msgid "Download configuration"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:73
+msgid "3. Setup client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:80
+msgid "Print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:87
+msgid "Created at"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/edit.html:12
+#: aleksis/apps/kort/templates/kort/printer/edit.html:13
+msgid "Edit card printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/list.html:17
+msgid "Register new card printer"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:69
+msgid "The cards have been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:137 aleksis/apps/kort/views.py:193
+msgid "The print job #{} for the card {} on the printer {} has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:145 aleksis/apps/kort/views.py:200
+msgid "The print job couldn't be started because of the following error: {}"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:158
+msgid "The card has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:171
+msgid "The card has been deactivated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:220
+msgid "The chip number is missing."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:232
+msgid "Progress: Generate card layout as PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:233
+msgid "Generating PDF file …"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:234
+msgid "The PDF file with the card layout has been generated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:235
+msgid "There was a problem while generating the PDF file."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:237
+msgid "Show card"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:275
+msgid "The card printer has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:288
+msgid "The card printer has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:301
+msgid "The card printer has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:364
+msgid "The card layout has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:382
+msgid "The card layout has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:395
+msgid "The card layout has been deleted successfully."
+msgstr ""
diff --git a/aleksis/apps/kort/locale/de_DE/LC_MESSAGES/django.po b/aleksis/apps/kort/locale/de_DE/LC_MESSAGES/django.po
new file mode 100644
index 0000000..ac0a519
--- /dev/null
+++ b/aleksis/apps/kort/locale/de_DE/LC_MESSAGES/django.po
@@ -0,0 +1,710 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-08-12 23:11+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: aleksis/apps/kort/apps.py:25
+msgid "Access and manage printer status and print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:15
+msgid "Select person(s) or group(s)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:16
+msgid "Select validity"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:17
+msgid "Select layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:18
+msgid "Select printer (optional)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:22 aleksis/apps/kort/forms.py:111
+#: aleksis/apps/kort/templates/kort/printer/detail.html:8
+msgid "Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:23
+msgid "Select a printer to directly print the newly issued card."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:28
+msgid "Persons"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:41
+msgid "Groups"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:51 aleksis/apps/kort/models.py:185
+msgid "Card layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:53 aleksis/apps/kort/models.py:257
+#: aleksis/apps/kort/tables.py:30
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:24
+#: aleksis/apps/kort/templates/kort/card/short.html:12
+msgid "Valid until"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:63
+msgid "You must select at least one person or group."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:71
+msgid "The selected groups don't have any members."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:91
+msgid "Generic attributes"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:93
+msgid "Printer settings"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:138 aleksis/apps/kort/models.py:222
+msgid "Required data fields"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:6
+msgid "Student ID Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:16
+msgid "All Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:27
+msgid "Card Printers"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:38 aleksis/apps/kort/models.py:249
+msgid "Card Layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:24
+msgid "Online"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:25
+msgid "Offline"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:26
+msgid "With errors"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:27
+msgid "Not registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:56
+msgid "Registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:57
+msgid "In progress"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:58
+msgid "Finished"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:59
+msgid "Failed"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:64 aleksis/apps/kort/models.py:217
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card_layout/short.html:4
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/printer/short.html:4
+msgid "Name"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:65
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:24
+msgid "Description"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:66
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/printer/short.html:8
+msgid "Location"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:70 aleksis/apps/kort/models.py:330
+#: aleksis/apps/kort/tables.py:95
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:90
+#: aleksis/apps/kort/templates/kort/printer/short.html:12
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:74 aleksis/apps/kort/models.py:334
+msgid "Status text"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:75 aleksis/apps/kort/tables.py:58
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:31
+msgid "Last seen at"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:80
+msgid "OAuth2 application"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:87
+msgid "CUPS printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:89
+msgid "Generate card number on server"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:91
+msgid "Card detector"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:175
+msgid "Card printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:176
+#: aleksis/apps/kort/templates/kort/printer/list.html:8
+#: aleksis/apps/kort/templates/kort/printer/list.html:9
+msgid "Card printers"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:180
+msgid "Media file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:192
+msgid "Media file for a card layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:193
+msgid "Media files for card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:218
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:43
+msgid "Template"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:219
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:49
+msgid "Custom CSS"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220
+msgid "Width"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220 aleksis/apps/kort/models.py:221
+msgid "in mm"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:221
+msgid "Height"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:242
+msgid "Template is invalid: {}"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:248 aleksis/apps/kort/models.py:261
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:8
+msgid "Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:254
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card/short.html:4
+msgid "Person"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:256
+msgid "Chip Number"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:258 aleksis/apps/kort/tables.py:31
+msgid "Deactivated"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:264
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:297
+msgid "There is no layout provided for the card."
+msgstr ""
+
+#: aleksis/apps/kort/models.py:316 aleksis/apps/kort/models.py:325
+#: aleksis/apps/kort/templates/kort/card/detail.html:8
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:84
+msgid "Card"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:317
+#: aleksis/apps/kort/templates/kort/card/list.html:8
+#: aleksis/apps/kort/templates/kort/card/list.html:9
+msgid "Cards"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:322
+msgid "Printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:337
+msgid "Card print job"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:338
+msgid "Card print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:28
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/card/short.html:8
+msgid "Chip number"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:29 aleksis/apps/kort/tables.py:57
+msgid "Current status"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:32 aleksis/apps/kort/tables.py:61
+#: aleksis/apps/kort/tables.py:85
+msgid "Actions"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:54
+msgid "Printer name"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:55
+msgid "Printer location"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:59
+msgid "Running jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:81
+msgid "Layout name"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:8
+#: aleksis/apps/kort/templates/kort/card/detail.html:9
+#, python-format
+msgid "Card of %(person)s"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:14
+#: aleksis/apps/kort/templates/kort/card/actions.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:11
+#: aleksis/apps/kort/templates/kort/printer/actions.html:11
+msgid "Close"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:20
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:17
+#: aleksis/apps/kort/templates/kort/printer/actions.html:17
+msgid "Show"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:25
+msgid "Do you really want to deactivate the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:35
+#: aleksis/apps/kort/templates/kort/card/actions.html:41
+msgid "Deactivate"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:47
+#: aleksis/apps/kort/templates/kort/card/delete.html:30
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:33
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:29
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:31
+#: aleksis/apps/kort/templates/kort/printer/actions.html:33
+#: aleksis/apps/kort/templates/kort/printer/delete.html:29
+#: aleksis/apps/kort/templates/kort/printer/detail.html:31
+msgid "Delete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:8
+msgid "Delete Card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:12
+msgid "Do you really want to delete the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that a deletion of a card is irreversible and should be only used to clean up misprints.\n"
+"      If you just want to make a card unusable because a student has lost his card or left the school,\n"
+"      please deactivate the card instead.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:25
+#: aleksis/apps/kort/templates/kort/printer/delete.html:25
+msgid "Go back"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:6
+msgid "Card details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:19
+msgid "not set yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:53
+msgid "Show card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:61
+msgid "Generate card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/edit.html:12
+#: aleksis/apps/kort/templates/kort/card/edit.html:13
+msgid "Edit card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:12
+#: aleksis/apps/kort/templates/kort/card/issue.html:13
+msgid "Issue card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:23
+msgid ""
+"\n"
+"          Please select the persons and/or the groups to whom you want to issue new cards.\n"
+"          After clicking on 'Next', you will be able to check whether the data of the persons\n"
+"          are complete and include everything needed for the cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:32
+msgid ""
+"\n"
+"          In the following table you can see all selected persons and the related data needed for the cards.\n"
+"          Please select the persons to whom you want to issue new cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:65
+msgid "Previous step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:71
+msgid "Issue cards for selected persons"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:77
+msgid "Next step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:83
+msgid "Cancel"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/list.html:17
+msgid "Issue new card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/print_form.html:8
+#: aleksis/apps/kort/templates/kort/card/print_form.html:16
+msgid "Print card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:3
+msgid "Valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:5
+msgid "Not valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:24
+#: aleksis/apps/kort/templates/kort/printer/actions.html:27
+#: aleksis/apps/kort/templates/kort/printer/detail.html:24
+msgid "Edit"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:13
+msgid "Create card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:23
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:23
+msgid "Media Files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:8
+msgid "Delete Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:12
+msgid "Do you really want to delete the following card layout?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will prevent the successful finishing of all active print jobs\n"
+"      which use these template.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:15
+msgid "Back to all layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:6
+msgid "Layout details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:17
+msgid "Size (w × h)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:24
+msgid "Media files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:31
+msgid "No media files uploaded."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:13
+msgid "Edit card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:4
+msgid "Instructions on templating the card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:5
+msgid ""
+"\n"
+"      You will be able to use the following data in your individual template. The template has to been written in the\n"
+"      Django template language.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:11
+msgid "The chip number as string"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:15
+msgid "This will give you access to any attributes of the person object like name, personal data or contact data."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:19
+msgid "The date until when the card is valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:24
+msgid "This will give you access to the uploaded media files. Replace 0 by the number of your media file (starting with 0)."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:8
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:9
+msgid "Card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:17
+msgid "Create new card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:5
+#, python-format
+msgid "%(count)s missing data fields"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:10
+msgid "Data complete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/picture.html:4
+msgid "Person picture"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/create.html:12
+#: aleksis/apps/kort/templates/kort/printer/create.html:13
+msgid "Create card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:8
+msgid "Delete Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:12
+msgid "Do you really want to delete the following card printer?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will deactivate the access for the print client and you would have to\n"
+"      reconfigure the client if you want to use it further.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail.html:15
+msgid "Back to all printers"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:6
+msgid "Printer details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:33
+msgid "never seen yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:60
+msgid "Setup printer client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:62
+msgid ""
+"\n"
+"              To enable printing, you have to register the print client on the device\n"
+"              which the printer is connected to.\n"
+"            "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:67
+msgid "1. Download print client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:68
+msgid "2. Download configuration file"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:71
+msgid "Download configuration"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:73
+msgid "3. Setup client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:80
+msgid "Print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:87
+msgid "Created at"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/edit.html:12
+#: aleksis/apps/kort/templates/kort/printer/edit.html:13
+msgid "Edit card printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/list.html:17
+msgid "Register new card printer"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:69
+msgid "The cards have been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:137 aleksis/apps/kort/views.py:193
+msgid "The print job #{} for the card {} on the printer {} has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:145 aleksis/apps/kort/views.py:200
+msgid "The print job couldn't be started because of the following error: {}"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:158
+msgid "The card has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:171
+msgid "The card has been deactivated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:220
+msgid "The chip number is missing."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:232
+msgid "Progress: Generate card layout as PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:233
+msgid "Generating PDF file …"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:234
+msgid "The PDF file with the card layout has been generated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:235
+msgid "There was a problem while generating the PDF file."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:237
+msgid "Show card"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:275
+msgid "The card printer has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:288
+msgid "The card printer has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:301
+msgid "The card printer has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:364
+msgid "The card layout has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:382
+msgid "The card layout has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:395
+msgid "The card layout has been deleted successfully."
+msgstr ""
diff --git a/aleksis/apps/kort/locale/fr/LC_MESSAGES/django.po b/aleksis/apps/kort/locale/fr/LC_MESSAGES/django.po
new file mode 100644
index 0000000..b7f940e
--- /dev/null
+++ b/aleksis/apps/kort/locale/fr/LC_MESSAGES/django.po
@@ -0,0 +1,710 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-08-12 23:11+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+#: aleksis/apps/kort/apps.py:25
+msgid "Access and manage printer status and print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:15
+msgid "Select person(s) or group(s)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:16
+msgid "Select validity"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:17
+msgid "Select layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:18
+msgid "Select printer (optional)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:22 aleksis/apps/kort/forms.py:111
+#: aleksis/apps/kort/templates/kort/printer/detail.html:8
+msgid "Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:23
+msgid "Select a printer to directly print the newly issued card."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:28
+msgid "Persons"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:41
+msgid "Groups"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:51 aleksis/apps/kort/models.py:185
+msgid "Card layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:53 aleksis/apps/kort/models.py:257
+#: aleksis/apps/kort/tables.py:30
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:24
+#: aleksis/apps/kort/templates/kort/card/short.html:12
+msgid "Valid until"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:63
+msgid "You must select at least one person or group."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:71
+msgid "The selected groups don't have any members."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:91
+msgid "Generic attributes"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:93
+msgid "Printer settings"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:138 aleksis/apps/kort/models.py:222
+msgid "Required data fields"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:6
+msgid "Student ID Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:16
+msgid "All Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:27
+msgid "Card Printers"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:38 aleksis/apps/kort/models.py:249
+msgid "Card Layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:24
+msgid "Online"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:25
+msgid "Offline"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:26
+msgid "With errors"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:27
+msgid "Not registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:56
+msgid "Registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:57
+msgid "In progress"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:58
+msgid "Finished"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:59
+msgid "Failed"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:64 aleksis/apps/kort/models.py:217
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card_layout/short.html:4
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/printer/short.html:4
+msgid "Name"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:65
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:24
+msgid "Description"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:66
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/printer/short.html:8
+msgid "Location"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:70 aleksis/apps/kort/models.py:330
+#: aleksis/apps/kort/tables.py:95
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:90
+#: aleksis/apps/kort/templates/kort/printer/short.html:12
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:74 aleksis/apps/kort/models.py:334
+msgid "Status text"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:75 aleksis/apps/kort/tables.py:58
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:31
+msgid "Last seen at"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:80
+msgid "OAuth2 application"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:87
+msgid "CUPS printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:89
+msgid "Generate card number on server"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:91
+msgid "Card detector"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:175
+msgid "Card printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:176
+#: aleksis/apps/kort/templates/kort/printer/list.html:8
+#: aleksis/apps/kort/templates/kort/printer/list.html:9
+msgid "Card printers"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:180
+msgid "Media file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:192
+msgid "Media file for a card layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:193
+msgid "Media files for card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:218
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:43
+msgid "Template"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:219
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:49
+msgid "Custom CSS"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220
+msgid "Width"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220 aleksis/apps/kort/models.py:221
+msgid "in mm"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:221
+msgid "Height"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:242
+msgid "Template is invalid: {}"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:248 aleksis/apps/kort/models.py:261
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:8
+msgid "Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:254
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card/short.html:4
+msgid "Person"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:256
+msgid "Chip Number"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:258 aleksis/apps/kort/tables.py:31
+msgid "Deactivated"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:264
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:297
+msgid "There is no layout provided for the card."
+msgstr ""
+
+#: aleksis/apps/kort/models.py:316 aleksis/apps/kort/models.py:325
+#: aleksis/apps/kort/templates/kort/card/detail.html:8
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:84
+msgid "Card"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:317
+#: aleksis/apps/kort/templates/kort/card/list.html:8
+#: aleksis/apps/kort/templates/kort/card/list.html:9
+msgid "Cards"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:322
+msgid "Printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:337
+msgid "Card print job"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:338
+msgid "Card print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:28
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/card/short.html:8
+msgid "Chip number"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:29 aleksis/apps/kort/tables.py:57
+msgid "Current status"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:32 aleksis/apps/kort/tables.py:61
+#: aleksis/apps/kort/tables.py:85
+msgid "Actions"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:54
+msgid "Printer name"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:55
+msgid "Printer location"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:59
+msgid "Running jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:81
+msgid "Layout name"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:8
+#: aleksis/apps/kort/templates/kort/card/detail.html:9
+#, python-format
+msgid "Card of %(person)s"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:14
+#: aleksis/apps/kort/templates/kort/card/actions.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:11
+#: aleksis/apps/kort/templates/kort/printer/actions.html:11
+msgid "Close"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:20
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:17
+#: aleksis/apps/kort/templates/kort/printer/actions.html:17
+msgid "Show"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:25
+msgid "Do you really want to deactivate the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:35
+#: aleksis/apps/kort/templates/kort/card/actions.html:41
+msgid "Deactivate"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:47
+#: aleksis/apps/kort/templates/kort/card/delete.html:30
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:33
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:29
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:31
+#: aleksis/apps/kort/templates/kort/printer/actions.html:33
+#: aleksis/apps/kort/templates/kort/printer/delete.html:29
+#: aleksis/apps/kort/templates/kort/printer/detail.html:31
+msgid "Delete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:8
+msgid "Delete Card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:12
+msgid "Do you really want to delete the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that a deletion of a card is irreversible and should be only used to clean up misprints.\n"
+"      If you just want to make a card unusable because a student has lost his card or left the school,\n"
+"      please deactivate the card instead.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:25
+#: aleksis/apps/kort/templates/kort/printer/delete.html:25
+msgid "Go back"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:6
+msgid "Card details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:19
+msgid "not set yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:53
+msgid "Show card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:61
+msgid "Generate card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/edit.html:12
+#: aleksis/apps/kort/templates/kort/card/edit.html:13
+msgid "Edit card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:12
+#: aleksis/apps/kort/templates/kort/card/issue.html:13
+msgid "Issue card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:23
+msgid ""
+"\n"
+"          Please select the persons and/or the groups to whom you want to issue new cards.\n"
+"          After clicking on 'Next', you will be able to check whether the data of the persons\n"
+"          are complete and include everything needed for the cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:32
+msgid ""
+"\n"
+"          In the following table you can see all selected persons and the related data needed for the cards.\n"
+"          Please select the persons to whom you want to issue new cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:65
+msgid "Previous step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:71
+msgid "Issue cards for selected persons"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:77
+msgid "Next step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:83
+msgid "Cancel"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/list.html:17
+msgid "Issue new card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/print_form.html:8
+#: aleksis/apps/kort/templates/kort/card/print_form.html:16
+msgid "Print card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:3
+msgid "Valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:5
+msgid "Not valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:24
+#: aleksis/apps/kort/templates/kort/printer/actions.html:27
+#: aleksis/apps/kort/templates/kort/printer/detail.html:24
+msgid "Edit"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:13
+msgid "Create card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:23
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:23
+msgid "Media Files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:8
+msgid "Delete Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:12
+msgid "Do you really want to delete the following card layout?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will prevent the successful finishing of all active print jobs\n"
+"      which use these template.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:15
+msgid "Back to all layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:6
+msgid "Layout details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:17
+msgid "Size (w × h)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:24
+msgid "Media files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:31
+msgid "No media files uploaded."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:13
+msgid "Edit card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:4
+msgid "Instructions on templating the card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:5
+msgid ""
+"\n"
+"      You will be able to use the following data in your individual template. The template has to been written in the\n"
+"      Django template language.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:11
+msgid "The chip number as string"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:15
+msgid "This will give you access to any attributes of the person object like name, personal data or contact data."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:19
+msgid "The date until when the card is valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:24
+msgid "This will give you access to the uploaded media files. Replace 0 by the number of your media file (starting with 0)."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:8
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:9
+msgid "Card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:17
+msgid "Create new card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:5
+#, python-format
+msgid "%(count)s missing data fields"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:10
+msgid "Data complete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/picture.html:4
+msgid "Person picture"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/create.html:12
+#: aleksis/apps/kort/templates/kort/printer/create.html:13
+msgid "Create card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:8
+msgid "Delete Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:12
+msgid "Do you really want to delete the following card printer?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will deactivate the access for the print client and you would have to\n"
+"      reconfigure the client if you want to use it further.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail.html:15
+msgid "Back to all printers"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:6
+msgid "Printer details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:33
+msgid "never seen yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:60
+msgid "Setup printer client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:62
+msgid ""
+"\n"
+"              To enable printing, you have to register the print client on the device\n"
+"              which the printer is connected to.\n"
+"            "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:67
+msgid "1. Download print client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:68
+msgid "2. Download configuration file"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:71
+msgid "Download configuration"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:73
+msgid "3. Setup client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:80
+msgid "Print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:87
+msgid "Created at"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/edit.html:12
+#: aleksis/apps/kort/templates/kort/printer/edit.html:13
+msgid "Edit card printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/list.html:17
+msgid "Register new card printer"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:69
+msgid "The cards have been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:137 aleksis/apps/kort/views.py:193
+msgid "The print job #{} for the card {} on the printer {} has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:145 aleksis/apps/kort/views.py:200
+msgid "The print job couldn't be started because of the following error: {}"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:158
+msgid "The card has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:171
+msgid "The card has been deactivated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:220
+msgid "The chip number is missing."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:232
+msgid "Progress: Generate card layout as PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:233
+msgid "Generating PDF file …"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:234
+msgid "The PDF file with the card layout has been generated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:235
+msgid "There was a problem while generating the PDF file."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:237
+msgid "Show card"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:275
+msgid "The card printer has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:288
+msgid "The card printer has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:301
+msgid "The card printer has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:364
+msgid "The card layout has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:382
+msgid "The card layout has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:395
+msgid "The card layout has been deleted successfully."
+msgstr ""
diff --git a/aleksis/apps/kort/locale/la/LC_MESSAGES/django.po b/aleksis/apps/kort/locale/la/LC_MESSAGES/django.po
new file mode 100644
index 0000000..ac0a519
--- /dev/null
+++ b/aleksis/apps/kort/locale/la/LC_MESSAGES/django.po
@@ -0,0 +1,710 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-08-12 23:11+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: aleksis/apps/kort/apps.py:25
+msgid "Access and manage printer status and print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:15
+msgid "Select person(s) or group(s)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:16
+msgid "Select validity"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:17
+msgid "Select layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:18
+msgid "Select printer (optional)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:22 aleksis/apps/kort/forms.py:111
+#: aleksis/apps/kort/templates/kort/printer/detail.html:8
+msgid "Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:23
+msgid "Select a printer to directly print the newly issued card."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:28
+msgid "Persons"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:41
+msgid "Groups"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:51 aleksis/apps/kort/models.py:185
+msgid "Card layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:53 aleksis/apps/kort/models.py:257
+#: aleksis/apps/kort/tables.py:30
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:24
+#: aleksis/apps/kort/templates/kort/card/short.html:12
+msgid "Valid until"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:63
+msgid "You must select at least one person or group."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:71
+msgid "The selected groups don't have any members."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:91
+msgid "Generic attributes"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:93
+msgid "Printer settings"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:138 aleksis/apps/kort/models.py:222
+msgid "Required data fields"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:6
+msgid "Student ID Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:16
+msgid "All Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:27
+msgid "Card Printers"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:38 aleksis/apps/kort/models.py:249
+msgid "Card Layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:24
+msgid "Online"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:25
+msgid "Offline"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:26
+msgid "With errors"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:27
+msgid "Not registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:56
+msgid "Registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:57
+msgid "In progress"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:58
+msgid "Finished"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:59
+msgid "Failed"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:64 aleksis/apps/kort/models.py:217
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card_layout/short.html:4
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/printer/short.html:4
+msgid "Name"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:65
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:24
+msgid "Description"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:66
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/printer/short.html:8
+msgid "Location"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:70 aleksis/apps/kort/models.py:330
+#: aleksis/apps/kort/tables.py:95
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:90
+#: aleksis/apps/kort/templates/kort/printer/short.html:12
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:74 aleksis/apps/kort/models.py:334
+msgid "Status text"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:75 aleksis/apps/kort/tables.py:58
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:31
+msgid "Last seen at"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:80
+msgid "OAuth2 application"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:87
+msgid "CUPS printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:89
+msgid "Generate card number on server"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:91
+msgid "Card detector"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:175
+msgid "Card printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:176
+#: aleksis/apps/kort/templates/kort/printer/list.html:8
+#: aleksis/apps/kort/templates/kort/printer/list.html:9
+msgid "Card printers"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:180
+msgid "Media file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:192
+msgid "Media file for a card layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:193
+msgid "Media files for card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:218
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:43
+msgid "Template"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:219
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:49
+msgid "Custom CSS"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220
+msgid "Width"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220 aleksis/apps/kort/models.py:221
+msgid "in mm"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:221
+msgid "Height"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:242
+msgid "Template is invalid: {}"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:248 aleksis/apps/kort/models.py:261
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:8
+msgid "Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:254
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card/short.html:4
+msgid "Person"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:256
+msgid "Chip Number"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:258 aleksis/apps/kort/tables.py:31
+msgid "Deactivated"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:264
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:297
+msgid "There is no layout provided for the card."
+msgstr ""
+
+#: aleksis/apps/kort/models.py:316 aleksis/apps/kort/models.py:325
+#: aleksis/apps/kort/templates/kort/card/detail.html:8
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:84
+msgid "Card"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:317
+#: aleksis/apps/kort/templates/kort/card/list.html:8
+#: aleksis/apps/kort/templates/kort/card/list.html:9
+msgid "Cards"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:322
+msgid "Printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:337
+msgid "Card print job"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:338
+msgid "Card print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:28
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/card/short.html:8
+msgid "Chip number"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:29 aleksis/apps/kort/tables.py:57
+msgid "Current status"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:32 aleksis/apps/kort/tables.py:61
+#: aleksis/apps/kort/tables.py:85
+msgid "Actions"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:54
+msgid "Printer name"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:55
+msgid "Printer location"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:59
+msgid "Running jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:81
+msgid "Layout name"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:8
+#: aleksis/apps/kort/templates/kort/card/detail.html:9
+#, python-format
+msgid "Card of %(person)s"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:14
+#: aleksis/apps/kort/templates/kort/card/actions.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:11
+#: aleksis/apps/kort/templates/kort/printer/actions.html:11
+msgid "Close"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:20
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:17
+#: aleksis/apps/kort/templates/kort/printer/actions.html:17
+msgid "Show"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:25
+msgid "Do you really want to deactivate the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:35
+#: aleksis/apps/kort/templates/kort/card/actions.html:41
+msgid "Deactivate"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:47
+#: aleksis/apps/kort/templates/kort/card/delete.html:30
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:33
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:29
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:31
+#: aleksis/apps/kort/templates/kort/printer/actions.html:33
+#: aleksis/apps/kort/templates/kort/printer/delete.html:29
+#: aleksis/apps/kort/templates/kort/printer/detail.html:31
+msgid "Delete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:8
+msgid "Delete Card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:12
+msgid "Do you really want to delete the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that a deletion of a card is irreversible and should be only used to clean up misprints.\n"
+"      If you just want to make a card unusable because a student has lost his card or left the school,\n"
+"      please deactivate the card instead.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:25
+#: aleksis/apps/kort/templates/kort/printer/delete.html:25
+msgid "Go back"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:6
+msgid "Card details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:19
+msgid "not set yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:53
+msgid "Show card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:61
+msgid "Generate card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/edit.html:12
+#: aleksis/apps/kort/templates/kort/card/edit.html:13
+msgid "Edit card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:12
+#: aleksis/apps/kort/templates/kort/card/issue.html:13
+msgid "Issue card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:23
+msgid ""
+"\n"
+"          Please select the persons and/or the groups to whom you want to issue new cards.\n"
+"          After clicking on 'Next', you will be able to check whether the data of the persons\n"
+"          are complete and include everything needed for the cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:32
+msgid ""
+"\n"
+"          In the following table you can see all selected persons and the related data needed for the cards.\n"
+"          Please select the persons to whom you want to issue new cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:65
+msgid "Previous step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:71
+msgid "Issue cards for selected persons"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:77
+msgid "Next step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:83
+msgid "Cancel"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/list.html:17
+msgid "Issue new card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/print_form.html:8
+#: aleksis/apps/kort/templates/kort/card/print_form.html:16
+msgid "Print card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:3
+msgid "Valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:5
+msgid "Not valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:24
+#: aleksis/apps/kort/templates/kort/printer/actions.html:27
+#: aleksis/apps/kort/templates/kort/printer/detail.html:24
+msgid "Edit"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:13
+msgid "Create card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:23
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:23
+msgid "Media Files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:8
+msgid "Delete Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:12
+msgid "Do you really want to delete the following card layout?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will prevent the successful finishing of all active print jobs\n"
+"      which use these template.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:15
+msgid "Back to all layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:6
+msgid "Layout details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:17
+msgid "Size (w × h)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:24
+msgid "Media files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:31
+msgid "No media files uploaded."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:13
+msgid "Edit card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:4
+msgid "Instructions on templating the card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:5
+msgid ""
+"\n"
+"      You will be able to use the following data in your individual template. The template has to been written in the\n"
+"      Django template language.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:11
+msgid "The chip number as string"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:15
+msgid "This will give you access to any attributes of the person object like name, personal data or contact data."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:19
+msgid "The date until when the card is valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:24
+msgid "This will give you access to the uploaded media files. Replace 0 by the number of your media file (starting with 0)."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:8
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:9
+msgid "Card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:17
+msgid "Create new card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:5
+#, python-format
+msgid "%(count)s missing data fields"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:10
+msgid "Data complete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/picture.html:4
+msgid "Person picture"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/create.html:12
+#: aleksis/apps/kort/templates/kort/printer/create.html:13
+msgid "Create card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:8
+msgid "Delete Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:12
+msgid "Do you really want to delete the following card printer?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will deactivate the access for the print client and you would have to\n"
+"      reconfigure the client if you want to use it further.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail.html:15
+msgid "Back to all printers"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:6
+msgid "Printer details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:33
+msgid "never seen yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:60
+msgid "Setup printer client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:62
+msgid ""
+"\n"
+"              To enable printing, you have to register the print client on the device\n"
+"              which the printer is connected to.\n"
+"            "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:67
+msgid "1. Download print client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:68
+msgid "2. Download configuration file"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:71
+msgid "Download configuration"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:73
+msgid "3. Setup client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:80
+msgid "Print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:87
+msgid "Created at"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/edit.html:12
+#: aleksis/apps/kort/templates/kort/printer/edit.html:13
+msgid "Edit card printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/list.html:17
+msgid "Register new card printer"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:69
+msgid "The cards have been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:137 aleksis/apps/kort/views.py:193
+msgid "The print job #{} for the card {} on the printer {} has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:145 aleksis/apps/kort/views.py:200
+msgid "The print job couldn't be started because of the following error: {}"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:158
+msgid "The card has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:171
+msgid "The card has been deactivated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:220
+msgid "The chip number is missing."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:232
+msgid "Progress: Generate card layout as PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:233
+msgid "Generating PDF file …"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:234
+msgid "The PDF file with the card layout has been generated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:235
+msgid "There was a problem while generating the PDF file."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:237
+msgid "Show card"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:275
+msgid "The card printer has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:288
+msgid "The card printer has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:301
+msgid "The card printer has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:364
+msgid "The card layout has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:382
+msgid "The card layout has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:395
+msgid "The card layout has been deleted successfully."
+msgstr ""
diff --git a/aleksis/apps/kort/locale/nb_NO/LC_MESSAGES/django.po b/aleksis/apps/kort/locale/nb_NO/LC_MESSAGES/django.po
new file mode 100644
index 0000000..ac0a519
--- /dev/null
+++ b/aleksis/apps/kort/locale/nb_NO/LC_MESSAGES/django.po
@@ -0,0 +1,710 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-08-12 23:11+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: aleksis/apps/kort/apps.py:25
+msgid "Access and manage printer status and print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:15
+msgid "Select person(s) or group(s)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:16
+msgid "Select validity"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:17
+msgid "Select layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:18
+msgid "Select printer (optional)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:22 aleksis/apps/kort/forms.py:111
+#: aleksis/apps/kort/templates/kort/printer/detail.html:8
+msgid "Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:23
+msgid "Select a printer to directly print the newly issued card."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:28
+msgid "Persons"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:41
+msgid "Groups"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:51 aleksis/apps/kort/models.py:185
+msgid "Card layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:53 aleksis/apps/kort/models.py:257
+#: aleksis/apps/kort/tables.py:30
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:24
+#: aleksis/apps/kort/templates/kort/card/short.html:12
+msgid "Valid until"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:63
+msgid "You must select at least one person or group."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:71
+msgid "The selected groups don't have any members."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:91
+msgid "Generic attributes"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:93
+msgid "Printer settings"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:138 aleksis/apps/kort/models.py:222
+msgid "Required data fields"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:6
+msgid "Student ID Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:16
+msgid "All Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:27
+msgid "Card Printers"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:38 aleksis/apps/kort/models.py:249
+msgid "Card Layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:24
+msgid "Online"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:25
+msgid "Offline"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:26
+msgid "With errors"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:27
+msgid "Not registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:56
+msgid "Registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:57
+msgid "In progress"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:58
+msgid "Finished"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:59
+msgid "Failed"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:64 aleksis/apps/kort/models.py:217
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card_layout/short.html:4
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/printer/short.html:4
+msgid "Name"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:65
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:24
+msgid "Description"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:66
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/printer/short.html:8
+msgid "Location"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:70 aleksis/apps/kort/models.py:330
+#: aleksis/apps/kort/tables.py:95
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:90
+#: aleksis/apps/kort/templates/kort/printer/short.html:12
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:74 aleksis/apps/kort/models.py:334
+msgid "Status text"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:75 aleksis/apps/kort/tables.py:58
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:31
+msgid "Last seen at"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:80
+msgid "OAuth2 application"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:87
+msgid "CUPS printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:89
+msgid "Generate card number on server"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:91
+msgid "Card detector"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:175
+msgid "Card printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:176
+#: aleksis/apps/kort/templates/kort/printer/list.html:8
+#: aleksis/apps/kort/templates/kort/printer/list.html:9
+msgid "Card printers"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:180
+msgid "Media file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:192
+msgid "Media file for a card layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:193
+msgid "Media files for card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:218
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:43
+msgid "Template"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:219
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:49
+msgid "Custom CSS"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220
+msgid "Width"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220 aleksis/apps/kort/models.py:221
+msgid "in mm"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:221
+msgid "Height"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:242
+msgid "Template is invalid: {}"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:248 aleksis/apps/kort/models.py:261
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:8
+msgid "Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:254
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card/short.html:4
+msgid "Person"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:256
+msgid "Chip Number"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:258 aleksis/apps/kort/tables.py:31
+msgid "Deactivated"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:264
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:297
+msgid "There is no layout provided for the card."
+msgstr ""
+
+#: aleksis/apps/kort/models.py:316 aleksis/apps/kort/models.py:325
+#: aleksis/apps/kort/templates/kort/card/detail.html:8
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:84
+msgid "Card"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:317
+#: aleksis/apps/kort/templates/kort/card/list.html:8
+#: aleksis/apps/kort/templates/kort/card/list.html:9
+msgid "Cards"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:322
+msgid "Printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:337
+msgid "Card print job"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:338
+msgid "Card print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:28
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/card/short.html:8
+msgid "Chip number"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:29 aleksis/apps/kort/tables.py:57
+msgid "Current status"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:32 aleksis/apps/kort/tables.py:61
+#: aleksis/apps/kort/tables.py:85
+msgid "Actions"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:54
+msgid "Printer name"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:55
+msgid "Printer location"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:59
+msgid "Running jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:81
+msgid "Layout name"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:8
+#: aleksis/apps/kort/templates/kort/card/detail.html:9
+#, python-format
+msgid "Card of %(person)s"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:14
+#: aleksis/apps/kort/templates/kort/card/actions.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:11
+#: aleksis/apps/kort/templates/kort/printer/actions.html:11
+msgid "Close"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:20
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:17
+#: aleksis/apps/kort/templates/kort/printer/actions.html:17
+msgid "Show"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:25
+msgid "Do you really want to deactivate the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:35
+#: aleksis/apps/kort/templates/kort/card/actions.html:41
+msgid "Deactivate"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:47
+#: aleksis/apps/kort/templates/kort/card/delete.html:30
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:33
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:29
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:31
+#: aleksis/apps/kort/templates/kort/printer/actions.html:33
+#: aleksis/apps/kort/templates/kort/printer/delete.html:29
+#: aleksis/apps/kort/templates/kort/printer/detail.html:31
+msgid "Delete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:8
+msgid "Delete Card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:12
+msgid "Do you really want to delete the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that a deletion of a card is irreversible and should be only used to clean up misprints.\n"
+"      If you just want to make a card unusable because a student has lost his card or left the school,\n"
+"      please deactivate the card instead.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:25
+#: aleksis/apps/kort/templates/kort/printer/delete.html:25
+msgid "Go back"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:6
+msgid "Card details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:19
+msgid "not set yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:53
+msgid "Show card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:61
+msgid "Generate card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/edit.html:12
+#: aleksis/apps/kort/templates/kort/card/edit.html:13
+msgid "Edit card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:12
+#: aleksis/apps/kort/templates/kort/card/issue.html:13
+msgid "Issue card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:23
+msgid ""
+"\n"
+"          Please select the persons and/or the groups to whom you want to issue new cards.\n"
+"          After clicking on 'Next', you will be able to check whether the data of the persons\n"
+"          are complete and include everything needed for the cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:32
+msgid ""
+"\n"
+"          In the following table you can see all selected persons and the related data needed for the cards.\n"
+"          Please select the persons to whom you want to issue new cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:65
+msgid "Previous step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:71
+msgid "Issue cards for selected persons"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:77
+msgid "Next step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:83
+msgid "Cancel"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/list.html:17
+msgid "Issue new card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/print_form.html:8
+#: aleksis/apps/kort/templates/kort/card/print_form.html:16
+msgid "Print card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:3
+msgid "Valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:5
+msgid "Not valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:24
+#: aleksis/apps/kort/templates/kort/printer/actions.html:27
+#: aleksis/apps/kort/templates/kort/printer/detail.html:24
+msgid "Edit"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:13
+msgid "Create card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:23
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:23
+msgid "Media Files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:8
+msgid "Delete Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:12
+msgid "Do you really want to delete the following card layout?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will prevent the successful finishing of all active print jobs\n"
+"      which use these template.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:15
+msgid "Back to all layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:6
+msgid "Layout details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:17
+msgid "Size (w × h)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:24
+msgid "Media files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:31
+msgid "No media files uploaded."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:13
+msgid "Edit card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:4
+msgid "Instructions on templating the card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:5
+msgid ""
+"\n"
+"      You will be able to use the following data in your individual template. The template has to been written in the\n"
+"      Django template language.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:11
+msgid "The chip number as string"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:15
+msgid "This will give you access to any attributes of the person object like name, personal data or contact data."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:19
+msgid "The date until when the card is valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:24
+msgid "This will give you access to the uploaded media files. Replace 0 by the number of your media file (starting with 0)."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:8
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:9
+msgid "Card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:17
+msgid "Create new card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:5
+#, python-format
+msgid "%(count)s missing data fields"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:10
+msgid "Data complete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/picture.html:4
+msgid "Person picture"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/create.html:12
+#: aleksis/apps/kort/templates/kort/printer/create.html:13
+msgid "Create card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:8
+msgid "Delete Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:12
+msgid "Do you really want to delete the following card printer?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will deactivate the access for the print client and you would have to\n"
+"      reconfigure the client if you want to use it further.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail.html:15
+msgid "Back to all printers"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:6
+msgid "Printer details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:33
+msgid "never seen yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:60
+msgid "Setup printer client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:62
+msgid ""
+"\n"
+"              To enable printing, you have to register the print client on the device\n"
+"              which the printer is connected to.\n"
+"            "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:67
+msgid "1. Download print client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:68
+msgid "2. Download configuration file"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:71
+msgid "Download configuration"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:73
+msgid "3. Setup client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:80
+msgid "Print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:87
+msgid "Created at"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/edit.html:12
+#: aleksis/apps/kort/templates/kort/printer/edit.html:13
+msgid "Edit card printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/list.html:17
+msgid "Register new card printer"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:69
+msgid "The cards have been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:137 aleksis/apps/kort/views.py:193
+msgid "The print job #{} for the card {} on the printer {} has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:145 aleksis/apps/kort/views.py:200
+msgid "The print job couldn't be started because of the following error: {}"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:158
+msgid "The card has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:171
+msgid "The card has been deactivated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:220
+msgid "The chip number is missing."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:232
+msgid "Progress: Generate card layout as PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:233
+msgid "Generating PDF file …"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:234
+msgid "The PDF file with the card layout has been generated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:235
+msgid "There was a problem while generating the PDF file."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:237
+msgid "Show card"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:275
+msgid "The card printer has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:288
+msgid "The card printer has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:301
+msgid "The card printer has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:364
+msgid "The card layout has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:382
+msgid "The card layout has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:395
+msgid "The card layout has been deleted successfully."
+msgstr ""
diff --git a/aleksis/apps/kort/locale/tr_TR/LC_MESSAGES/django.po b/aleksis/apps/kort/locale/tr_TR/LC_MESSAGES/django.po
new file mode 100644
index 0000000..ac0a519
--- /dev/null
+++ b/aleksis/apps/kort/locale/tr_TR/LC_MESSAGES/django.po
@@ -0,0 +1,710 @@
+# 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.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2022-08-12 23:11+0200\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: aleksis/apps/kort/apps.py:25
+msgid "Access and manage printer status and print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:15
+msgid "Select person(s) or group(s)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:16
+msgid "Select validity"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:17
+msgid "Select layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:18
+msgid "Select printer (optional)"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:22 aleksis/apps/kort/forms.py:111
+#: aleksis/apps/kort/templates/kort/printer/detail.html:8
+msgid "Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:23
+msgid "Select a printer to directly print the newly issued card."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:28
+msgid "Persons"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:41
+msgid "Groups"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:51 aleksis/apps/kort/models.py:185
+msgid "Card layout"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:53 aleksis/apps/kort/models.py:257
+#: aleksis/apps/kort/tables.py:30
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:24
+#: aleksis/apps/kort/templates/kort/card/short.html:12
+msgid "Valid until"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:63
+msgid "You must select at least one person or group."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:71
+msgid "The selected groups don't have any members."
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:91
+msgid "Generic attributes"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:93
+msgid "Printer settings"
+msgstr ""
+
+#: aleksis/apps/kort/forms.py:138 aleksis/apps/kort/models.py:222
+msgid "Required data fields"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:6
+msgid "Student ID Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:16
+msgid "All Cards"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:27
+msgid "Card Printers"
+msgstr ""
+
+#: aleksis/apps/kort/menus.py:38 aleksis/apps/kort/models.py:249
+msgid "Card Layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:24
+msgid "Online"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:25
+msgid "Offline"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:26
+msgid "With errors"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:27
+msgid "Not registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:56
+msgid "Registered"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:57
+msgid "In progress"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:58
+msgid "Finished"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:59
+msgid "Failed"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:64 aleksis/apps/kort/models.py:217
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card_layout/short.html:4
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/printer/short.html:4
+msgid "Name"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:65
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:24
+msgid "Description"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:66
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/printer/short.html:8
+msgid "Location"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:70 aleksis/apps/kort/models.py:330
+#: aleksis/apps/kort/tables.py:95
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:38
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:90
+#: aleksis/apps/kort/templates/kort/printer/short.html:12
+msgid "Status"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:74 aleksis/apps/kort/models.py:334
+msgid "Status text"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:75 aleksis/apps/kort/tables.py:58
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:31
+msgid "Last seen at"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:80
+msgid "OAuth2 application"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:87
+msgid "CUPS printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:89
+msgid "Generate card number on server"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:91
+msgid "Card detector"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:175
+msgid "Card printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:176
+#: aleksis/apps/kort/templates/kort/printer/list.html:8
+#: aleksis/apps/kort/templates/kort/printer/list.html:9
+msgid "Card printers"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:180
+msgid "Media file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:192
+msgid "Media file for a card layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:193
+msgid "Media files for card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:218
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:43
+msgid "Template"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:219
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:49
+msgid "Custom CSS"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220
+msgid "Width"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:220 aleksis/apps/kort/models.py:221
+msgid "in mm"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:221
+msgid "Height"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:242
+msgid "Template is invalid: {}"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:248 aleksis/apps/kort/models.py:261
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:8
+msgid "Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:254
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:11
+#: aleksis/apps/kort/templates/kort/card/short.html:4
+msgid "Person"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:256
+msgid "Chip Number"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:258 aleksis/apps/kort/tables.py:31
+msgid "Deactivated"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:264
+msgid "PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:297
+msgid "There is no layout provided for the card."
+msgstr ""
+
+#: aleksis/apps/kort/models.py:316 aleksis/apps/kort/models.py:325
+#: aleksis/apps/kort/templates/kort/card/detail.html:8
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:84
+msgid "Card"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:317
+#: aleksis/apps/kort/templates/kort/card/list.html:8
+#: aleksis/apps/kort/templates/kort/card/list.html:9
+msgid "Cards"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:322
+msgid "Printer"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:337
+msgid "Card print job"
+msgstr ""
+
+#: aleksis/apps/kort/models.py:338
+msgid "Card print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:28
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:17
+#: aleksis/apps/kort/templates/kort/card/short.html:8
+msgid "Chip number"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:29 aleksis/apps/kort/tables.py:57
+msgid "Current status"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:32 aleksis/apps/kort/tables.py:61
+#: aleksis/apps/kort/tables.py:85
+msgid "Actions"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:54
+msgid "Printer name"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:55
+msgid "Printer location"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:59
+msgid "Running jobs"
+msgstr ""
+
+#: aleksis/apps/kort/tables.py:81
+msgid "Layout name"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:8
+#: aleksis/apps/kort/templates/kort/card/detail.html:9
+#, python-format
+msgid "Card of %(person)s"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:14
+#: aleksis/apps/kort/templates/kort/card/actions.html:31
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:11
+#: aleksis/apps/kort/templates/kort/printer/actions.html:11
+msgid "Close"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:20
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:17
+#: aleksis/apps/kort/templates/kort/printer/actions.html:17
+msgid "Show"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:25
+msgid "Do you really want to deactivate the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:35
+#: aleksis/apps/kort/templates/kort/card/actions.html:41
+msgid "Deactivate"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/actions.html:47
+#: aleksis/apps/kort/templates/kort/card/delete.html:30
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:33
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:29
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:31
+#: aleksis/apps/kort/templates/kort/printer/actions.html:33
+#: aleksis/apps/kort/templates/kort/printer/delete.html:29
+#: aleksis/apps/kort/templates/kort/printer/detail.html:31
+msgid "Delete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:8
+msgid "Delete Card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:12
+msgid "Do you really want to delete the following card?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that a deletion of a card is irreversible and should be only used to clean up misprints.\n"
+"      If you just want to make a card unusable because a student has lost his card or left the school,\n"
+"      please deactivate the card instead.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/delete.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:25
+#: aleksis/apps/kort/templates/kort/printer/delete.html:25
+msgid "Go back"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:6
+msgid "Card details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:19
+msgid "not set yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:53
+msgid "Show card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/detail_content.html:61
+msgid "Generate card as PDF"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/edit.html:12
+#: aleksis/apps/kort/templates/kort/card/edit.html:13
+msgid "Edit card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:12
+#: aleksis/apps/kort/templates/kort/card/issue.html:13
+msgid "Issue card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:23
+msgid ""
+"\n"
+"          Please select the persons and/or the groups to whom you want to issue new cards.\n"
+"          After clicking on 'Next', you will be able to check whether the data of the persons\n"
+"          are complete and include everything needed for the cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:32
+msgid ""
+"\n"
+"          In the following table you can see all selected persons and the related data needed for the cards.\n"
+"          Please select the persons to whom you want to issue new cards.\n"
+"        "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:65
+msgid "Previous step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:71
+msgid "Issue cards for selected persons"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:77
+msgid "Next step"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/issue.html:83
+msgid "Cancel"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/list.html:17
+msgid "Issue new card(s)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/print_form.html:8
+#: aleksis/apps/kort/templates/kort/card/print_form.html:16
+msgid "Print card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:3
+msgid "Valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card/status.html:5
+msgid "Not valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/actions.html:26
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:24
+#: aleksis/apps/kort/templates/kort/printer/actions.html:27
+#: aleksis/apps/kort/templates/kort/printer/detail.html:24
+msgid "Edit"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:13
+msgid "Create card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/create.html:23
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:23
+msgid "Media Files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:8
+msgid "Delete Card Layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:12
+msgid "Do you really want to delete the following card layout?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will prevent the successful finishing of all active print jobs\n"
+"      which use these template.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail.html:15
+msgid "Back to all layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:6
+msgid "Layout details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:17
+msgid "Size (w × h)"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:24
+msgid "Media files"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/detail_content.html:31
+msgid "No media files uploaded."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:12
+#: aleksis/apps/kort/templates/kort/card_layout/edit.html:13
+msgid "Edit card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:4
+msgid "Instructions on templating the card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:5
+msgid ""
+"\n"
+"      You will be able to use the following data in your individual template. The template has to been written in the\n"
+"      Django template language.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:11
+msgid "The chip number as string"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:15
+msgid "This will give you access to any attributes of the person object like name, personal data or contact data."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:19
+msgid "The date until when the card is valid"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/instructions.html:24
+msgid "This will give you access to the uploaded media files. Replace 0 by the number of your media file (starting with 0)."
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:8
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:9
+msgid "Card layouts"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/card_layout/list.html:17
+msgid "Create new card layout"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:5
+#, python-format
+msgid "%(count)s missing data fields"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/person_status.html:10
+msgid "Data complete"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/picture.html:4
+msgid "Person picture"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/create.html:12
+#: aleksis/apps/kort/templates/kort/printer/create.html:13
+msgid "Create card"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:8
+msgid "Delete Card Printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:12
+msgid "Do you really want to delete the following card printer?"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/delete.html:16
+msgid ""
+"\n"
+"      Please pay attention that this also will deactivate the access for the print client and you would have to\n"
+"      reconfigure the client if you want to use it further.\n"
+"    "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail.html:15
+msgid "Back to all printers"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:6
+msgid "Printer details"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:33
+msgid "never seen yet"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:60
+msgid "Setup printer client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:62
+msgid ""
+"\n"
+"              To enable printing, you have to register the print client on the device\n"
+"              which the printer is connected to.\n"
+"            "
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:67
+msgid "1. Download print client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:68
+msgid "2. Download configuration file"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:71
+msgid "Download configuration"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:73
+msgid "3. Setup client"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:80
+msgid "Print jobs"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/detail_content.html:87
+msgid "Created at"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/edit.html:12
+#: aleksis/apps/kort/templates/kort/printer/edit.html:13
+msgid "Edit card printer"
+msgstr ""
+
+#: aleksis/apps/kort/templates/kort/printer/list.html:17
+msgid "Register new card printer"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:69
+msgid "The cards have been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:137 aleksis/apps/kort/views.py:193
+msgid "The print job #{} for the card {} on the printer {} has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:145 aleksis/apps/kort/views.py:200
+msgid "The print job couldn't be started because of the following error: {}"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:158
+msgid "The card has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:171
+msgid "The card has been deactivated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:220
+msgid "The chip number is missing."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:232
+msgid "Progress: Generate card layout as PDF file"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:233
+msgid "Generating PDF file …"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:234
+msgid "The PDF file with the card layout has been generated successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:235
+msgid "There was a problem while generating the PDF file."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:237
+msgid "Show card"
+msgstr ""
+
+#: aleksis/apps/kort/views.py:275
+msgid "The card printer has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:288
+msgid "The card printer has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:301
+msgid "The card printer has been deleted successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:364
+msgid "The card layout has been created successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:382
+msgid "The card layout has been changed successfully."
+msgstr ""
+
+#: aleksis/apps/kort/views.py:395
+msgid "The card layout has been deleted successfully."
+msgstr ""
-- 
GitLab