diff --git a/resources/lang/de/auth.php b/resources/lang/de/auth.php
new file mode 100644
index 000000000..dd7eb0ae6
--- /dev/null
+++ b/resources/lang/de/auth.php
@@ -0,0 +1,25 @@
+ 'Falsches Passwort!', /* "Incorrect Password!" */
+ 'throttle' => 'Zu viele Login-Versuche! Versuchen Sie, in :seconds Sekunde.', /* "Too many login attempts! Try in (number) Seconds" */
+ 'errorencountered' => 'Ein Fehler ist aufgetreten!', /* An error occurred! */
+ 'resetpassword' => 'Passwort zurücksetzen.', /* Reset Password */
+ 'confirmpassword' => 'Bestätige das Passwort.', /* Confirm your password */
+ 'sendlink' => 'Senden Sie Passwort-Reset Link.', /* Send password reset link */
+ 'emailsent' => 'E-Mail gesendet.', /* Email Sent */
+ 'remeberme' => 'Login merken.', /* Remember my Login*/
+];
+
+/*
+German Translation by Jboy
+*/
diff --git a/resources/lang/de/base.php b/resources/lang/de/base.php
new file mode 100644
index 000000000..3bddaf6f2
--- /dev/null
+++ b/resources/lang/de/base.php
@@ -0,0 +1,39 @@
+ 'Falsches Passwort!',
+ 'throttle' => 'Zu viele Login-Versuche! Versuchen Sie, in :seconds Sekunde.',
+ 'view_as_admin' => 'Ihr sind ein admin. So können Sie alle Server zu sehen.',
+ 'server_name' => 'Der Server-Name',
+ 'no_servers' => 'Keine Server gefunden.',
+ 'form_error' => 'Diese Fehler traten auf:',
+ 'password_req' => 'Passwörter müssen die folgenden Anforderungen erfüllen: mindestens einen Großbuchstaben, einen Kleinbuchstaben, eine Ziffer und mindestens 8 Zeichen lang sein.',
+ 'account' => [
+ 'totp_header' => 'Zwei-Faktor- Authentifizierung',
+ 'totp_qr' => 'TOTP QR Code', /* TODO */
+ 'totp_enable_help' => 'It appears that you do not have Two-Factor authentication enabled. This method of authentication adds an additional barrier preventing unauthorized entry to your account. If you enable it you will be required to input a code generated on your phone or other TOTP supporting device before finishing your login.', /* TODO */
+ 'totp_apps' => 'You must have a TOTP supporting application (e.g Google Authenticator, DUO Mobile, Authy) to use this option.', /* TODO */
+ 'totp_enable' => 'Aktivieren der Zwei-Faktor-Authentifizierung',
+ 'totp_disable' => 'Deaktivieren Zwei-Faktor-Authentisierung',
+ 'totp_token' => 'TOTP Zeichen',
+ 'totp_disable_help' => 'In order to disable TOTP on this account you will need to provide a valid TOTP token. Once validated TOTP protection on this account will be disabled.', /* TODO */
+ 'totp_checkpoint_help' => 'Please verify your TOTP settings by scanning the QR Code to the right with your phone\'s authenticator application, and then enter the 6 number code generated by the application in the box below. Press the enter key when finished.', /* TODO */
+ 'totp_enabled' => 'Your account has been enabled with TOTP verification. Please click the close button on this box to finish.', /* TODO */
+ 'totp_enabled_error' => 'The TOTP token provided was unable to be verified. Please try again.', /* TODO */
+ 'update_email' => 'Update per E-Mail',
+ 'new_email' => 'Neue e-mail',
+ 'new_password' => 'Neues Kennwort',
+ 'update_pass' => 'Passwort aktualisieren'
+ ]
+];
+/*
+German Translation by Jboy
+*/
diff --git a/resources/lang/de/pagination.php b/resources/lang/de/pagination.php
new file mode 100644
index 000000000..211a21312
--- /dev/null
+++ b/resources/lang/de/pagination.php
@@ -0,0 +1,29 @@
+ '« Zurück',
+ 'next' => 'Nächster »',
+ 'sidebar' => [
+ 'account_controls' => 'Konto Kontrollen',
+ 'account_settings' => 'Konto Einstellungen',
+ 'account_security' => 'Konto Sicherheit',
+ 'server_controls' => 'Server Kontrollen',
+ 'servers' => 'Ihr Server',
+ 'overview' => 'Server-Übersicht',
+ 'files' => 'Dateimanager',
+ 'subusers' => 'Verwalten Sub-Benutzer',
+ 'manage' => 'Verwalten Server',
+ ],
+];
+/*
+German Translation by Jboy
+*/
diff --git a/resources/lang/de/passwords.php b/resources/lang/de/passwords.php
new file mode 100644
index 000000000..43f00d17c
--- /dev/null
+++ b/resources/lang/de/passwords.php
@@ -0,0 +1,21 @@
+ 'Passwörter müssen mindestens sechs Zeichen lang sein und passen Sie die Bestätigung.',
+ 'reset' => 'Dein Passwort wurde zurückgesetzt!',
+ 'sent' => 'Ihr Passwort zurückzusetzen Link wurde Ihnen zugeschickt',
+ 'token' => 'Es tut uns leid! Dieser Password-Reset-Token ist ungültig.',
+ 'user' => "Keine Benutzer mit dieser E-Mail Adresse gefunden!",
+];
+/*
+German Translation by Jboy
+*/
diff --git a/resources/lang/de/server.php b/resources/lang/de/server.php
new file mode 100644
index 000000000..3e1e99f2e
--- /dev/null
+++ b/resources/lang/de/server.php
@@ -0,0 +1,34 @@
+ [
+ 'socket_error' => 'Wir waren nicht in der Lage, um zum Haupt Socket.IO Server verbinden
Wenn dies Ihr erstes Mal sehen diese Meldung kann es sein, dass Sie brauchen, um diesen Server\'s SSL-Zertifikat zu akzeptieren. Bitte klicken Sie auf diese Meldung und das Zertifikat zu akzeptieren.',
+ 'socket_status' => 'Dieser Server\'s Power-Status hat sich geändert',
+ 'socket_status_crashed' => 'Der Server ist abgestürzt.',
+ ],
+ 'index' => [
+ 'memory_use' => 'RAM Verwendung',
+ 'cpu_use' => 'CPU Verwendung',
+ 'xaxis' => 'Zeit (2s Schritten)',
+ 'server_info' => 'Server Informationen',
+ 'connection' => 'Standardverbindung',
+ 'mem_limit' => 'RAM-Grenze',
+ 'disk_space' => 'Festplattenspeicher',
+ 'control' => 'Steuern Server',
+ 'info_use' => 'Informationen & Verwendung',
+ 'command' => 'Geben Sie Console Command',
+ ],
+ 'files' => [
+ 'loading' => 'Laden...',
+ 'yaml_notice' => 'You are currently editing a YAML file. These files do not accept tabs, they must use spaces. We\'ve gone ahead and made it so that hitting tab will insert :dropdown spaces.', /* TODO */
+ 'back' => 'Zurück zu Dateimanager',
+ 'saved' => 'Datei gespeichert',
+ ],
+];
+/*
+German Translation by Jboy
+*/
diff --git a/resources/lang/de/strings.php b/resources/lang/de/strings.php
new file mode 100644
index 000000000..2aa78a56c
--- /dev/null
+++ b/resources/lang/de/strings.php
@@ -0,0 +1,30 @@
+ 'Anmeldung',
+ 'password' => 'Passwort',
+ 'email' => 'Email',
+ 'whoops' => ' Hoppla',
+ 'success' => 'Erfolg',
+ 'location' => 'Ort',
+ 'node' => 'Node',
+ 'connection' => 'Verbindung',
+ 'language' => 'Sprache',
+ 'close' => 'Schließen',
+ 'start' => 'Anfang',
+ 'stop' => 'Stopp',
+ 'restart' => 'Wiederbeginn',
+ 'save' => 'Sparen',
+ 'enabled' => 'Aktiviert',
+ 'disabled' => 'Behindert',
+ 'submit' => 'Einreichen',
+ 'current_password' => 'Aktuelles Passwort',
+ 'again' => 'Wieder',
+];
+/*
+German Translation by Jboy
+*/
diff --git a/resources/lang/de/validation.php b/resources/lang/de/validation.php
new file mode 100644
index 000000000..b73d0da83
--- /dev/null
+++ b/resources/lang/de/validation.php
@@ -0,0 +1,101 @@
+ 'The :attribute must be accepted.',
+ 'active_url' => 'The :attribute is not a valid URL.',
+ 'after' => 'The :attribute must be a date after :date.',
+ 'alpha' => 'The :attribute may only contain letters.',
+ 'alpha_dash' => 'The :attribute may only contain letters, numbers, and dashes.',
+ 'alpha_num' => 'The :attribute may only contain letters and numbers.',
+ 'array' => 'The :attribute must be an array.',
+ 'before' => 'The :attribute must be a date before :date.',
+ 'between' => [
+ 'numeric' => 'The :attribute must be between :min and :max.',
+ 'file' => 'The :attribute must be between :min and :max kilobytes.',
+ 'string' => 'The :attribute must be between :min and :max characters.',
+ 'array' => 'The :attribute must have between :min and :max items.',
+ ],
+ 'boolean' => 'The :attribute field must be true or false.',
+ 'confirmed' => 'The :attribute confirmation does not match.',
+ 'date' => 'The :attribute is not a valid date.',
+ 'date_format' => 'The :attribute does not match the format :format.',
+ 'different' => 'The :attribute and :other must be different.',
+ 'digits' => 'The :attribute must be :digits digits.',
+ 'digits_between' => 'The :attribute must be between :min and :max digits.',
+ 'email' => 'The :attribute must be a valid email address.',
+ 'exists' => 'The selected :attribute is invalid.',
+ 'filled' => 'The :attribute field is required.',
+ 'image' => 'The :attribute must be an image.',
+ 'in' => 'The selected :attribute is invalid.',
+ 'integer' => 'The :attribute must be an integer.',
+ 'ip' => 'The :attribute must be a valid IP address.',
+ 'json' => 'The :attribute must be a valid JSON string.',
+ 'max' => [
+ 'numeric' => 'The :attribute may not be greater than :max.',
+ 'file' => 'The :attribute may not be greater than :max kilobytes.',
+ 'string' => 'The :attribute may not be greater than :max characters.',
+ 'array' => 'The :attribute may not have more than :max items.',
+ ],
+ 'mimes' => 'The :attribute must be a file of type: :values.',
+ 'min' => [
+ 'numeric' => 'The :attribute must be at least :min.',
+ 'file' => 'The :attribute must be at least :min kilobytes.',
+ 'string' => 'The :attribute must be at least :min characters.',
+ 'array' => 'The :attribute must have at least :min items.',
+ ],
+ 'not_in' => 'The selected :attribute is invalid.',
+ 'numeric' => 'The :attribute must be a number.',
+ 'regex' => 'The :attribute format is invalid.',
+ 'required' => 'The :attribute field is required.',
+ 'required_if' => 'The :attribute field is required when :other is :value.',
+ 'required_with' => 'The :attribute field is required when :values is present.',
+ 'required_with_all' => 'The :attribute field is required when :values is present.',
+ 'required_without' => 'The :attribute field is required when :values is not present.',
+ 'required_without_all' => 'The :attribute field is required when none of :values are present.',
+ 'same' => 'The :attribute and :other must match.',
+ 'size' => [
+ 'numeric' => 'The :attribute must be :size.',
+ 'file' => 'The :attribute must be :size kilobytes.',
+ 'string' => 'The :attribute must be :size characters.',
+ 'array' => 'The :attribute must contain :size items.',
+ ],
+ 'string' => 'The :attribute must be a string.',
+ 'timezone' => 'The :attribute must be a valid zone.',
+ 'unique' => 'The :attribute has already been taken.',
+ 'url' => 'The :attribute format is invalid.',
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Language Lines
+ |--------------------------------------------------------------------------
+ |
+ | Here you may specify custom validation messages for attributes using the
+ | convention "attribute.rule" to name the lines. This makes it quick to
+ | specify a specific custom language line for a given attribute rule.
+ |
+ */
+ 'custom' => [
+ 'attribute-name' => [
+ 'rule-name' => 'custom-message',
+ ],
+ ],
+ /*
+ |--------------------------------------------------------------------------
+ | Custom Validation Attributes
+ |--------------------------------------------------------------------------
+ |
+ | The following language lines are used to swap attribute place-holders
+ | with something more reader friendly such as E-Mail Address instead
+ | of "email". This simply helps us make messages a little cleaner.
+ |
+ */
+ 'attributes' => [],
+];