diff --git a/jadx-gui/src/main/resources/i18n/Messages_de_DE.properties b/jadx-gui/src/main/resources/i18n/Messages_de_DE.properties
new file mode 100644
index 000000000..8ea2511d5
--- /dev/null
+++ b/jadx-gui/src/main/resources/i18n/Messages_de_DE.properties
@@ -0,0 +1,180 @@
+language.name=Deutsch
+
+menu.file=Datei
+menu.view=Anzeigen
+menu.recent_projects=Aktuelle Projekte
+menu.no_recent_projects=Keine aktuellen Projekte
+menu.preferences=Präferenzen
+menu.sync=Mit Editor synchronisieren
+menu.flatten=Show flatten packages
+menu.heapUsageBar=Speicherverbrauchsleiste anzeigen
+menu.navigation=Navigation
+menu.text_search=Textsuche
+menu.class_search=klassen-Suche
+menu.tools=Tools
+menu.deobfuscation=Deobfuscation
+menu.log=Log-Anzeige
+menu.help=Hilfe
+menu.about=Über
+menu.update_label=Neue Version %s verfügbar!
+
+file.open_action=Datei öffnen…
+file.open_title=Datei öffnen
+file.new_project=Neues Projekt
+file.save_project=Projekt speichern
+file.save_project_as=Projekt speichern als…
+file.save_all=Alles speichern
+file.export_gradle=Als Gradle-Projekt speichern
+file.save_all_msg=Verzeichnis für das Speichern dekompilierter Quellen auswählen
+file.exit=Beenden
+
+tree.sources_title=Quellcode
+tree.resources_title=Ressourcen
+tree.loading=Laden…
+
+error_dialog.title=Fehler
+
+search.previous=Zurück
+search.next=Weiter
+search.mark_all=Alles markieren
+search.regex=Regex
+search.match_case=Match Case
+search.whole_word=Ganzes Wort
+search.find=Suchen
+
+tabs.copy_class_name=Kopiename
+tabs.close=Schließen
+tabs.closeOthers=Andere schließen
+tabs.closeAll=Alles schließen
+tabs.code=Code
+tabs.smali=Smali
+
+nav.back=Zurück
+nav.forward=Vorwärts
+
+message.indexingClassesSkipped=Jadx hat nur noch wenig Speicherplatz. Daher wurden %d Klassen nicht indiziert.
Wenn Sie möchten, dass alle Klassen indiziert werden, Jadx mit erhöhter maximaler Heap-Größe neustarten.
+
+heapUsage.text=JADX-Speicherauslastung: %.2f GB von %.2f GB
+
+search_dialog.open=Öffnen
+search_dialog.cancel=Beenden
+search_dialog.open_by_name=Nach Text suchen:
+search_dialog.search_in=Suchdefinitionen für:
+search_dialog.class=Class
+search_dialog.method=Methode
+search_dialog.field=Feld
+search_dialog.code=Code
+search_dialog.options=Suchoptionen:
+search_dialog.ignorecase=Case insensitive
+search_dialog.next_page=Nächste Seite anzeigen
+search_dialog.prev_page=Vorherige Seite anzeigen
+search_dialog.info_label=Zeige Ergebnisse %1$d bis %2$d von %3$d
+search_dialog.col_node=Knoten
+search_dialog.col_code=Code
+
+usage_dialog.title=Verwendungssuche
+usage_dialog.label=Verwendung für:
+
+log_viewer.title=Log-Anzeige
+log_viewer.log_level=Log-Level:
+
+about_dialog.title=Über JADX
+
+preferences.title=Einstellungen
+preferences.deobfuscation=Deobfuscation
+preferences.editor=Editor
+preferences.decompile=Dekompilierung
+preferences.project=Projekt
+preferences.other=Andere
+preferences.language=Sprachen
+preferences.check_for_updates=Nach Updates beim Start suchen
+preferences.fallback=Fallback-Modus (einfacher Speicherauszug)
+preferences.showInconsistentCode=Inkonsistenten Code anzeigen
+preferences.escapeUnicode=Escape Unicode
+preferences.replaceConsts=Konstanten ersetzen
+preferences.respectBytecodeAccessModifiers=Bytecode-Zugriffsmodifikatoren respektieren
+preferences.useImports=Importauszüge verwenden
+preferences.inlineAnonymous=Anonyme Inline-Klassen
+preferences.fsCaseSensitive=Dateisystem ist case-sensitiv
+preferences.skipResourcesDecode=Keine Ressourcen dekodieren
+preferences.autoSave=Autom. speichern
+preferences.threads=Verarbeitungs-Thread-Anzahl
+preferences.excludedPackages=Ausgeschlossene Pakete
+preferences.excludedPackages.tooltip=Liste der durch Leerzeichen getrennten Paketnamen, die nicht dekompiliert oder indiziert werden (spart RAM)
+preferences.excludedPackages.button=Bearbeiten
+preferences.excludedPackages.editDialog=Liste der durch Leerzeichen getrennten Paketnamen, die nicht dekompiliert oder indiziert werden. (spart RAM)
z.B. android.support
+preferences.cfg=Methoden generieren CFG-Grafiken (im 'Punkt'-Format)
+preferences.raw_cfg=RAW CFG-Grafiken generieren
+preferences.font=Schrift ändern
+preferences.theme=Thema ändern
+preferences.start_jobs=Autom. Hintergrunddekompilierung starten
+preferences.select_font=Ändern
+preferences.deobfuscation_on=Deobfuscation aktivieren
+preferences.deobfuscation_force=Deobfuscationskartendatei umschreiben erzwingen
+preferences.deobfuscation_min_len=Minimale Namenlänge
+preferences.deobfuscation_max_len=Maximale Namenlänge
+preferences.deobfuscation_source_alias=Quelldateiname als Klaasennamen-Alias verwenden
+preferences.save=Speichern
+preferences.cancel=Abbrechen
+preferences.reset=Zurücksetzen
+preferences.reset_message=Einstellungen auf Standardwerte zurücksetzen?
+preferences.reset_title=Einstellungen zurücksetzen
+preferences.rename=Umbenennen
+preferences.rename_case=System case sensitivity
+preferences.rename_valid=To be valid identifier
+preferences.rename_printable=To be printable
+
+msg.open_file=Bitte Datei öffnen
+msg.saving_sources=Quellen speichern…
+msg.language_changed_title=Sprache speichern
+msg.language_changed=Neue Sprache wird beim nächsten Start der Anwendung angezeigt.
+msg.index_not_initialized=Index nicht initialisiert, Suche wird deaktiviert!
+msg.project_error_title=Fehler
+msg.project_error=Projekt konnte nicht geladen werden
+msg.rename_disabled_title=Umbenennen deaktiviert
+msg.rename_disabled=Einige der Umbenennungseinstellungen sind deaktiviert, bitte beachten Sie dies.
+msg.cmd_select_class_error=Es ist nicht gelungen, die Klasse\n%s auszuwählen\nDie Klasse existiert nicht.
+
+popup.undo=Rückgängig
+popup.redo=Wiederholen
+popup.cut=Ausschneiden
+popup.copy=Kopieren
+popup.paste=Einfügen
+popup.delete=Löschen
+popup.select_all=Alle auswählen
+popup.find_usage=Verwendung suchen
+popup.go_to_declaration=Zur Erklärung gehen
+popup.exclude=Ausschließen
+popup.rename=Umbennen
+
+confirm.save_as_title=Speichern unter bestätigen
+confirm.save_as_message=%s existiert bereits.\nWollen Sie es ersetzen?
+confirm.not_saved_title=Projekt speichern
+confirm.not_saved_message=Das aktuelle Projekt speichern, bevor Sie fortfahren?
+
+certificate.cert_type=Type
+certificate.serialSigVer=Version
+certificate.serialNumber=Seriennummer
+certificate.cert_subject=Subjekt
+certificate.serialValidFrom=Gültig ab
+certificate.serialValidUntil=Gültig bis
+certificate.serialPubKeyType=Öffentlicher Schlüsseltyp
+certificate.serialPubKeyExponent=Exponent
+certificate.serialPubKeyModulus=Modul
+certificate.serialPubKeyModulusSize=Modulgröße (Bits)
+certificate.serialSigType=Signaturtype
+certificate.serialSigOID=Signatur OID
+certificate.serialMD5=MD5 Fingerabdruck
+certificate.serialSHA1=SHA-1 Fingerabdruck
+certificate.serialSHA256=SHA-256 Fingerabdruck
+certificate.serialPubKeyY=Y
+
+apkSignature.signer=Signieren
+apkSignature.verificationSuccess=Signaturprüfung erfolgreich abgeschlossen
+apkSignature.verificationFailed=Signaturprüfung fehlgeschlagen
+apkSignature.signatureSuccess=Gültige APK-Signatur v%d gefunden
+apkSignature.signatureFailed=Ungültige APK-Signatur v%d gefunden
+apkSignature.errors=Fehler
+apkSignature.warnings=Warnhinweise
+apkSignature.exception=APK-Verifizierung fehlgeschlagen
+apkSignature.unprotectedEntry=Dateien, die nicht durch eine Signatur geschützt sind. Unbefugte Änderungen an diesem JAR-Eintrag werden nicht erkannt.