diff --git a/app/Http/Controllers/LanguageController.php b/app/Http/Controllers/LanguageController.php
index ba21b4025aa7139276a61d2e61865d63771f76ec..a9eefd4f886461d1538c9569a9aba29f3eb9b576 100644
--- a/app/Http/Controllers/LanguageController.php
+++ b/app/Http/Controllers/LanguageController.php
@@ -6,6 +6,7 @@ use Illuminate\Http\Request;
 use App\Models\LanguageObject;
 use RecursiveDirectoryIterator;
 use RecursiveIteratorIterator;
+use ZipArchive;
 
 class LanguageController extends Controller
 {
@@ -17,8 +18,9 @@ class LanguageController extends Controller
 
     public function createOverview(Request $request)
     {
-        $languageFolders            = scandir($this->languageFilePath);
+        $languageFolders  = scandir($this->languageFilePath);
         $dirs             = [];
+
         foreach ($languageFolders as $folder) {
             if (is_dir($this->languageFilePath . $folder) && $folder !== "." && $folder !== "..") {
                 $dirs[] = $folder;
@@ -47,6 +49,7 @@ class LanguageController extends Controller
 
             }
         }
+        die(var_dump($sum));
         $deComplete = $langTexts["de"]["textCount"] === count($sum) ? true : false;
         return view('languages.overview')
             ->with('title', trans('titles.languages'))
@@ -59,7 +62,7 @@ class LanguageController extends Controller
     {
         $languageFolders  = scandir($this->languageFilePath);
         $dirs             = [];
-        
+
         foreach ($languageFolders as $folder) {
             if (is_dir($this->languageFilePath . $folder) && $folder !== "." && $folder !== "..") {
                 $dirs[$folder] = $folder;
@@ -254,6 +257,126 @@ class LanguageController extends Controller
         return $t;
     }
 
+    public function processSynopticPageInput(Request $request, $exclude = "") {
+
+        $filename = $request->input('filename');
+
+        #Identifizieren des gedrückten Buttons
+        if(isset($request['nextpage'])) {
+            #Leite weiter zur nächsten Seite
+            $ex = [];
+
+            if ($exclude !== "") {
+                try {
+                    $ex = unserialize(base64_decode($exclude));
+                } catch (\ErrorException $e) {
+                    $ex = [];
+                }
+
+                if (!isset($ex["files"])) {
+                    $ex["files"] = [];
+                }
+            }
+            if (!isset($ex["new"])) {
+                $ex["new"] = 0;
+            }
+            $ex['files'][] = basename($filename);
+            $ex = base64_encode(serialize($ex));
+
+            return redirect(url('synoptic', ['exclude' => $ex]));
+        }
+
+        #Andernfalls auslesen, zippen und herunterladen der veränderten Dateien 
+        $data = [];
+        $new  = 0;
+        $editedFiles = [];
+
+        foreach ($request->all() as $key => $value) {
+
+            if ($key === "filename" || $value === "") {
+                continue;
+            }
+
+            $key = base64_decode($key);
+
+            #Pfad zur Datei anhand des Schlüsselnamens rekonstruieren (Schlüssel enthält Sprachkürzel)
+            $langdir = $this->extractLanguage($key);
+            $filepath = "lang/".$langdir."/".$filename;
+ 
+            if (strpos($key, "_new_") === 0 && $value !== "" || MailController::isEdited($this->processKey($key), $value, $filepath)) {
+                $new++;
+                $editedFiles[$langdir] = $filepath;
+            } 
+        }     
+
+        #Erneute Iteration über Request, damit Dateien mitsamt vorherigen Einträgen abgespeichert werden 
+        foreach($request->all() as $key => $value) {
+
+            if ($key === "filename" || $value === "") {
+                continue;
+            }
+
+            $key = base64_decode($key);
+
+            #Pfad zur Datei anhand des Schlüsselnamens rekonstruieren (Schlüssel enthält Sprachkürzel)
+            $langdir = $this->extractLanguage($key);
+
+            #Ãœberspringe Datei, falls diese nicht bearbeitet worden ist
+            if(!isset($editedFiles[$langdir])) {
+                continue;
+            }
+
+            #Key kuerzen, sodass er nur den eigentlichen Keynamen enthält
+            $key = $this->processKey($key);
+            
+            if (!strpos($key, "#")) {
+                $data[$langdir][$key] = $value;
+            #Aufdröseln von 2D-Arrays
+            } else {
+                $ref = &$data;
+                do {
+                    $ref = &$ref[$langdir][substr($key, 0, strpos($key, "#"))];
+                    $key = substr($key, strpos($key, "#") + 1);
+                } while (strpos($key, "#"));
+                $ref = &$ref[$key];
+                $ref = $value;
+            }
+        }
+
+        if(empty($data)) {
+            return redirect(url('synoptic', ['exclude' => $exclude]));
+        }
+
+
+        if(file_exists("langfiles.zip"))
+            unlink("langfiles.zip");
+
+        $zip = new ZipArchive();
+
+        if ($zip->open("langfiles.zip", ZipArchive::CREATE) !== TRUE) {  
+            exit("Cannot open ".$filename);
+        } 
+            
+        try{
+        #Erstelle Ausgabedateien
+            foreach($data as $lang => $entries) {
+                $output = json_encode($entries, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
+                $output = preg_replace("/\{/si", "[", $output);
+                $output = preg_replace("/\}/si", "]", $output);
+                $output = preg_replace("/\": ([\"\[])/si", "\"\t=>\t$1", $output);
+                $output = "<?php\n\nreturn $output;\n";
+                $zip->addEmptyDir($lang);
+                $zip->addFromString($lang."/".$filename, $output);
+            }
+
+
+        $zip->close();
+
+        return response()->download("langfiles.zip", $filename.".zip");
+                } catch(ErrorException $e) {
+            exit("Failed to write ".$filename);
+        }
+    }
     private function createHints($t, $to)
     {
         foreach ($t as $key => $langTexts) {
@@ -320,7 +443,6 @@ class LanguageController extends Controller
                     if (is_array($val)) {
                         $isArray = true;
                     }
-
                 }
             } else {
                 $tmp[$key] = $value;
@@ -355,4 +477,27 @@ class LanguageController extends Controller
         // search forward starting from end minus needle length characters
         return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== false);
     }
+
+        private function extractLanguage($key) 
+    {   
+        #Kürzt bspw. "_new_de_redirect bzw. "de_redirect" zu "de"
+        preg_match("/^(?:_new_)?([^_]*)/", $key, $matches);
+        foreach($matches as $dir) {
+            if(strlen($dir) == 2)
+                return $dir;
+            }
+    }
+
+    private function processKey($key) 
+    {   
+        $key = trim($key);
+        #Kürzt bspw. "_new_de_redirect bzw. "de_redirect" zu "redirect"
+        preg_match("/^(?:_new_)?(?:[^_]*)_(\w*.?\w*#?.?\w*)/", $key, $matches);
+        foreach($matches as $processedKey) {
+            if(strpos($processedKey, "_") === FALSE) {
+                return $processedKey;
+            }
+        }
+        return $key;
+    }
 }
diff --git a/app/Http/Controllers/MailController.php b/app/Http/Controllers/MailController.php
index 51961b8c0d23784b7689da5d6682c9124a942147..55ca74ea64dc8aa4955cfef242d08a5a251eaaeb 100644
--- a/app/Http/Controllers/MailController.php
+++ b/app/Http/Controllers/MailController.php
@@ -9,7 +9,6 @@ use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use LaravelLocalization;
 use Mail;
-use ZipArchive;
 
 class MailController extends Controller
 {
@@ -119,7 +118,7 @@ class MailController extends Controller
     }
 
     #Ueberprueft ob ein bereits vorhandener Eintrag bearbeitet worden ist
-    private function isEdited($k, $v, $filename)
+    public static function isEdited($k, $v, $filename)
     {
         try {
             $temp = include resource_path()."/".$filename;
@@ -135,29 +134,6 @@ class MailController extends Controller
         return false;
     }
 
-    private function extractLanguage($key) 
-    {   
-        #Kürzt bspw. "_new_de_redirect bzw. "de_redirect" zu "de"
-        preg_match("/^(?:_new_)?([^_]*)/", $key, $matches);
-        foreach($matches as $dir) {
-            if(strlen($dir) == 2)
-                return $dir;
-            }
-    }
-
-    private function processKey($key) 
-    {   
-        $key = trim($key);
-        #Kürzt bspw. "_new_de_redirect bzw. "de_redirect" zu "redirect"
-        preg_match("/^(?:_new_)?(?:[^_]*)_(\w*.?\w*#?.?\w*)/", $key, $matches);
-        foreach($matches as $processedKey) {
-            if(strpos($processedKey, "_") === FALSE) {
-                return $processedKey;
-            }
-        }
-        return $key;
-    }
-
     public function sendLanguageFile(Request $request, $from, $to, $exclude = "", $email ="")
     {
         $filename = $request->input('filename');
@@ -243,131 +219,4 @@ class MailController extends Controller
         return redirect(url('languages/edit', ['from' => $from, 'to' => $to, 'exclude' => $ex, 'email' => $emailAddress]));
     }
 
-
-
-    public function processSynopticPageInput(Request $request, $exclude = "") {
-
-        $filename = $request->input('filename');
-
-        #Identifizieren des gedrückten Buttons
-        if(isset($request['nextpage'])) {
-            #Leite weiter zur nächsten Seite
-            $ex = [];
-
-            if ($exclude !== "") {
-                try {
-                    $ex = unserialize(base64_decode($exclude));
-                } catch (\ErrorException $e) {
-                    $ex = [];
-                }
-
-                if (!isset($ex["files"])) {
-                    $ex["files"] = [];
-                }
-            }
-            if (!isset($ex["new"])) {
-                $ex["new"] = 0;
-            }
-            $ex['files'][] = basename($filename);
-            $ex = base64_encode(serialize($ex));
-
-            return redirect(url('synoptic', ['exclude' => $ex]));
-        }
-
-        #Andernfalls auslesen, zippen und herunterladen der veränderten Dateien 
-        $data = [];
-        $new  = 0;
-        $editedFiles = [];
-
-        foreach ($request->all() as $key => $value) {
-
-            if ($key === "filename" || $value === "") {
-                continue;
-            }
-
-            $key = base64_decode($key);
-
-            #Pfad zur Datei anhand des Schlüsselnamens rekonstruieren (Schlüssel enthält Sprachkürzel)
-            $langdir = $this->extractLanguage($key);
-            $filepath = "lang/".$langdir."/".$filename;
- 
-            if (strpos($key, "_new_") === 0 && $value !== "" || $this->isEdited($this->processKey($key), $value, $filepath)) {
-                $new++;
-                $editedFiles[$langdir] = $filepath;
-            } 
-        }     
-
-        #Erneute Iteration über Request, damit Dateien mitsamt vorherigen Einträgen abgespeichert werden 
-        foreach($request->all() as $key => $value) {
-
-            if ($key === "filename" || $value === "") {
-                continue;
-            }
-
-            $key = base64_decode($key);
-
-            #Pfad zur Datei anhand des Schlüsselnamens rekonstruieren (Schlüssel enthält Sprachkürzel)
-            $langdir = $this->extractLanguage($key);
-
-            #Ãœberspringe Datei, falls diese nicht bearbeitet worden ist
-            if(!isset($editedFiles[$langdir])) {
-                continue;
-            }
-
-            #Key kuerzen, sodass er nur den eigentlichen Keynamen enthält
-            $key = $this->processKey($key);
-            
-            if (!strpos($key, "#")) {
-                $data[$langdir][$key] = $value;
-            #Aufdröseln von 2D-Arrays
-            } else {
-                $ref = &$data;
-                do {
-                    $ref = &$ref[$langdir][substr($key, 0, strpos($key, "#"))];
-                    $key = substr($key, strpos($key, "#") + 1);
-                } while (strpos($key, "#"));
-                $ref = &$ref[$key];
-                $ref = $value;
-            }
-        }
-
-        if(empty($data)) {
-            return redirect(url('synoptic', ['exclude' => $exclude]));
-        }
-
-
-        if(file_exists("langfiles.zip"))
-            unlink("langfiles.zip");
-
-        $zip = new ZipArchive();
-
-        if ($zip->open("langfiles.zip", ZipArchive::CREATE) !== TRUE) {  
-            exit("Cannot open ".$filename);
-        } 
-            
-        try{
-        #Erstelle Ausgabedateien
-            foreach($data as $lang => $entries) {
-                $output = json_encode($entries, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);
-                $output = preg_replace("/\{/si", "[", $output);
-                $output = preg_replace("/\}/si", "]", $output);
-                $output = preg_replace("/\": ([\"\[])/si", "\"\t=>\t$1", $output);
-                $output = "<?php\n\nreturn $output;\n";
-                $zip->addEmptyDir($lang);
-                $zip->addFromString($lang."/".$filename, $output);
-            }
-
-
-        $zip->close();
-
-        return response()->download("langfiles.zip", $filename.".zip");
-                } catch(ErrorException $e) {
-            exit("Failed to write ".$filename);
-        }
-
-
-    }
-
-
-
 }
diff --git a/routes/web.php b/routes/web.php
index 562d1dc0107c3253fd63054773f122087c088539..edb0604d134bad1f4428ae924601cd0f17e192f4 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -159,7 +159,7 @@ Route::group(
         });
         Route::get('languages', 'LanguageController@createOverview');
         Route::get('synoptic/{exclude?}', 'LanguageController@createSynopticEditPage');
-        Route::post('synoptic/{exclude?}', 'MailController@processSynopticPageInput');
+        Route::post('synoptic/{exclude?}', 'LanguageController@processSynopticPageInput');
         Route::get('languages/edit/{from}/{to}/{exclude?}/{email?}', 'LanguageController@createEditPage');
         Route::post('languages/edit/{from}/{to}/{exclude?}/{email?}', 'MailController@sendLanguageFile');
         Route::get('berlin', 'StartpageController@berlin');