commit 3b05e65af8f0a158523ef84f3a3cd05156a49250
Author: Martin Helmling <martin.helmling@octosoft.eu>
Date:   Wed Feb 1 16:15:25 2017 +0100

    Zugriffsrechte: Doppelte Position 2650 korrigiert , sowie Übersetzungen ergänzt

diff --git a/js/locale/de.js b/js/locale/de.js
index 71749f7d4..e6c964b89 100644
--- a/js/locale/de.js
+++ b/js/locale/de.js
@@ -1,4 +1,5 @@
 namespace("kivi").setupLocale({
+" bytes, max=":" Bytes, Maximum=",
 "A transaction description is required.":"Die Vorgangsbezeichnung muss eingegeben werden.",
 "Add function block":"Funktionsblock hinzufügen",
 "Add linked record":"Verknüpften Beleg hinzufügen",
@@ -9,6 +10,7 @@ namespace("kivi").setupLocale({
 "Add sub function block":"Unterfunktionsblock hinzufügen",
 "Add text block":"Textblock erfassen",
 "Additional articles actions":"Aktionen zu zusätzlichen Artikeln",
+"An error occurred while transferring the file.":"Bei Übertragung der Datei trat ein Fehler auf",
 "Are you sure you want to update the selected record template with the current values? This cannot be undone.":"Sind Sie sicher, dass Sie die ausgewählte Belegvorlage mit den aktuellen Daten aktualisieren wollen? Das kann nicht rückgängig gemacht werden.",
 "Are you sure?":"Sind Sie sicher?",
 "Assign invoice":"Rechnung zuweisen",
@@ -36,10 +38,12 @@ namespace("kivi").setupLocale({
 "Delete text block":"Textblock löschen",
 "Do you really want do continue?":"Wollen Sie wirklich fortfahren?",
 "Do you really want to cancel?":"Wollen Sie wirklich abbrechen?",
+"Do you really want to delete the selected documents?":"Wollen Sie wirklich diese Dateien löschen?",
 "Do you really want to delete this draft?":"Wollen Sie diesen Entwurf wirklich löschen?",
 "Do you really want to delete this record template?":"Wollen Sie diese Belegvorlage wirklich löschen?",
 "Do you really want to revert to this version?":"Wollen Sie wirklich auf diese Version zurücksetzen?",
 "Do you really want to save?":"Wollen Sie wirklich speichern?",
+"Do you really want to unimport the selected documents?":"Wollen Sie wirklich diese Dateien an die Quelle zurückgeben?",
 "Do you want to set the account number \"#1\" to \"#2\" and the name \"#3\" to \"#4\"?":"Soll die Kontonummer \"#1\" zu \"#2\" und den Name \"#3\" zu \"#4\" geändert werden?",
 "Download picture":"Bild herunterladen",
 "Edit":"Bearbeiten",
@@ -55,11 +59,14 @@ namespace("kivi").setupLocale({
 "Hide details":"Details verbergen",
 "History":"Historie",
 "If you switch to a different tab without saving you will lose the data you've entered in the current tab.":"Wenn Sie auf einen anderen Tab wechseln, ohne vorher zu speichern, so gehen die im aktuellen Tab eingegebenen Daten verloren.",
+"Import documents from #1":"Importiere Dateien von Quelle '#1'",
 "Map":"Karte",
+"More than one file selected, please set only one checkbox!":"Mehr als ein Element selektiert, bitte nur eine Box anklicken",
 "No":"Nein",
 "No delievery orders selected, please set one checkbox!":"Kein Lieferschein selektiert, bitte eine Box anklicken!",
 "No delivery orders have been selected.":"Es wurden keine Lieferscheine ausgewählt.",
 "No entries have been selected.":"Es wurden keine Einträge ausgewählt.",
+"No file selected, please set one checkbox!":"Kein Element selektiert,bitte eine Box anklicken",
 "No invoices have been selected.":"Es wurden keine Rechnungen ausgewählt.",
 "Part picker":"Artikelauswahl",
 "Paste":"Einfügen",
@@ -73,6 +80,7 @@ namespace("kivi").setupLocale({
 "Quotations/Orders actions":"Aktionen für Angebote/Aufträge",
 "Re-numbering all sections and function blocks in the order they are currently shown cannot be undone.":"Das Neu-Nummerieren aller Abschnitte und Funktionsblöcke kann nicht rückgängig gemacht werden.",
 "Remove article":"Artikel entfernen",
+"Rename attachment":"Dateianhang umbenennen",
 "Renumber sections and function blocks":"Abschnitte/Funktionsblöcke neu nummerieren",
 "Requirement spec actions":"Pflichtenheftaktionen",
 "Requirement spec template actions":"Pflichtenheftvorlagen-Aktionen",
@@ -94,6 +102,8 @@ namespace("kivi").setupLocale({
 "The option field is empty.":"Das Optionsfeld ist leer.",
 "The recipient, subject or body is missing.":"Der Empfäger, der Betreff oder der Text ist leer.",
 "The selected database is still configured for client \"#1\". If you delete the database that client will stop working until you re-configure it. Do you still want to delete the database?":"Die auswählte Datenbank ist noch für Mandant \"#1\" konfiguriert. Wenn Sie die Datenbank löschen, wird der Mandanten nicht mehr funktionieren, bis er anders konfiguriert wurde. Wollen Sie die Datenbank trotzdem löschen?",
+"The transfer has been canceled by the user.":"Der Vorgang wurde durch den Benutzer abgebrochen.",
+"The uploaded filename still exists.<br>If you not modify the name this is a new version of the file":"Der Dateiname existiert bereits.<br>Wenn Sie den Namen nicht ändern gibt dies eine neue Version der Datei",
 "There are duplicate parts at positions":"Es gibt doppelte Artikel bei den Positionen",
 "There are still transfers not matching the qty of the delivery order. Stock operations can not be changed later. Do you really want to proceed?":"Einige der Lagerbewegungen sind nicht vollständig und Lagerbewegungen können nachträglich nicht mehr verändert werden. Wollen Sie wirklich fortfahren?",
 "There is no connected chart.":"Es fehlt ein verknüpftes Buchungskonto.",
@@ -107,7 +117,11 @@ namespace("kivi").setupLocale({
 "Update quotation/order":"Auftrag/Angebot aktualisieren",
 "Version actions":"Aktionen für Versionen",
 "Yes":"Ja",
+"filename has not uploadable characters ":"Bitte Dateinamen ändern. Er hat für den Upload nicht verwendbare Sonderzeichen ",
+"filesize too big: ":"Datei zu groß: ",
 "flat-rate position":"Pauschalposition",
 "sort items":"Positionen sortieren",
-"time and effort based position":"Aufwandsposition"
+"start upload":"Hochladen beginnt",
+"time and effort based position":"Aufwandsposition",
+"uploaded":"Hochgeladen"
 });
diff --git a/locale/de/all b/locale/de/all
index 621e64cb8..73e821465 100644
--- a/locale/de/all
+++ b/locale/de/all
@@ -12,6 +12,7 @@ use utf8;
 $self->{texts} = {
   ' (in use so no change allowed)' => ' (Faktor wird verwendet, keine Änderung erlaubt)',
   ' Date missing!'              => ' Datum fehlt!',
+  ' bytes, max='                => ' Bytes, Maximum=',
   ' missing!'                   => ' fehlt!',
   '#1 (custom variable)'        => '#1 (benutzerdefinierte Variable)',
   '#1 CB transactions and #1 OB transactions generated.' => '#1 Schluss- und #1 Eröffnungsbuchungen wurden erstellt.',
@@ -29,7 +30,7 @@ $self->{texts} = {
   '%'                           => '%',
   '(recommended) Insert the used currencies in the system. You can simply change the name of the currencies by editing the textfields above. Do not use a name of a currency that is already in use.' => '(empfohlen) F&uuml;gen Sie die verwaisten Währungen in Ihr System ein. Sie können den Namen der Währung einfach ändern, indem Sie die Felder oben bearbeiten. Benutzen Sie keine Namen von Währungen, die Sie bereits benutzen.',
   '*/'                          => '*/',
-  ', if set'                    => '',
+  ', if set'                    => ', falls gesetzt',
   '---please select---'         => '---bitte auswählen---',
   '. Automatically generated.'  => '. Automatisch erzeugt.',
   '...after logging in'         => '...nach dem Anmelden',
@@ -156,6 +157,7 @@ $self->{texts} = {
   'Add Customer/Vendor Number as a reference add-on for SEPA export.' => 'Kunden- Lieferantennummer im Verwendungszweck bei SEPA-Überweisungen anhängen',
   'Add Delivery Note'           => 'Lieferschein erfassen',
   'Add Delivery Order'          => 'Lieferschein erfassen',
+  'Add Document from \'#1\''    => 'Dokument von \'#1\' hinzufügen',
   'Add Dunning'                 => 'Mahnung erzeugen',
   'Add Follow-Up'               => 'Wiedervorlage erstellen',
   'Add Follow-Up for #1'        => 'Wiedervorlage f&uuml;r #1 erstellen',
@@ -263,13 +265,14 @@ $self->{texts} = {
   'Amount payable less discount' => 'Noch zu bezahlender Betrag abzüglich Skonto',
   'Amounts differ too much'     => 'Beträge weichen zu sehr voneinander ab.',
   'An error occured. Letter could not be deleted.' => 'Es ist ein Fehler aufgetreten. Der Brief konnte nicht gelöscht werden.',
+  'An error occurred while transferring the file.' => 'Bei Übertragung der Datei trat ein Fehler auf',
   'An exception occurred during execution.' => 'Während der Ausführung trat eine Ausnahme auf.',
   'An invalid character was used (invalid characters: #1).' => 'Ein ungültiges Zeichen wurde benutzt (ungültige Zeichen: #1).',
   'An invalid character was used (valid characters: #1).' => 'Ein ungültiges Zeichen wurde benutzt (gültige Zeichen: #1).',
   'An upper-case character is required.' => 'Ein Großbuchstabe ist vorgeschrieben.',
   'Annotations'                 => 'Anmerkungen',
   'Any stock contents containing a best before date will be impossible to stock out otherwise.' => 'Sonst können Artikel, bei denen ein Mindesthaltbarkeitsdatum gesetzt ist, nicht mehr ausgelagert werden.',
-  'Ap aging on %s'              => '',
+  'Ap aging on %s'              => 'Offene Verbindlichkeiten an %s',
   'Application Error. No Format given' => 'Fehler in der Anwendung. Das Ausgabeformat fehlt.',
   'Application Error. Wrong Format' => 'Fehler in der Anwendung. Falsches Format: ',
   'Apply to all parts'          => 'Bei allen Artikeln setzen',
@@ -327,6 +330,7 @@ $self->{texts} = {
   'At most'                     => 'H&ouml;chstens',
   'At the moment the transaction looks like this:' => 'Aktuell sieht die Buchung wie folgt aus:',
   'Attach PDF:'                 => 'PDF anhängen',
+  'Attached Filename'           => 'Name des Dateianhangs',
   'Attachment'                  => 'als Anhang',
   'Attachment name'             => 'Name des Anhangs',
   'Attachments'                 => 'Dateianhänge',
@@ -818,7 +822,7 @@ $self->{texts} = {
   'Data type'                   => 'Datentyp',
   'DataSet #1'                  => 'Datensatz #1',
   'DataSet for GoBD version #1. Created with kivitendo #2 by #3 (#4)' => 'Datenüberlassung nach GoBD vom #1. Erstellt mit kivitendo #2. Ansprechpartner ist #3 (#4)',
-  'Database'                    => '',
+  'Database'                    => 'Datenbank',
   'Database Administration'     => 'Datenbankadministration',
   'Database Connection Test'    => 'Test der Datenbankverbindung',
   'Database Host'               => 'Datenbankcomputer',
@@ -890,9 +894,13 @@ $self->{texts} = {
   'Default value'               => 'Standardwert',
   'Delete'                      => 'Löschen',
   'Delete Account'              => 'Konto löschen',
+  'Delete Attachments'          => 'Anhänge löschen',
   'Delete Contact'              => 'Ansprechperson löschen',
   'Delete Dataset'              => 'Datenbank löschen',
+  'Delete Documents'            => 'Dokumente löschen',
+  'Delete Images'               => 'Bilder löschen',
   'Delete Shipto'               => 'Lieferadresse löschen',
+  'Delete all'                  => 'Alle Löschen',
   'Delete drafts'               => 'Entwürfe löschen',
   'Delete links'                => 'Verknüpfungen löschen',
   'Delete picture'              => 'Bild löschen',
@@ -979,6 +987,7 @@ $self->{texts} = {
   'Do you really want to delete AP transaction #1?' => 'Wollen Sie wirklich die Kreditorenbuchung #1 löschen?',
   'Do you really want to delete AR transaction #1?' => 'Wollen Sie wirklich die Debitorenbuchung #1 löschen?',
   'Do you really want to delete GL transaction #1?' => 'Wollen Sie wirklich die Dialogbuchung #1 löschen?',
+  'Do you really want to delete the selected documents?' => 'Wollen Sie wirklich diese Dateien löschen?',
   'Do you really want to delete the selected links?' => 'Wollen Sie wirklich die ausgewählten Verknüpfungen löschen?',
   'Do you really want to delete this draft?' => 'Wollen Sie diesen Entwurf wirklich löschen?',
   'Do you really want to delete this invoice?' => 'Wollen Sie diese Rechnung wirklich löschen?',
@@ -987,6 +996,7 @@ $self->{texts} = {
   'Do you really want to delete this warehouse?' => 'Wollen Sie dieses Lager wirklich l&ouml;schen?',
   'Do you really want to revert to this version?' => 'Wollen Sie wirklich auf diese Version zurücksetzen?',
   'Do you really want to save?' => 'Wollen Sie wirklich speichern?',
+  'Do you really want to unimport the selected documents?' => 'Wollen Sie wirklich diese Dateien an die Quelle zurückgeben?',
   'Do you want to <b>limit</b> your search?' => 'Wollen Sie Ihre Suche <b>spezialisieren</b>?',
   'Do you want to carry this shipping address over to the new purchase order so that the vendor can deliver the goods directly to your customer?' => 'Wollen Sie diese Lieferadresse in den neuen Lieferantenauftrag &uuml;bernehmen, damit der H&auml;ndler die Waren direkt an Ihren Kunden liefern kann?',
   'Do you want to overwrite your current title?' => 'Wollen Sie den aktuellen Titel überschreiben?',
@@ -1001,6 +1011,7 @@ $self->{texts} = {
   'Document generating failed. Please check Templates an LateX !' => 'Das Dokument konnte nicht erzeugt werden. Bitte Vorlagen und LateX prüfen!',
   'Documentation'               => 'Dokumentation',
   'Documentation (in German)'   => 'Dokumentation',
+  'Documents'                   => 'Dokumente',
   'Documents in the WebDAV repository' => 'Dokumente im WebDAV-Repository',
   'Done'                        => 'Fertig',
   'Done.'                       => 'Fertig.',
@@ -1043,6 +1054,7 @@ $self->{texts} = {
   'Duplicate in CSV file'       => 'Duplikat in CSV-Datei',
   'Duplicate in database'       => 'Duplikat in Datenbank',
   'During the next update a taxkey 0 with tax rate of 0 will automatically created.' => 'Beim nächsten Ausführen des Updates wird ein Steuerschlüssel 0 mit einem Steuersatz von 0% automatisch erzeugt.',
+  'E-Mail'                      => 'E-Mail',
   'E-Mail is sent to #1'        => 'Die E-Mail wurde an \'#1\' gesendet',
   'E-Mail-Journal'              => 'E-Mail-Journal',
   'E-mail'                      => 'E-Mail',
@@ -1311,9 +1323,13 @@ $self->{texts} = {
   'Fee'                         => 'Gebühr',
   'Field'                       => 'Feld',
   'File'                        => 'Datei',
+  'File \'#1\' is used as new Version !' => 'Datei \'#1\' wird als neue Version verwendet!',
   'File Management'             => 'Dateimanagement',
   'File name'                   => 'Dateiname',
+  'File not exists !'           => 'Datei nicht vorhanden !',
+  'File still exists !'         => 'Datei existiert bereits !',
   'Filemanagement'              => 'Dateimanagement',
+  'Filename'                    => 'Dateiname',
   'Files'                       => 'Dateien',
   'Filter'                      => 'Filter',
   'Filter by Partsgroups'       => 'Nach Warengruppen filtern',
@@ -1330,7 +1346,7 @@ $self->{texts} = {
   'First 20 Lines'              => 'Nur erste 20 Datensätze',
   'Fix transaction'             => 'Buchung korrigieren',
   'Fix transactions'            => 'Buchungen korrigieren',
-  'Focus position after update' => '',
+  'Focus position after update' => 'Eingabe-Fokus-Position nach Erneuern',
   'Folgekonto'                  => 'Folgekonto',
   'Follow-Up'                   => 'Wiedervorlage',
   'Follow-Up Date'              => 'Wiedervorlagedatum',
@@ -1341,6 +1357,8 @@ $self->{texts} = {
   'Follow-Up saved.'            => 'Wiedervorlage gespeichert.',
   'Follow-Ups'                  => 'Wiedervorlagen',
   'Follow-up for'               => 'Wiedervorlage für',
+  'Following files are deleted:' => 'Folgende Dateien wurden gelöscht:',
+  'Following files are unimported:' => 'Folgende Dateien sind zur Quelle exportiert:',
   'Following year'              => 'Folgendes Jahr',
   'Font'                        => 'Schriftart',
   'Font size'                   => 'Schriftgr&ouml;&szlig;e',
@@ -1491,6 +1509,8 @@ $self->{texts} = {
   'Import CSV'                  => 'CSV-Import',
   'Import Status'               => 'Import Status',
   'Import a MT940 file:'        => 'Laden Sie eine MT940 Datei hoch:',
+  'Import all'                  => 'Importiere Alle',
+  'Import documents from #1'    => 'Importiere Dateien von Quelle \'#1\'',
   'Import file'                 => 'Import-Datei',
   'Import finished with errors.' => 'Der Import wurde mit Fehlern beendet.',
   'Import finished without errors.' => 'Der Import wurde ohne Fehler beendet.',
@@ -1498,6 +1518,7 @@ $self->{texts} = {
   'Import preview'              => 'Import-Vorschau',
   'Import profiles'             => 'Import-Profil',
   'Import result'               => 'Import-Ergebnis',
+  'Import scanned documents'    => 'Importiere gescannte Dateien',
   'In order to do that hit the button "Delete transaction".' => 'Drücken Sie dafür auf den Button "Buchung löschen".',
   'In order to migrate the old folder structure into the new structure you have to chose which client the old structure will be assigned to.' => 'Um die alte Ordnerstruktur in die neue Struktur zu migrieren, müssen Sie festlegen, welchem Mandanten die bisherige Struktur zugewiesen wird.',
   'In order to use kivitendo you have to create at least a client, a user and a group.' => 'Um kivitendo zu nutzen, müssen Sie mindestens einen Mandanten, einen Benutzer und eine Gruppe anlegen.',
@@ -1778,6 +1799,7 @@ $self->{texts} = {
   'Month'                       => 'Monat',
   'Monthly'                     => 'monatlich',
   'More than one control file with the tag \'%s\' exist.' => 'Es gibt mehr als eine Kontrolldatei mit dem Tag \'%s\'.',
+  'More than one file selected, please set only one checkbox!' => 'Mehr als ein Element selektiert, bitte nur eine Box anklicken',
   'Multi mode not supported.'   => 'Multimodus wird nicht unterstützt.',
   'Multiple addresses can be entered separated by commas.' => 'Mehrere Adressen können durch Kommata getrennt angegeben werden.',
   'MwSt. inkl.'                 => 'MwSt. inkl.',
@@ -2323,6 +2345,7 @@ $self->{texts} = {
   'Ranges of numbers'           => 'Nummernkreise',
   'Re-numbering all sections and function blocks in the order they are currently shown cannot be undone.' => 'Das Neu-Nummerieren aller Abschnitte und Funktionsblöcke kann nicht rückgängig gemacht werden.',
   'Re-run analysis'             => 'Analyse wiederholen',
+  'Read all employee e-mails'   => 'Ansehen der E-Mails aller Mitarbeiter',
   'Really cancel link?'         => 'Verknüpfung wirklich aufheben?',
   'Receipt'                     => 'Zahlungseingang',
   'Receipt posted!'             => 'Beleg gebucht!',
@@ -2348,7 +2371,7 @@ $self->{texts} = {
   'Reduced Master Data'         => 'Abschlag',
   'Reference'                   => 'Referenz',
   'Reference / Invoice Number'  => 'Referenz / Rechnungsnummer',
-  'Reference day'               => '',
+  'Reference day'               => 'Referenztag',
   'Reference missing!'          => 'Referenz fehlt!',
   'Release From Stock'          => 'Lagerausgang',
   'Remaining'                   => 'Rest',
@@ -2373,6 +2396,10 @@ $self->{texts} = {
   'Removed text blocks: #1'     => 'Entfernte Textblöcke: #1',
   'Removing marked entries from queue ...' => 'Markierte Einträge werden von der Warteschlange entfernt ...',
   'Rename'                      => 'Umbenennen',
+  'Rename Attachments'          => 'Anhang umbenennen',
+  'Rename Documents'            => 'Dokument umbenennen',
+  'Rename Images'               => 'Bilder umbenennen',
+  'Rename attachment'           => 'Dateianhang umbenennen',
   'Renumber sections and function blocks' => 'Abschnitte/Funktionsblöcke neu nummerieren',
   'Replace the orphaned currencies by other not orphaned currencies. To do so, please delete the currency in the textfields above and replace it by another currency. You could loose or change unintentionally exchangerates. Go on very carefully since you could destroy transactions.' => 'Ersetze die Währungen durch andere gültige Währungen. Wenn Sie sich hierfür entscheiden, ersetzen Sie bitte alle Währungen, die oben angegeben sind, durch Währungen, die in Ihrem System ordnungsgemäß eingetragen sind. Alle eingetragenen Wechselkurse für die verwaiste Währung werden dabei gelöscht. Bitte gehen Sie sehr vorsichtig vor, denn die betroffenen Buchungen können unter Umständen kaputt gehen.',
   'Report Positions'            => 'Berichte',
@@ -2500,6 +2527,7 @@ $self->{texts} = {
   'Salesman'                    => 'Verkäufer/in',
   'Salesman (database ID)'      => 'Verkäufer (Datenbank-ID)',
   'Salesperson'                 => 'Verkäufer',
+  'Same Filename !'             => 'unveränderter Dateiname !',
   'Same as the quote character' => 'Wie Anf&uuml;hrungszeichen',
   'Sat. Fax'                    => 'Sat. Fax',
   'Sat. Phone'                  => 'Sat. Tel.',
@@ -2570,6 +2598,7 @@ $self->{texts} = {
   'Sellprice for price group \'#1\'' => 'Verkaufspreis für Preisgruppe \'#1\'',
   'Sellprice significant places' => 'Verkaufspreis: Nachkommastellen',
   'Semicolon'                   => 'Semikolon',
+  'Send a BCC to logged in user?' => 'BCC an eingeloggten Benutzer?',
   'Send a blind copy of all outgoing emails to current user\'s email address?' => 'Eine blinde Kopie aller ausgehenden E-Mails wird an den angemeldeten Nutzer geschickt',
   'Send invoice via email'      => 'Rechnung via E-Mail verschicken',
   'Send letter via e-mail'      => 'Brief via E-Mail verschicken',
@@ -2603,7 +2632,7 @@ $self->{texts} = {
   'Ship via'                    => 'Transportmittel',
   'Shipping Address'            => 'Lieferadresse',
   'Shipping Point'              => 'Versandort',
-  'Shipping address (name)'     => '',
+  'Shipping address (name)'     => 'Name der Lieferadresse',
   'Shipping date'               => 'Lieferdatum',
   'Shipto'                      => 'Lieferanschriften',
   'Shipto deleted.'             => 'Lieferadresse gelöscht',
@@ -2715,7 +2744,7 @@ $self->{texts} = {
   'Starting with version 2.6.3 the configuration files in "config" have been consolidated.' => 'Ab Version 2.6.3 wurden die Konfiguration vereinfacht und es gibt nur noch eine Konfigurationsdatei im Verzeichnis config',
   'Statement'                   => 'Statement',
   'Statement Balance'           => 'Sammelrechnungsbilanz',
-  'Statement sent to'           => '',
+  'Statement sent to'           => 'Gesendet an ',
   'Statements sent to printer!' => 'Sammelrechnungen an Drucker geschickt!',
   'Status'                      => 'Status',
   'Step 1 -- limit number of delivery orders to process' => 'Schritt 1 -- Anzahl zu verarbeitender Lieferscheine begrenzen',
@@ -3150,12 +3179,14 @@ $self->{texts} = {
   'The three columns "make_X", "model_X" and "lastcost_X" with the same number "X" are used to import vendor part numbers and vendor prices.' => 'Die drei Spalten "make_X", "model_X" und "lastcost_X" mit derselben Nummer "X" werden zum Import von Lieferantenartikelnummern und -preisen genutzt.',
   'The title is missing.'       => 'Der Titel fehlt.',
   'The transaction is shown below in its current state.' => 'Nachfolgend wird angezeigt, wie die Buchung momentan aussieht.',
+  'The transfer has been canceled by the user.' => 'Der Vorgang wurde durch den Benutzer abgebrochen.',
   'The type is missing.'        => 'Der Typ fehlt.',
   'The unit has been saved.'    => 'Die Einheit wurde gespeichert.',
   'The unit in row %d has been deleted in the meantime.' => 'Die Einheit in Zeile %d ist in der Zwischentzeit gel&ouml;scht worden.',
   'The unit in row %d has been used in the meantime and cannot be changed anymore.' => 'Die Einheit in Zeile %d wurde in der Zwischenzeit benutzt und kann nicht mehr ge&auml;ndert werden.',
   'The unit is missing.'        => 'Die Einheit fehlt.',
   'The units have been saved.'  => 'Die Einheiten wurden gespeichert.',
+  'The uploaded filename still exists.<br>If you not modify the name this is a new version of the file' => 'Der Dateiname existiert bereits.<br>Wenn Sie den Namen nicht ändern gibt dies eine neue Version der Datei',
   'The user can chose which client to connect to during login.' => 'Bei der Anmeldung kann der Benutzer auswählen, welchen Mandanten er benutzen möchte.',
   'The user cannot be deleted as it is used in the following clients: #1' => 'Die BenutzerIn kann nicht gelöscht werden, da sie für die folgenden Mandanten benötigt wird: #1',
   'The user could not be deleted.' => 'Der Benutzer konnte nicht gelöscht werden.',
@@ -3379,6 +3410,8 @@ $self->{texts} = {
   'Unchecked custom variables will not appear in orders and invoices.' => 'Unmarkierte Variablen werden für diesen Artikel nicht in Aufträgen und Rechnungen angezeigt.',
   'Unfinished follow-ups'       => 'Nicht erledigte Wiedervorlagen',
   'Unfortunately you have no warehouse defined.' => 'Leider, gibt es kein Lager in diesem Mandanten.',
+  'Unimport all'                => 'Alle zurück zur Quelle',
+  'Unimport documents'          => 'Importierte Dokumente zurück zurQuelle',
   'Unit'                        => 'Einheit',
   'Unit (if missing or empty default unit will be used)' => 'Einheit (falls nicht vorhanden oder leer wird die Standardeinheit benutzt)',
   'Unit missing.'               => 'Die Einheit fehlt.',
@@ -3416,6 +3449,9 @@ $self->{texts} = {
   'Updating items with sections' => 'Positionen für Abschnitte aktualisieren',
   'Updating prices of existing entry in database' => 'Preis des Eintrags in der Datenbank wird aktualisiert',
   'Updating the client fields in the database "#1" on host "#2:#3" failed.' => 'Die Aktualisierung der Mandantenfelder in der Datenbank "#1" auf Host "#2:#3" schlug fehl.',
+  'Upload Attachments'          => 'Anhänge hochladen',
+  'Upload Images'               => 'Bilder hochladen',
+  'Upload file'                 => 'Datei hochladen',
   'Uploaded at'                 => 'Hochgeladen um',
   'Uploaded on #1, size #2 kB'  => 'Am #1 hochgeladen, Größe #2 kB',
   'UsageE'                      => 'Lagerentnahme',
@@ -3605,14 +3641,6 @@ $self->{texts} = {
   'Zip, City'                   => 'PLZ, Ort',
   'Zipcode'                     => 'PLZ',
   '[email]'                     => '[email]',
-  'a_credit_note'               => '',
-  'a_purchase_delivery_order'   => '',
-  'a_purchase_invoice'          => '',
-  'a_purchase_order'            => '',
-  'a_request_quotation'         => '',
-  'a_sales_delivery_order'      => '',
-  'a_sales_order'               => '',
-  'a_sales_quotation'           => '',
   'absolute'                    => 'absolut',
   'account_description'         => 'Beschreibung',
   'accrual'                     => 'Soll-Versteuerung',
@@ -3620,7 +3648,6 @@ $self->{texts} = {
   'active'                      => 'aktiv',
   'all'                         => 'Alle',
   'all entries'                 => 'alle Einträge',
-  'an_invoice'                  => '',
   'and'                         => 'und',
   'ap_aging_list'               => 'liste_offene_verbindlichkeiten',
   'ar_aging_list'               => 'liste_offene_forderungen',
@@ -3668,6 +3695,7 @@ $self->{texts} = {
   'debug'                       => 'Debug',
   'delete'                      => 'Löschen',
   'delete item'                 => 'Position löschen',
+  'deleted'                     => 'gelöscht',
   'delivered'                   => 'geliefert',
   'deliverydate'                => 'Lieferdatum',
   'difference as skonto'        => 'Differenz als Skonto',
@@ -3692,6 +3720,10 @@ $self->{texts} = {
   'failed'                      => 'fehlgeschlagen',
   'false'                       => 'falsch',
   'female'                      => 'weiblich',
+  'file \'#1\' has unsupported image type \'#2\' (supported types: #3)' => 'Datei \'#1\' hat nicht unterstütztes Format \'#2\' (unterstützt wird:\'#3\')',
+  'filename'                    => 'Dateiname',
+  'filename has not uploadable characters ' => 'Bitte Dateinamen ändern. Er hat für den Upload nicht verwendbare Sonderzeichen ',
+  'filesize too big: '          => 'Datei zu groß: ',
   'flat-rate position'          => 'Pauschalposition',
   'follow_up_list'              => 'wiedervorlageliste',
   'for'                         => 'f&uuml;r',
@@ -3701,15 +3733,19 @@ $self->{texts} = {
   'for date'                    => 'zum Stichtag',
   'found'                       => 'Gefunden',
   'found_br'                    => 'Gef.',
+  'from \'#1\' imported Files'  => 'Von \'#1\' importierte Dateien',
   'from (time)'                 => 'von',
   'general_ledger_list'         => 'Buchungsjournal',
   'generate cb/ob transactions for selected charts' => 'Buchungen erstellen',
+  'generated Files'             => 'Erzeugte Dokumente',
   'gobd-#1-#2.zip'              => 'gobd-#1-#2.zip',
   'h'                           => 'h',
   'history'                     => 'Historie',
-  'history search engine'       => '',
+  'history search engine'       => 'Historien Suchmaschine',
+  'imported'                    => 'Importiert',
   'inactive'                    => 'inaktiv',
   'income'                      => 'Einnahmen-Überschuß-Rechnung',
+  'internal error (see details)' => 'Interner Fehler (siehe Details)!',
   'invoice'                     => 'Rechnung',
   'invoice mode or item mode'   => 'Rechnungsmodus oder Artikelmodus',
   'invoice_list'                => 'debitorenbuchungsliste',
@@ -3720,7 +3756,7 @@ $self->{texts} = {
   'is greater than or equal'    => 'ist größer oder gleich',
   'is lower than or equal'      => 'ist kleiner oder gleich',
   'kivitendo'                   => 'kivitendo',
-  'kivitendo Homepage'          => '',
+  'kivitendo Homepage'          => 'kivitendo Homepage',
   'kivitendo can fix these problems automatically.' => 'kivitendo kann solche Probleme automatisch beheben.',
   'kivitendo has been extended to handle multiple clients within a single installation.' => 'kivitendo wurde um Mandantenfähigkeit erweitert.',
   'kivitendo has found one or more problems in the general ledger.' => 'kivitendo hat ein oder mehrere Probleme im Hauptbuch gefunden.',
@@ -3728,15 +3764,14 @@ $self->{texts} = {
   'kivitendo is now able to manage warehouses instead of just tracking the amount of goods in your system.' => 'kivitendo enth&auml;lt jetzt auch echte Lagerverwaultung anstatt reiner Mengenz&auml;hlung.',
   'kivitendo modules'           => 'Module',
   'kivitendo needs to update the authentication database before you can proceed.' => 'kivitendo muss die Authentifizierungsdatenbank aktualisieren, bevor Sie fortfahren können.',
-  'kivitendo v#1'               => '',
+  'kivitendo v#1'               => 'kivitendo v#1',
   'kivitendo v#1 administration' => 'kivitendo v#1 Administration',
-  'kivitendo website (external)' => '',
+  'kivitendo website (external)' => 'kivitendo Webseite (extern)',
   'kivitendo will then update the database automatically.' => 'kivitendo wird die Datenbank daraufhin automatisch aktualisieren.',
   'letters_list'                => 'briefliste',
   'list_of_payments'            => 'zahlungsausgaenge',
   'list_of_receipts'            => 'zahlungseingaenge',
   'list_of_transactions'        => 'buchungsliste',
-  'mail_greeting #1'            => '',
   'male'                        => 'männlich',
   'mark as paid'                => 'als bezahlt markieren',
   'max filesize'                => 'maximale Dateigröße',
@@ -3808,7 +3843,7 @@ $self->{texts} = {
   'running'                     => 'läuft',
   'sales tax identification number' => 'USt-IdNr.',
   'sales_delivery_order_list'   => 'lieferscheinliste_verkauf',
-  'sales_delivery_order_printer' => '',
+  'sales_delivery_order_printer' => 'sales_delivery_order_printer',
   'sales_invoice_printer'       => 'Rechnungsdrucker',
   'sales_order'                 => 'Kundenauftrag',
   'sales_order_list'            => 'auftragsliste',
@@ -3828,6 +3863,7 @@ $self->{texts} = {
   'shipped_br'                  => 'Verschk.',
   'singular first char'         => 'S',
   'sort items'                  => 'Positionen sortieren',
+  'start upload'                => 'Hochladen beginnt',
   'stock'                       => 'Einlagerung',
   'stock_br'                    => 'Eingel.',
   'submit'                      => 'abschicken',
@@ -3856,6 +3892,8 @@ $self->{texts} = {
   'true'                        => 'wahr',
   'uncleared'                   => 'Nicht abgeglichen',
   'unconfigured'                => 'unkonfiguriert',
+  'unimport'                    => 'Import rückgängig machen',
+  'unimported'                  => 'Import rückgängig gemacht',
   'unnamed record template'     => 'unbenannte Belegvorlage',
   'until'                       => 'bis',
   'uploaded'                    => 'Hochgeladen',
diff --git a/sql/Pg-upgrade2-auth/other_file_sources2.sql b/sql/Pg-upgrade2-auth/other_file_sources2.sql
new file mode 100644
index 000000000..dedf0be8b
--- /dev/null
+++ b/sql/Pg-upgrade2-auth/other_file_sources2.sql
@@ -0,0 +1,4 @@
+-- @tag: other_file_sources2
+-- @description: Neue Gruppenrechte für das Importieren von Scannern oder email auf freie Position
+-- @depends: release_3_4_0 other_file_sources
+update auth.master_rights set position='2680' where name='import_ap';
