diff --git a/static/webui/translations/de.js b/static/webui/translations/de.js
index ded0a212..fc563086 100644
--- a/static/webui/translations/de.js
+++ b/static/webui/translations/de.js
@@ -1,17 +1,17 @@
 // German translation by Animan8000
 dict = {
-    general_inventoryUpdateNote: `Hinweis: Um Änderungen im Spiel zu sehen, musst du dein Inventar neu synchronisieren, z. B. mit dem /sync Befehl des Bootstrappers, durch Besuch eines Dojo/Relais oder durch erneutes Einloggen.`,
-    general_inventoryUpdateNoteGameWs: `[UNTRANSLATED] Note: You may need to reopen any menu you are on for changes to be reflected.`,
+    general_inventoryUpdateNote: `Hinweis: Um Änderungen im Spiel zu sehen, musst du dein Inventar neu synchronisieren, z. B. mit dem /sync Befehl des Bootstrappers im Spielchat, durch Besuch eines Dojo/Relais oder durch erneutes Einloggen.`,
+    general_inventoryUpdateNoteGameWs: `Hinweis: Möglicherweise musst du ein Menü neu öffnen, damit die Änderungen sichtbar werden.`,
     general_addButton: `Hinzufügen`,
     general_setButton: `Festlegen`,
-    general_none: `Keines`,
+    general_none: `Nichts`,
     general_bulkActions: `Massenaktionen`,
     general_loading: `Lädt...`,
 
     code_loginFail: `Anmeldung fehlgeschlagen. Bitte überprüfe deine Angaben.`,
     code_regFail: `Registrierung fehlgeschlagen. Account existiert bereits?`,
     code_changeNameConfirm: `In welchen Namen möchtest du deinen Account umbenennen?`,
-    code_changeNameRetry: `[UNTRANSLATED] |NAME| is already taken.`,
+    code_changeNameRetry: `|NAME| ist bereits vergeben.`,
     code_deleteAccountConfirm: `Bist du sicher, dass du deinen Account |DISPLAYNAME| (|EMAIL|) löschen möchtest? Diese Aktion kann nicht rückgängig gemacht werden.`,
     code_archgun: `Arch-Gewehr`,
     code_melee: `Nahkampf`,
@@ -32,8 +32,8 @@ dict = {
     code_renamePrompt: `Neuen benutzerdefinierten Namen eingeben:`,
     code_remove: `Entfernen`,
     code_addItemsConfirm: `Bist du sicher, dass du |COUNT| Gegenstände zu deinem Account hinzufügen möchtest?`,
-    code_addTechProjectsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| research to your clan?`,
-    code_addVaultItemsConfirm: `[UNTRANSLATED] Are you sure you want to add |COUNT| items to your clan vault?`,
+    code_addTechProjectsConfirm: `Bist du sicher, dass du |COUNT| Forschungen zu deinem Clan hinzufügen möchtest?`,
+    code_addVaultItemsConfirm: `Bist du sicher, dass du |COUNT| Gegenstände zu deinem Clan-Tresor hinzufügen möchtest?`,
     code_succRankUp: `Erfolgreich aufgestiegen.`,
     code_noEquipmentToRankUp: `Keine Ausstattung zum Rangaufstieg verfügbar.`,
     code_succAdded: `Erfolgreich hinzugefügt.`,
@@ -45,7 +45,7 @@ dict = {
     code_rank: `Rang`,
     code_rankUp: `Rang erhöhen`,
     code_rankDown: `Rang verringern`,
-    code_unlockLevelCap: `[UNTRANSLATED] Unlock level cap`,
+    code_unlockLevelCap: `Level-Cap freischalten`,
     code_count: `Anzahl`,
     code_focusAllUnlocked: `Alle Fokus-Schulen sind bereits freigeschaltet.`,
     code_focusUnlocked: `|COUNT| neue Fokus-Schulen freigeschaltet! Ein Inventar-Update wird benötigt, damit die Änderungen im Spiel sichtbar werden.`,
@@ -65,22 +65,22 @@ dict = {
     code_completed: `Abgeschlossen`,
     code_active: `Aktiv`,
     code_pigment: `Pigment`,
-    code_controller: `[UNTRANSLATED] Controller cursor`,
-    code_mouseLine: `[UNTRANSLATED] Line cursor`,
-    code_mouse: `[UNTRANSLATED] Cursor`,
+    code_controller: `Controller-Cursor`,
+    code_mouseLine: `Linien-Cursor`,
+    code_mouse: `Cursor`,
     code_itemColorPalette: `|ITEM| Farbpalette`,
     code_mature: `Für den Kampf auswachsen lassen`,
     code_unmature: `Genetisches Altern zurücksetzen`,
-    code_fund: `[UNTRANSLATED] Fund`,
-    code_funded: `[UNTRANSLATED] Funded`,
-    code_replays: `[UNTRANSLATED] Replays`,
+    code_fund: `Spenden`,
+    code_funded: `Gespendet`,
+    code_replays: `Wiederholungen`,
     code_stalker: `Stalker`,
     code_cutName: `Frisur: |INDEX|`,
     code_drifterBeardName: `Drifter-Bart: |INDEX|`,
     code_drifterFaceName: `Drifter-Gesicht: |INDEX|`,
     code_operatorFaceName: `Operator-Gesicht: |INDEX|`,
     code_succChange: `Erfolgreich geändert.`,
-    code_requiredInvigorationUpgrade: `[UNTRANSLATED] You must select both an offensive & utility upgrade.`,
+    code_requiredInvigorationUpgrade: `Du musst sowohl ein Offensiv- als auch ein Support-Upgrade auswählen.`,
     login_description: `Melde dich mit deinem OpenWF-Account an (denselben Angaben wie im Spiel, wenn du dich mit diesem Server verbindest).`,
     login_emailLabel: `E-Mail-Adresse`,
     login_passwordLabel: `Passwort`,
@@ -96,8 +96,8 @@ dict = {
     navbar_cheats: `Cheats`,
     navbar_import: `Importieren`,
     inventory_addItems: `Gegenstände hinzufügen`,
-    inventory_addItemByItemType: `[UNTRANSLATED] Raw`,
-    inventory_addItemByItemType_warning: `[UNTRANSLATED] Use this feature at your own risk. It may break your inventory, and you will need to remove items manually if something goes wrong.`,
+    inventory_addItemByItemType: `Roh`,
+    inventory_addItemByItemType_warning: `Verwende diese Funktion auf eigene Gefahr. Sie kann dein Inventar beschädigen und du musst Gegenstände manuell entfernen, falls etwas schiefgeht.`,
     inventory_suits: `Warframes`,
     inventory_longGuns: `Primärwaffen`,
     inventory_pistols: `Sekundärwaffen`,
@@ -123,10 +123,10 @@ dict = {
     inventory_bulkAddSpaceWeapons: `Fehlende Archwing-Waffen hinzufügen`,
     inventory_bulkAddSentinels: `Fehlende Wächter hinzufügen`,
     inventory_bulkAddSentinelWeapons: `Fehlende Wächter-Waffen hinzufügen`,
-    inventory_bulkAddFlavourItems: `[UNTRANSLATED] Add Missing Flavour Items`,
-    inventory_bulkAddShipDecorations: `[UNTRANSLATED] Add Missing Ship Decorations`,
+    inventory_bulkAddFlavourItems: `Fehlende Sammlerstücke hinzufügen`,
+    inventory_bulkAddShipDecorations: `Fehlende Schiffsdekorationen hinzufügen`,
     inventory_bulkAddEvolutionProgress: `Fehlende Incarnon-Entwicklungsfortschritte hinzufügen`,
-    inventory_bulkAddWeaponSkins: `[UNTRANSLATED] Add Missing Skins`,
+    inventory_bulkAddWeaponSkins: `Fehlende Skins hinzufügen`,
     inventory_bulkRankUpSuits: `Alle Warframes auf Max. Rang`,
     inventory_bulkRankUpWeapons: `Alle Waffen auf Max. Rang`,
     inventory_bulkRankUpSpaceSuits: `Alle Archwings auf Max. Rang`,
@@ -179,8 +179,8 @@ dict = {
     invigorations_utility_EnergyRegen: `+2 Energieregeneration pro Sekunde`,
 
     detailedView_invigorationOffensiveLabel: `Offensives Upgrade`,
-    detailedView_invigorationUtilityLabel: `[UNTRANSLATED] Utility Upgrade`,
-    detailedView_invigorationExpiryLabel: `[UNTRANSLATED] Invigoration Expiry (optional)`,
+    detailedView_invigorationUtilityLabel: `Support Upgrade`,
+    detailedView_invigorationExpiryLabel: `Kräftigungs-Ablaufdatum (optional)`,
 
     abilityOverride_label: `Fähigkeitsüberschreibung`,
     abilityOverride_onSlot: `auf Slot`,
@@ -199,7 +199,7 @@ dict = {
     cheats_skipTutorial: `Tutorial überspringen`,
     cheats_skipAllDialogue: `Alle Dialoge überspringen`,
     cheats_unlockAllScans: `Alle Scans freischalten`,
-    cheats_unlockSuccRelog: `[UNTRANSLATED] Success. Please note that you'll need to relog for the client to refresh this.`,
+    cheats_unlockSuccRelog: `Erfolgreich. Bitte beachte, dass du dich neu einloggen musst, damit der Client dies aktualisiert.`,
     cheats_unlockAllMissions: `Alle Missionen freischalten`,
     cheats_unlockAllMissions_ok: `Erfolgreich. Bitte beachte, dass du ein Dojo/Relais besuchen oder dich neu einloggen musst, damit die Sternenkarte aktualisiert wird.`,
     cheats_infiniteCredits: `Unendlich Credits`,
@@ -233,7 +233,7 @@ dict = {
     cheats_baroFullyStocked: `Baro hat volles Inventar`,
     cheats_syndicateMissionsRepeatable: `Syndikat-Missionen wiederholbar`,
     cheats_unlockAllProfitTakerStages: `Alle Profiteintreiber-Phasen freischalten`,
-    cheats_unlockSuccInventory: `[UNTRANSLATED] Success. Please note that you'll need to resync your inventory, e.g. using the bootstrapper's /sync command in game chat, visiting a dojo/relay, or relogging.`,
+    cheats_unlockSuccInventory: `Erfolgreich. Bitte beachte, dass du dein Inventar neu synchronisieren musst, z. B. mit dem /sync Befehl des Bootstrappers im Spielchat, durch Besuch eines Dojo/Relais oder durch erneutes Einloggen.`,
     cheats_instantFinishRivenChallenge: `Riven-Mod Herausforderung sofort abschließen`,
     cheats_instantResourceExtractorDrones: `Sofortige Ressourcen-Extraktor-Drohnen`,
     cheats_noResourceExtractorDronesDamage: `Kein Schaden für Ressourcen-Extraktor-Drohnen`,
@@ -262,49 +262,49 @@ dict = {
     cheats_changeSupportedSyndicate: `Unterstütztes Syndikat`,
     cheats_changeButton: `Ändern`,
     cheats_markAllAsRead: `Posteingang als gelesen markieren`,
-    cheats_finishInvasionsInOneMission: `[UNTRANSLATED] Finish Invasions in One Mission`,
-    cheats_nemesisHenchmenKillsMultiplierGrineer: `[UNTRANSLATED] Rage Progess Multiplier (Grineer)`,
-    cheats_nemesisHenchmenKillsMultiplierCorpus: `[UNTRANSLATED] Rage Progess Multiplier (Corpus)`,
-    cheats_nemesisAntivirusGainMultiplier: `[UNTRANSLATED] Antivirus Progress Multiplier`,
-    cheats_nemesisHintProgressMultiplierGrineer: `[UNTRANSLATED] Hint Progress Multiplier (Grineer)`,
-    cheats_nemesisHintProgressMultiplierCorpus: `[UNTRANSLATED] Hint Progress Multiplier (Corpus)`,
-    cheats_nemesisExtraWeapon: `[UNTRANSLATED] Extra Nemesis Weapon / Token On Vanquish (0 to disable)`,
+    cheats_finishInvasionsInOneMission: `Invasionen in einer Mission abschließen`,
+    cheats_nemesisHenchmenKillsMultiplierGrineer: `Wut-Fortschrittsmultiplikator (Grineer)`,
+    cheats_nemesisHenchmenKillsMultiplierCorpus: `Wut-Fortschrittsmultiplikator (Corpus)`,
+    cheats_nemesisAntivirusGainMultiplier: `Antivirus-Fortschrittsmultiplikator`,
+    cheats_nemesisHintProgressMultiplierGrineer: `Hinweis-Fortschrittsmultiplikator (Grineer)`,
+    cheats_nemesisHintProgressMultiplierCorpus: `Hinweis-Fortschrittsmultiplikator (Corpus)`,
+    cheats_nemesisExtraWeapon: `Zusätzliche Nemesis-Waffe/-Symbol bei Besiegung (0 zum deaktivieren)`,
 
     worldState: `Weltstatus`,
     worldState_creditBoost: `Event Booster: Credit`,
     worldState_affinityBoost: `Event Booster: Erfahrung`,
     worldState_resourceBoost: `Event Booster: Ressourcen`,
     worldState_tennoLiveRelay: `TennoLive Relais`,
-    worldState_baroTennoConRelay: `Baros TennoCon Relais`,
+    worldState_baroTennoConRelay: `Baros TennoCon-Relais`,
     worldState_starDays: `Sternen-Tage`,
     worldState_galleonOfGhouls: `Galeone der Ghule`,
-    worldState_anniversary: `[UNTRANSLATED] Warframe Anniversary`,
-    worldState_useAnniversaryTagForOldGoals: `[UNTRANSLATED] Use Tag from Warframe Anniversary for old Events`,
+    worldState_anniversary: `Warframe Jubiläum`,
+    worldState_useAnniversaryTagForOldGoals: `Verwende Tag vom Warframe Jubiläum für alte Events`,
     worldState_ghoulEmergence: `Ghul Ausrottung`,
     worldState_plagueStar: `Plagenstern`,
     worldState_dogDays: `Hitzefrei`,
-    worldState_dogDaysRewards: `[UNTRANSLATED] Dog Days Rewards`,
+    worldState_dogDaysRewards: `Hitzefrei-Belohnungen`,
     worldState_wolfHunt: `Wolfsjagd`,
     worldState_voidCorruption: `Void-Korruption (|VAL|)`,
     worldState_orphixVenom: `Orphix Gift`,
     worldState_longShadow: `Lange Schatten`,
     worldState_hallowedFlame: `Geweihte Flamme`,
     worldState_hallowedNightmares: `Geweihte Albträume`,
-    worldState_hallowedNightmaresRewards: `[UNTRANSLATED] Hallowed Nightmares Rewards`,
-    worldState_naberusNights: `[UNTRANSLATED] Nights of Naberus`,
+    worldState_hallowedNightmaresRewards: `Geweihte Albträume-Belohnungen`,
+    worldState_naberusNights: `Naberus Nacht`,
     worldState_proxyRebellion: `Proxy-Rebellion`,
-    worldState_proxyRebellionRewards: `[UNTRANSLATED] Proxy Rebellion Rewards`,
+    worldState_proxyRebellionRewards: `Proxy-Rebellion-Belohnungen`,
     worldState_bellyOfTheBeast: `Das Innere der Bestie`,
-    worldState_bellyOfTheBeastProgressOverride: `[UNTRANSLATED] Belly of the Beast Progress`,
+    worldState_bellyOfTheBeastProgressOverride: `Das Innere der Bestie-Fortschritt`,
     worldState_eightClaw: `Acht Klauen`,
-    worldState_eightClawProgressOverride: `[UNTRANSLATED] Eight Claw Progress`,
+    worldState_eightClawProgressOverride: `Acht Klauen-Fortschritt`,
     worldState_thermiaFractures: `Thermische Risse`,
-    worldState_thermiaFracturesProgressOverride: `[UNTRANSLATED] Thermia Fractures Progress`,
-    worldState_qtccAlerts: `[UNTRANSLATED] Quest to Conquer Cancer Alerts`,
-    worldState_from_year: `[UNTRANSLATED] From |VAL|`,
-    worldState_pre_year: `[UNTRANSLATED] Pre-|VAL|`,
-    worldState_week: `[UNTRANSLATED] Week |VAL|`,
-    worldState_incompatibleWith: `[UNTRANSLATED] Incompatible with:`,
+    worldState_thermiaFracturesProgressOverride: `Thermische Risse-Fortschritt`,
+    worldState_qtccAlerts: `Quest zum Kampf gegen Krebs-Alarmierungen`,
+    worldState_from_year: `Von |VAL|`,
+    worldState_pre_year: `Vor |VAL|`,
+    worldState_week: `Woche |VAL|`,
+    worldState_incompatibleWith: `Inkompatibel mit:`,
     enabled: `Aktiviert`,
     disabled: `Deaktiviert`,
     worldState_we1: `Wochenende 1`,
@@ -348,7 +348,7 @@ dict = {
     worldState_varziaFullyStocked: `Varzia hat volles Inventar`,
     worldState_varziaOverride: `Varzia-Angebotsüberschreibung`,
 
-    import_importNote: `[UNTRANSLATED] You can provide a full or partial inventory.php or getShip.php response (client representation) here.`,
+    import_importNote: `Du kannst hier eine vollständige oder teilweise inventory.php oder getShip.php Antwort (Client-Darstellung) einfügen.`,
     import_importNote2: `Alle Felder, die vom Importer unterstützt werden, werden in deinem Account überschrieben.`,
     import_submit: `Absenden`,
     import_samples: `Beispiele:`,
@@ -416,11 +416,11 @@ dict = {
     theme_dark: `Dunkles Design`,
     theme_light: `Helles Design`,
 
-    guildView_cheats: `[UNTRANSLATED] Clan Cheats`,
+    guildView_cheats: `Clan-Cheats`,
     guildView_techProjects: `Forschung`,
-    guildView_vaultDecoRecipes: `[UNTRANSLATED] Dojo Deco Recipes`,
-    guildView_vaultMiscItems: `[UNTRANSLATED] Resources in Vault`,
-    guildView_vaultShipDecorations: `[UNTRANSLATED] Decorations in Vault`,
+    guildView_vaultDecoRecipes: `Dojo-Deko-Baupläne`,
+    guildView_vaultMiscItems: `Ressourcen im Tresor`,
+    guildView_vaultShipDecorations: `Dekorationen im Tresor`,
     guildView_alliance: `Allianz`,
     guildView_members: `Mitglieder`,
     guildView_pending: `Ausstehend`,
@@ -440,12 +440,12 @@ dict = {
     guildView_rank_soldier: `Soldat`,
     guildView_rank_utility: `Versorger`,
     guildView_rank_warlord: `Kriegsherr`,
-    guildView_currency_owned: `[UNTRANSLATED] |COUNT| in Vault.`,
-    guildView_bulkAddTechProjects: `[UNTRANSLATED] Add Missing Research`,
-    guildView_bulkAddVaultDecoRecipes: `[UNTRANSLATED] Add Missing Dojo Deco Recipes`,
-    guildView_bulkAddVaultShipDecorations: `[UNTRANSLATED] Add Missing Decorations in Vault`,
-    guildView_bulkFundTechProjects: `[UNTRANSLATED] Fund All Research`,
-    guildView_bulkCompleteTechProjects: `[UNTRANSLATED] Complete All Research`,
+    guildView_currency_owned: `|COUNT| im Tresor.`,
+    guildView_bulkAddTechProjects: `Fehlende Forschungen hinzufügen`,
+    guildView_bulkAddVaultDecoRecipes: `Fehlende Dojo-Deko-Baupläne hinzufügen`,
+    guildView_bulkAddVaultShipDecorations: `Fehlende Dekorationen im Tresor hinzufügen`,
+    guildView_bulkFundTechProjects: `Alle Forschungen spenden`,
+    guildView_bulkCompleteTechProjects: `Alle Forschungen abschließen`,
     guildView_promote: `Befördern`,
     guildView_demote: `Degradieren`,