diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2e06f408921f0740dbbe286087a5d5d50dc7ea2f..95aedbd35282e0f616398b7c969c15863d81118c 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,22 +17,59 @@ update(144.76.113.134):
     - git clone "$path" MetaGer_neu
     - cd MetaGer_neu
     - composer install
-    - scp metager@metager3.de:~/.env .
-    - scp metager@metager3.de:~/sumas.xml config/
-    - scp metager@metager3.de:~/sumasEn.xml config/
-    - scp metager@metager3.de:~/blacklistUrl.txt config/
-    - scp metager@metager3.de:~/blacklistDomains.txt config/
+    - scp -P 63824 metager@metager3.de:~/.env .
+    - scp -P 63824 metager@metager3.de:~/sumas.xml config/
+    - scp -P 63824 metager@metager3.de:~/sumasEn.xml config/
+    - scp -P 63824 metager@metager3.de:~/blacklistUrl.txt config/
+    - scp -P 63824 metager@metager3.de:~/blacklistDomains.txt config/
     - touch storage/logs/laravel.log
     - touch storage/logs/worker.log
     - chmod 777 config/sumas.xml config/sumasEn.xml database/metager.sqlite
     - chmod -R 777 storage
     - chmod -R 777 bootstrap/cache
-    - php ~/MetaGer/artisan down
+    - if [ -f ~/MetaGer/artisan ]; then php ~/MetaGer/artisan down;fi
     - cd ~/
-    - rm -rf MetaGer
+    - while [ -d ~/MetaGer ]; do rm -rf ~/MetaGer;done
     - mv MetaGer_neu MetaGer
-    - php ~/MetaGer/artisan queue:restart
     - php ~/MetaGer/artisan migrate --force
+    - sudo pkill --signal SIGHUP supervisord
+    - php ~/MetaGer/artisan up
+   
+update(metager2):
+  tags:
+  - metager2
+  only:
+    - master
+  before_script:
+    # Abhängigkeiten überprüfen
+    - which composer
+    - which git
+    - which php7.0
+    - which sqlite3
+  script:
+    # Pfad zum neu geklonten Repo
+    - path=`pwd`
+    - cd ~/
+    - if [ -d MetaGer_neu ]; then rm -rf MetaGer_neu;fi
+    - git clone "$path" MetaGer_neu
+    - cd MetaGer_neu
+    - composer install
+    - scp -P 63824 metager@metager3.de:~/.env .
+    - scp -P 63824 metager@metager3.de:~/sumas.xml config/
+    - scp -P 63824 metager@metager3.de:~/sumasEn.xml config/
+    - scp -P 63824 metager@metager3.de:~/blacklistUrl.txt config/
+    - scp -P 63824 metager@metager3.de:~/blacklistDomains.txt config/
+    - touch storage/logs/laravel.log
+    - touch storage/logs/worker.log
+    - chmod 777 config/sumas.xml config/sumasEn.xml database/metager.sqlite
+    - chmod -R 777 storage
+    - chmod -R 777 bootstrap/cache
+    - if [ -f ~/MetaGer/artisan ]; then php ~/MetaGer/artisan down;fi
+    - cd ~/
+    - while [ -d ~/MetaGer ]; do rm -rf ~/MetaGer;done
+    - mv MetaGer_neu MetaGer
+    - php ~/MetaGer/artisan migrate --force
+    - sudo pkill --signal SIGHUP supervisord
     - php ~/MetaGer/artisan up
     
 update(metager3.de):
@@ -54,20 +91,20 @@ update(metager3.de):
     - git clone "$path" MetaGer_neu
     - cd MetaGer_neu
     - composer install
-    - scp metager@metager3.de:~/.env .
-    - scp metager@metager3.de:~/sumas.xml config/
-    - scp metager@metager3.de:~/sumasEn.xml config/
-    - scp metager@metager3.de:~/blacklistUrl.txt config/
-    - scp metager@metager3.de:~/blacklistDomains.txt config/
+    - scp -P 63824 metager@metager3.de:~/.env .
+    - scp -P 63824 metager@metager3.de:~/sumas.xml config/
+    - scp -P 63824 metager@metager3.de:~/sumasEn.xml config/
+    - scp -P 63824 metager@metager3.de:~/blacklistUrl.txt config/
+    - scp -P 63824 metager@metager3.de:~/blacklistDomains.txt config/
     - touch storage/logs/laravel.log
     - touch storage/logs/worker.log
     - chmod 777 config/sumas.xml config/sumasEn.xml database/metager.sqlite
     - chmod -R 777 storage
     - chmod -R 777 bootstrap/cache
-    - php ~/MetaGer/artisan down
+    - if [ -f ~/MetaGer/artisan ]; then php ~/MetaGer/artisan down;fi
     - cd ~/
-    - rm -rf MetaGer
+    - while [ -d ~/MetaGer ]; do rm -rf ~/MetaGer;done
     - mv MetaGer_neu MetaGer
-    - php ~/MetaGer/artisan queue:restart
     - php ~/MetaGer/artisan migrate --force
+    - sudo pkill --signal SIGHUP supervisord
     - php ~/MetaGer/artisan up
\ No newline at end of file
diff --git a/app/Http/Controllers/AdminInterface.php b/app/Http/Controllers/AdminInterface.php
index 97f88236e71ebc61ac042ba925d99f3b68e1ea04..5a626ecf863c97cf3ba11568620911c5f5378cd1 100644
--- a/app/Http/Controllers/AdminInterface.php
+++ b/app/Http/Controllers/AdminInterface.php
@@ -57,9 +57,11 @@ class AdminInterface extends Controller
         $yesterday = 0;
         $rekordTag = 0;
         $rekordTagDate = "";
+        $size = 0;
+        $count = 0;
         for($i = 1; $i <= 28; $i ++ )
         {
-            $logDate = "/var/log/metager/archive/" . "mg3.log.$i";
+            $logDate = "/var/log/metager/archive/mg3.log.$i";
             if( file_exists($logDate) )
             {
                 $sameTime = exec("grep -n '" . date('H') . ":" . date('i') . ":' $logDate | tail -1 | cut -f1 -d':'");
@@ -72,69 +74,22 @@ class AdminInterface extends Controller
                 }
                 $oldLogs[$i]['sameTime'] = $sameTime;
                 $oldLogs[$i]['insgesamt'] = $insgesamt;
-            }
-        }
-
-        $median = [];
-        # Median für 7 Tage:
-        $size = 0;
-        $count = 0;
-        for($i = 1; $i <= 7; $i++)
-        {
-            if( isset($oldLogs[$i]) )
-            {
-                $count += $oldLogs[$i]['insgesamt'];
+                # Nun noch den median:
+                $count += $insgesamt;
                 $size++;
+                if($size > 0)
+                    $oldLogs[$i]['median'] = ($count/$size);
             }
         }
-        $median[7] = ($count/$size);
 
-        # Median für 14 Tage:
-        $size = 0;
-        $count = 0;
-        for($i = 1; $i <= 14; $i++)
-        {
-            if( isset($oldLogs[$i]) )
-            {
-                $count += $oldLogs[$i]['insgesamt'];
-                $size++;
-            }
-        }
-        $median[14] = ($count/$size);
 
-        # Median für 21 Tage:
-        $size = 0;
-        $count = 0;
-        for($i = 1; $i <= 21; $i++)
-        {
-            if( isset($oldLogs[$i]) )
-            {
-                $count += $oldLogs[$i]['insgesamt'];
-                $size++;
-            }
-        }
-        $median[21] = ($count/$size);
-
-        # Median für 28 Tage:
-        $size = 0;
-        $count = 0;
-        for($i = 1; $i <= 28; $i++)
-        {
-            if( isset($oldLogs[$i]) )
-            {
-                $count += $oldLogs[$i]['insgesamt'];
-                $size++;
-            }
-        }
-        $median[28] = ($count/$size);
         return view('admin.count')
             ->with('title', 'Suchanfragen - MetaGer')
             ->with('today', number_format(floatval(sizeof($logToday)), 0, ",", "."))
             ->with('oldLogs', $oldLogs)
             ->with('rekordCount', number_format(floatval($rekordTag), 0, ",", "."))
             ->with('rekordTagSameTime', number_format(floatval($rekordTagSameTime), 0, ",", "."))
-            ->with('rekordDate', $rekordTagDate)
-            ->with('median', $median);
+            ->with('rekordDate', $rekordTagDate);
     }
     public function check ()
     {
diff --git a/app/Http/Controllers/MailController.php b/app/Http/Controllers/MailController.php
index f170a9101c182a7a2f325380c5585575c60dc0d7..a914ea40bea5f0157db2778bd0096fa74700ba87 100644
--- a/app/Http/Controllers/MailController.php
+++ b/app/Http/Controllers/MailController.php
@@ -32,12 +32,12 @@ class MailController extends Controller
         }else{
             # Wir versenden die Mail des Benutzers an uns:
             $message = $request->input('message');
-
-            if( Mail::send(['text' => 'kontakt.mail'], ['messageText'=>$message], function($message) use($replyTo){
+            $subject = "[Ticket " . date("Y") . date("d") . date("m") . date("H") . date("i") . date("s") . "] MetaGer - Kontaktanfrage";
+            if( Mail::send(['text' => 'kontakt.mail'], ['messageText'=>$message], function($message) use($replyTo, $subject){
                 $message->to("office@suma-ev.de", $name = null);
                 $message->from($replyTo, $name = null);
                 $message->replyTo($replyTo, $name = null);
-                $message->subject("MetaGer - Kontaktanfrage");
+                $message->subject($subject);
             }) ){
                 # Mail erfolgreich gesendet
                 $messageType = "success";
@@ -76,11 +76,11 @@ class MailController extends Controller
             $messageToUser = "Sie haben eins der folgenden Felder nicht ausgefüllt: IBAN, BIC, Nachricht. Bitte korrigieren Sie Ihre Eingabe und versuchen es erneut.\n";
             $messageType = "error";
         }else{
-            $message = "\r\n Name:" . $request->input('Name', 'Keine Angabe');
-            $message .= "\r\n Telefon:" . $request->input('Telefon', 'Keine Angabe');
-            $message .= "\r\n Kontonummer:" . $request->input('Kontonummer');
-            $message .= "\r\n Bankleitzahl:" . $request->input('Bankleitzahl');
-            $message .= "\r\n Nachricht:" . $request->input('Nachricht');
+            $message = "\r\nName: " . $request->input('Name', 'Keine Angabe');
+            $message .= "\r\nTelefon: " . $request->input('Telefon', 'Keine Angabe');
+            $message .= "\r\nKontonummer: " . $request->input('Kontonummer');
+            $message .= "\r\nBankleitzahl: " . $request->input('Bankleitzahl');
+            $message .= "\r\nNachricht: " . $request->input('Nachricht');
 
             $replyTo = $request->input('email', 'anonymous-user@metager.de');
             if (!filter_var($replyTo, FILTER_VALIDATE_EMAIL)) {
@@ -107,7 +107,7 @@ class MailController extends Controller
         }
 
 
-        return view('spende')
+        return view('spende.spende')
                 ->with('title', 'Kontakt')
                 ->with('css', 'donation.css')
                 ->with($messageType,$messageToUser);
diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php
index 48a24e206e5b5e5f9eb7e01378254a5a31e57fa3..d1b179e30ee8b9040ea413a9ff117767eb76903a 100644
--- a/app/Http/Controllers/MetaGerSearch.php
+++ b/app/Http/Controllers/MetaGerSearch.php
@@ -32,8 +32,7 @@ class MetaGerSearch extends Controller
 
         # Ergebnisse der Suchmaschinen kombinieren:
         $metager->combineResults();
-
-        $metager->removeInvalids();
+        
         # Die Ausgabe erstellen:
         return $metager->createView();
     }
diff --git a/app/Http/Controllers/Pictureproxy.php b/app/Http/Controllers/Pictureproxy.php
index efcea2918e4dcd3a2f12cf2d2d6a71aae8591988..45312e78ead26b4110d6f72bbe6f05e0a1cee712 100644
--- a/app/Http/Controllers/Pictureproxy.php
+++ b/app/Http/Controllers/Pictureproxy.php
@@ -17,19 +17,24 @@ class Pictureproxy extends Controller
     function get(Request $request) {
         if( $request->has('url') )
         {
-            $file = file_get_contents($request->input('url'));
-            $responseCode = explode(" ", $http_response_header[0])[1];
-            $contentType = "";
-            foreach($http_response_header as $header)
-            {
-                if( strpos($header, "Content-Type:") === 0)
+            try{
+                $file = file_get_contents($request->input('url'));
+                $responseCode = explode(" ", $http_response_header[0])[1];
+                $contentType = "";
+                foreach($http_response_header as $header)
                 {
-                    $tmp = explode(": ", $header);
-                    $contentType = $tmp[1];
+                    if( strpos($header, "Content-Type:") === 0)
+                    {
+                        $tmp = explode(": ", $header);
+                        $contentType = $tmp[1];
+                    }
                 }
+                $response = Response::make($file, $responseCode);
+                $response->header('Content-Type', $contentType);
+            }catch(\ErrorException $e)
+            {
+                $response = Response::make("", 404);
             }
-            $response = Response::make($file, $responseCode);
-            $response->header('Content-Type', $contentType);
             return $response;
         }
     } 
diff --git a/app/Http/Controllers/StartpageController.php b/app/Http/Controllers/StartpageController.php
index 59c9261a91f328915813b4097c7fe5a4102a13ed..6a22e7a6f3e4aa3c13279bedcbd179a3efcb7863 100644
--- a/app/Http/Controllers/StartpageController.php
+++ b/app/Http/Controllers/StartpageController.php
@@ -110,7 +110,7 @@ class StartpageController extends Controller
     {
         $sumaFile = "";
         if(App::isLocale('en'))
-            $sumaFile = config_path() . "/sumasEn.xml";
+            $sumaFile = config_path() . "/sumas.xml";
         else
             $sumaFile = config_path() . "/sumas.xml";
 
diff --git a/app/Http/routes.php b/app/Http/routes.php
index fa340204a80d07cd26e25e832090a987b14431ff..0e24294b234f31f1d08f4a89dc0f5b146a8f5d5a 100644
--- a/app/Http/routes.php
+++ b/app/Http/routes.php
@@ -72,14 +72,34 @@
 		});
 		Route::get('spende', function()
 		{
-			return view('spende')
+			return view('spende.spende')
 				->with('title', trans('titles.spende'))
 				->with('css', 'donation.css')
 				->with('navbarFocus', 'foerdern');
 		});
-		
+
+		Route::get('beitritt', function ()
+		{
+			return view('spende.beitritt')
+				->with('title', trans('titles.beitritt'))
+				->with('css', 'beitritt.css')
+				->with('navbarFocus', 'foerdern');
+		});
+
+		Route::get('bform1.htm', function()
+		{
+			return redirect('beitritt');
+		});
+		Route::get('spendenaufruf', function()
+		{
+			return view('spende.spendenaufruf')
+				->with('title', 'Spendenaufruf - MetaGer')
+				->with('navbarFocus', 'foerdern');
+		});
+
 		Route::post('spende', 'MailController@donation');
 
+
 		Route::get('datenschutz', function()
 		{
 			return view('datenschutz')
@@ -128,4 +148,8 @@
 		Route::get('qt', 'MetaGerSearch@quicktips');
 		Route::get('tips', 'MetaGerSearch@tips');
 		Route::get('opensearch.xml', 'StartpageController@loadPlugin');
+		Route::get('owi', function()
+		{
+			return redirect('https://metager.de/klassik/en/owi/');
+		});
 	});
diff --git a/app/Jobs/Search.php b/app/Jobs/Search.php
index 6575b54f3649997b6c8fc9c22e1ac77afad29843..62fc6b289a31bca00015f1d3e6a7397b3f9ef57b 100644
--- a/app/Jobs/Search.php
+++ b/app/Jobs/Search.php
@@ -83,7 +83,7 @@ class Search extends Job implements ShouldQueue
                 break;
             }
             if( sizeof(($tmp = explode(": ", $data))) === 2 )
-                $headers[trim($tmp[0])] = trim($tmp[1]);
+                $headers[strtolower(trim($tmp[0]))] = trim($tmp[1]);
             $c++;
         }
         while (true);
@@ -91,13 +91,13 @@ class Search extends Job implements ShouldQueue
         // end of headers
         if(sizeof($headers) > 1){
             $bodySize = 0;
-            if( isset($headers["Transfer-Encoding"]) && $headers["Transfer-Encoding"] === "chunked" )
+            if( isset($headers["transfer-encoding"]) && $headers["transfer-encoding"] === "chunked" )
             {
                 $body = $this->readChunked();
                 
-            }elseif( isset($headers['Content-Length']) )
+            }elseif( isset($headers['content-length']) )
             {
-                $length = trim($headers['Content-Length']);
+                $length = trim($headers['content-length']);
                 if(is_numeric($length) && $length >= 1)
                     $body = $this->readBody($length);
                 $bodySize = strlen($body);
@@ -111,7 +111,7 @@ class Search extends Job implements ShouldQueue
         }
 
         Redis::del($this->host . "." . $this->socketNumber);
-        if( isset($headers["Content-Encoding"]) && $headers['Content-Encoding'] === "gzip")
+        if( isset($headers["content-encoding"]) && $headers['content-encoding'] === "gzip")
         {
             $body = $this->gunzip($body);
         }
diff --git a/app/MetaGer.php b/app/MetaGer.php
index 8794d78262c56b5f4b401535bcd46f0580716584..11b94096d4e6b8086617a67327ab0c3d2394f33d 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -29,6 +29,7 @@ class MetaGer
 	protected $hostBlacklist = [];
 	protected $domainBlacklist = [];
 	protected $stopWords = [];
+    protected $phrases = [];
 	protected $engines = [];
 	protected $results = [];
     protected $ads = [];
@@ -152,7 +153,7 @@ class MetaGer
     private function createLogs()
     {
         $redis = Redis::connection('redisLogs');
-        if( $redis )
+        try
         {
             $logEntry = "";
             $logEntry .= "[" . date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y"))) . "]";
@@ -177,6 +178,9 @@ class MetaGer
             $logEntry .= " iter= mm= time=" . round((microtime(true)-$this->starttime), 2) . " serv=" . $this->fokus . " which= hits= stringSearch= QuickTips= SSS= check=";
             $logEntry .= " search=" . $this->eingabe;
             $redis->rpush('logs.search', $logEntry);
+        }catch( \Exception $e)
+        {
+            return;
         }
     }
 
@@ -267,6 +271,7 @@ class MetaGer
 
         $this->results = $paginatedSearchResults;
 
+        $this->validated = false;
         if( isset($this->password) )
         {
             # Wir bieten einen bezahlten API-Zugriff an, bei dem dementsprechend die Werbung ausgeblendet wurde:
@@ -277,6 +282,7 @@ class MetaGer
             if( $this->password === $password )
             {
                 $this->ads = [];
+                $this->validated = true;
             }
         }
 	}
@@ -388,7 +394,7 @@ class MetaGer
             }
             if( $enginesWithSite === 0 )
             {
-                $this->errors[] = "Sie wollten eine Sitesearch auf " . $this->site . " durchführen. Leider unterstützen die eingestellten Suchmaschinen diese nicht. Sie können <a href=\"" . $this->generateSearchLink("web", false) . "\">hier</a> die Sitesearch im Web-FoKus durchführen. Es werden ihnen Ergebnisse ohne Sitesearch angezeigt.";
+                $this->errors[] = "Sie wollten eine Sitesearch auf " . $this->site . " durchführen. Leider unterstützen die eingestellten Suchmaschinen diese nicht. Sie können <a href=\"" . $this->generateSearchLink("web", false) . "\">hier</a> die Sitesearch im Web-Fokus durchführen. Es werden ihnen Ergebnisse ohne Sitesearch angezeigt.";
                 $siteSearchFailed = true;
             }else
             {
@@ -505,7 +511,7 @@ class MetaGer
 
         # SUMA-FILE
         if(App::isLocale("en")){
-            $this->sumaFile = config_path() . "/sumasEn.xml";
+            $this->sumaFile = config_path() . "/sumas.xml";
         }else{
             $this->sumaFile = config_path() . "/sumas.xml";
         }
@@ -693,9 +699,19 @@ class MetaGer
 		}
 
 		# Meldung über eine Phrasensuche
-		if(preg_match("/\"(.+)\"/si", $this->q, $match)){
-			$this->warnings[] = "Sie führen eine Phrasensuche durch: \"" . $match[1] . "\"";
+        $p = "";
+        $tmp = $this->q;
+		while(preg_match("/(.*)\"(.+)\"(.*)/si", $tmp, $match)){
+            $tmp = $match[1] . $match[3];
+            $this->phrases[] = strtolower($match[2]);
 		}
+        foreach($this->phrases as $phrase)
+        {
+            $p .= "\"$phrase\", ";
+        }
+        $p = rtrim($p, ", ");
+        if(sizeof($this->phrases) > 0)
+            $this->warnings[] = "Sie führen eine Phrasensuche durch: $p";
 	}
 
     public function getFokus ()
@@ -747,6 +763,11 @@ class MetaGer
         return $this->category;
     }
 
+    public function getPhrases ()
+    {
+        return $this->phrases;
+    }
+
     public function getSumaFile ()
     {
         return $this->sumaFile;
@@ -824,6 +845,8 @@ class MetaGer
         $requestData['focus'] = $fokus;
         if($results)
             $requestData['out'] = "results";
+        else
+            $requestData['out'] = "";
         $link = action('MetaGerSearch@search', $requestData);
         return $link;
     }
diff --git a/app/Models/Forwarder.php b/app/Models/Forwarder.php
deleted file mode 100644
index 57cd1fc129b97f88ae6c1cf196ec89dba6709110..0000000000000000000000000000000000000000
--- a/app/Models/Forwarder.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-
-namespace App\MetaGer;
-
-use App\lib\Redis;
-
-class Forwarder 
-{
-	public static function getFreeServer()
-	{
-		# Variablen Deklarationen:
-        $host = $_SERVER["SERVER_NAME"]; # Dieser Server ist der Host für den Redis-Server
-        $redis;                      # In diesem Objekt erhalten wir Zugriff auf die Redis-Datenbank (Redis)
-        $cfg;                        # In diesem Objekt erhalten wir Zugriff auf unsere Konfiguration (Config::Simple)
-        $servers;                    # Beinhaltet später eine Liste, aller verbundenen Server, an die wir die Anfrage schicken können
-        $server;
-        $protocol;        # Beinhaltet später den Server ( und sein Protokoll ), der die Suchanfrage tatsächlich beantworten soll
-        $result;
-
-        # Load Config File;
-        $cfg = parse_ini_file(config_path() . '/metager.ini', TRUE);
-
-        # Connect to our Redis Server
-        try {
-            $redis = new Redis($host, $cfg['redis']['port']);
-        } catch(\Exception $e){
-            $redis = new Redis($cfg['redis']['server'], $cfg['redis']['port']);
-        }
-        $response = $redis->cmd('auth', $cfg['redis']['password'] )->get();
-        if($response !== "OK"){
-           die("Couldn't authenticate to Redis Server");
-        }
-
-        # Fill $servers Array from Redis:
-        $serversArray = self::indexedToAssociative($redis->cmd('hgetall', 'servers')->get());
-
-        foreach($serversArray as $key => $value ){
-        	$data = explode("\t", $value);
-        	$age = time() - $data[0];	# Erste Stelle ist die Zeit in Sekunden, an der sich der Server das letzte Mal angemeldet hat.
-        	if($age > 3){
-        		# Der Server hat sich seit 3 Sekunden nicht mehr gemeldet. Er kommt schon einmal nicht in Frage und wird aus der Datenbank geworfen:
-				$redis->cmd("hdel", "servers", $key)->set();
-        	}elseif()
-        }
-
-        return time();
-        # Select a matching Server:
-	}
-
-	/**
-     * Converts an indexed Array to an Associative one
-     * Every Element on an even index is the Ḱey to the Element on the next uneven index
-     *
-     * @param  indexedArray  $array
-     * @return associativeArray $result
-     */
-	private static function indexedToAssociative($array){
-		$result = array();
-        for($i = 0; $i < sizeof($array); $i++){
-            if($i %2 === 0){
-                $server = $array[$i];
-            }else{
-                $result[$server] = $array[$i];
-                $server = "";
-            }
-        }
-        return $result;
-	}
-}
\ No newline at end of file
diff --git a/app/Models/Result.php b/app/Models/Result.php
index 6ba3a088253d8e0adfd8862615984b61b4d8602e..275a54889578f78145e3d4a4b18b87ae8fc3f54c 100644
--- a/app/Models/Result.php
+++ b/app/Models/Result.php
@@ -157,30 +157,37 @@ class Result
 			return false;
 		}
 
-		$text = $this->titel . " " . $this->descr;
-
-		if($metager->getLang() !== "all")
+		# Nun der Eventuelle Sprachfilter
+		if( $metager->getLang() !== "all" )
 		{
-			$result = $metager->getLanguageDetect()->detect($text, 1);
-			$lang = "";
-			foreach($result as $key => $value)
-			{
-				$lang = $key;
-			}
+			$text = $this->titel . " " . $this->descr;
+			$path = app_path() . "/Models/lang.pl";
+			$lang = exec("echo '$text' | $path");
 
-			if($lang !== "" && $lang !== $metager->getLang())
+			if( $metager->getLang() !== $lang )
 				return false;
 		}
 
+		
+
 		# Wir wenden die Stoppwortsuche an und schmeißen entsprechende Ergebnisse raus:
 		foreach($metager->getStopWords() as $stopWord)
 		{
+			$text = $this->titel . " " . $this->descr;
 			if(stripos($text, $stopWord) !== false)
 			{
 				return false;
 			}
 		}
 
+		# Die Strinsuche:
+		$text = strtolower($this->titel) . " " . strtolower($this->descr);
+		foreach($metager->getPhrases() as $phrase)
+		{
+			if(strpos($text, $phrase) === FALSE)
+				return false;
+		}
+
 		# Abschließend noch 2 Überprüfungen. Einmal den Host filter, der Sicherstellt, dass von jedem Host maximal 3 Links angezeigt werden
 		# und dann noch den Dublettefilter, der sicher stellt, dass wir nach Möglichkeit keinen Link doppelt in der Ergebnisliste haben
 		# Diese Überprüfung führen wir unter bestimmten Bedingungen nicht durch:
@@ -247,4 +254,4 @@ class Result
 		return "https://proxy.suma-ev.de/cgi-bin/nph-proxy.cgi/en/I0/" . $tmp;
 		
 	}
-}
\ No newline at end of file
+}
diff --git a/app/Models/Search.php b/app/Models/Search.php
deleted file mode 100644
index 343f0ac9ec15f610f9224780f9c614751cc0724c..0000000000000000000000000000000000000000
--- a/app/Models/Search.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-namespace App\MetaGer;
-use Illuminate\Http\Request;
-use App\MetaGer\Searchengine;
-
-class Search
-{
-
-	public static function loadSearchEngines(Request $request)
-	{
-
-        # Überprüfe, welche Sumas eingeschaltet sind
-        $xml = simplexml_load_file(SUMA_FILE);
-        $enabledSearchengines = [];
-        $overtureEnabled = FALSE;
-        
-        if(FOKUS === "angepasst")
-        {
-            $sumas = $xml->xpath("suma");
-            foreach($sumas as $suma)
-            {
-                if($request->has($suma["service"]) 
-                #	|| ( FOKUS !== "bilder" 
-                #		&& ($suma["name"]->__toString() === "qualigo" 
-                #			|| $suma["name"]->__toString() === "similar_product_ads" 
-                #			|| ( !$overtureEnabled && $suma["name"]->__toString() === "overtureAds" )
-               # 			)
-               # 		)
-                	){
-                	if($suma["name"]->__toString() === "overture")
-                	{
-                		$overtureEnabled = TRUE;
-                	}
-                    $enabledSearchengines[] = $suma;
-                }
-            }
-        }else{
-            $sumas = $xml->xpath("suma");
-            foreach($sumas as $suma){
-                $types = explode(",",$suma["type"]);
-                if(in_array(FOKUS, $types) 
-                #	|| ( FOKUS !== "bilder" 
-                	#	&& ($suma["name"]->__toString() === "qualigo" 
-                	#		|| $suma["name"]->__toString() === "similar_product_ads" 
-                #			|| ( !$overtureEnabled && $suma["name"]->__toString() === "overtureAds" )
-                #			)
-              #  		)
-                	){
-                	if($suma["name"]->__toString() === "overture")
-                	{
-                		$overtureEnabled = TRUE;
-                	}
-                    $enabledSearchengines[] = $suma;
-                }
-            }
-        }
-        
-		$engines = [];
-		foreach($enabledSearchengines as $engine){
-            $path = "App\MetaGer\parserSkripte\\" . $engine["name"]->__toString();
-			$engines[] = new $path($engine);
-		}
-
-        return $engines;
-	}
-}
\ No newline at end of file
diff --git a/app/Models/lang.pl b/app/Models/lang.pl
new file mode 100755
index 0000000000000000000000000000000000000000..fe071d8a46ced99f3f45a8b641e17d05c014f687
--- /dev/null
+++ b/app/Models/lang.pl
@@ -0,0 +1,10 @@
+#!/usr/bin/perl
+
+use Lingua::Identify qw(:language_identification);
+
+$text = <STDIN>;
+
+$a = langof($text);
+
+print $a;
+
diff --git a/app/Models/parserSkripte/Europeana.php b/app/Models/parserSkripte/Europeana.php
new file mode 100644
index 0000000000000000000000000000000000000000..2da2db448e9aac4a4d10999eae634202f8222f77
--- /dev/null
+++ b/app/Models/parserSkripte/Europeana.php
@@ -0,0 +1,68 @@
+<?php
+
+namespace app\Models\parserSkripte;
+use App\Models\Searchengine;
+use Symfony\Component\DomCrawler\Crawler;
+
+class Europeana extends Searchengine 
+{
+	public $results = [];
+
+	function __construct (\SimpleXMLElement $engine, \App\MetaGer $metager)
+	{
+		parent::__construct($engine, $metager);
+	}
+
+	public function loadResults ($result)
+	{
+		$result = preg_replace("/\r\n/si", "", $result);
+		try {
+			$content = json_decode($result);
+		} catch (\Exception $e) {
+			abort(500, "$result is not a valid json string");
+		}
+		
+		if(!$content)
+		{
+			return;
+		}
+
+		$results = $content->items;
+		foreach($results as $result)
+		{
+			if(isset($result->edmPreview)) {
+				$title = $result->title[0];
+
+				if (preg_match("/(.+)\?.*/si", $result->guid, $match)){
+					$link = $match[1];
+				} else {
+					$link = "";
+				}
+
+				$anzeigeLink = $link;
+				$descr = "";
+
+				/*if (preg_match("/(?:uri=)(.+)/si", urldecode($result->edmPreview[0]), $match)){
+					$image = $match[1];
+				} else {
+					$image = "";
+				}
+				echo $image . "
+";*/
+				$image = urldecode($result->edmPreview[0]);
+				$this->counter++;
+				$this->results[] = new \App\Models\Result(
+					$this->engine,
+					$title,
+					$link,
+					$anzeigeLink,
+					$descr,
+					$this->gefVon,
+					$this->counter,
+					false,
+					$image
+				);
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/app/Models/parserSkripte/Exalead.php b/app/Models/parserSkripte/Exalead.php
index 96b930ab529f29ff404d7d4c76ad111e9b5a6d13..c558e8e49046cfbe42ef24560f57b6b409caf250 100644
--- a/app/Models/parserSkripte/Exalead.php
+++ b/app/Models/parserSkripte/Exalead.php
@@ -45,24 +45,29 @@ class Exalead extends Searchengine
 		}
 		foreach($results as $result)
 		{
-			$result->registerXPathNamespace($prefix,$namespace);
-			$title = $result->xpath("a:metas/a:Meta[@name='title']/a:MetaString[@name='value']")[0]->__toString();
-			$link = $result->xpath("a:metas/a:Meta[@name='url']/a:MetaString[@name='value']")[0]->__toString();
-			$anzeigeLink = $link;
-			if(sizeOf($result->xpath("a:metas/a:Meta[@name='metadesc']/a:MetaString[@name='value']")) === 0)
-				$descr = "";
-			else
-				$descr = $result->xpath("a:metas/a:Meta[@name='metadesc']/a:MetaString[@name='value']")[0]->__toString();
-			$this->counter++;
-			$this->results[] = new \App\Models\Result(
-				$this->engine,
-				$title,
-				$link,
-				$anzeigeLink,
-				$descr,
-				$this->gefVon,
-				$this->counter
-			);
+			try{
+				$result->registerXPathNamespace($prefix,$namespace);
+				$title = $result->xpath("a:metas/a:Meta[@name='title']/a:MetaString[@name='value']")[0]->__toString();
+				$link = $result->xpath("a:metas/a:Meta[@name='url']/a:MetaString[@name='value']")[0]->__toString();
+				$anzeigeLink = $link;
+				if(sizeOf($result->xpath("a:metas/a:Meta[@name='metadesc']/a:MetaString[@name='value']")) === 0)
+					$descr = "";
+				else
+					$descr = $result->xpath("a:metas/a:Meta[@name='metadesc']/a:MetaString[@name='value']")[0]->__toString();
+				$this->counter++;
+				$this->results[] = new \App\Models\Result(
+					$this->engine,
+					$title,
+					$link,
+					$anzeigeLink,
+					$descr,
+					$this->gefVon,
+					$this->counter
+				);
+			}catch(\ErrorException $e)
+			{
+				continue;
+			}
 		}
 	}
 }
diff --git a/app/Models/parserSkripte/Yandex.php b/app/Models/parserSkripte/Yandex.php
index 2a0366bdc32643472ef274123e37ba161b17a8c7..c3cb2d013031a0f7dc00084d3bdf90adf72ab123 100644
--- a/app/Models/parserSkripte/Yandex.php
+++ b/app/Models/parserSkripte/Yandex.php
@@ -39,6 +39,10 @@ class Yandex extends Searchengine
 			$link = $result->{"doc"}->{"url"}->__toString();
 			$anzeigeLink = $link;
 			$descr = strip_tags($result->{"doc"}->{"headline"}->asXML());
+			if( !$descr )
+			{
+				$descr = strip_tags($result->{"doc"}->{"passages"}->asXML());
+			}
 			$this->counter++;
 			$this->results[] = new \App\Models\Result(
 				$this->engine,
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 775130e3a86c242e9874cf01037b2e4ef351ee17..9538eae6c059b361aa3a5c301c2a36b472215a58 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -28,25 +28,32 @@ class AppServiceProvider extends ServiceProvider
             $today = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d"), date("Y"))));
             $end = strtotime(date(DATE_RFC822, mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y")))) - $today;
             $expireAt = strtotime(date(DATE_RFC822, mktime(0,0,0, date("m"), date("d")+1, date("Y"))));
-            $redis = Redis::connection('redisLogs');
-            $p = getmypid();
-            $host = gethostname();
-            $begin = $this->begin - $today;
-            $redis->pipeline(function($pipe) use ($p, $expireAt, $host, $begin, $end)
-            {
-                for( $i = $begin; $i <= $end; $i++)
+            try{
+                $redis = Redis::connection('redisLogs');
+                if( !$redis )
+                    return;
+                $p = getmypid();
+                $host = gethostname();
+                $begin = $this->begin - $today;
+                $redis->pipeline(function($pipe) use ($p, $expireAt, $host, $begin, $end)
                 {
-                    $pipe->sadd("logs.worker.$host.$i", strval($p));
-                    $pipe->expire("logs.worker.$host.$i", 10);
-                    $pipe->eval("redis.call('hset', 'logs.worker.$host', '$i', redis.call('scard', 'logs.worker.$host.$i'))", 0);
-                    $pipe->sadd("logs.worker", $host);
-                    if( date("H") !== 0 )
+                    for( $i = $begin; $i <= $end; $i++)
                     {
-                        $pipe->expire("logs.worker.$host", $expireAt);
-                        $pipe->expire("logs.worker", $expireAt);
+                        $pipe->sadd("logs.worker.$host.$i", strval($p));
+                        $pipe->expire("logs.worker.$host.$i", 10);
+                        $pipe->eval("redis.call('hset', 'logs.worker.$host', '$i', redis.call('scard', 'logs.worker.$host.$i'))", 0);
+                        $pipe->sadd("logs.worker", $host);
+                        if( date("H") !== 0 )
+                        {
+                            $pipe->expire("logs.worker.$host", $expireAt);
+                            $pipe->expire("logs.worker", $expireAt);
+                        }
                     }
-                }
-            });
+                });
+            }catch( \Exception $e)
+            {
+                return;
+            }
         });
     }
 
diff --git a/config/trustedproxy.php b/config/trustedproxy.php
index 70885b4e4d1e70f47ba0c3431d70ae61c3fcd3bc..b18d7c5579091e55e94606ab5606c3d508dc65c3 100755
--- a/config/trustedproxy.php
+++ b/config/trustedproxy.php
@@ -17,6 +17,7 @@ return [
         '5.9.157.179',
         '144.76.113.134',
         '130.75.2.6',
+        '144.76.182.236',
     ],
 
     /*
diff --git a/public/2866738.html b/public/2866738.html
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/public/css/beitritt.css b/public/css/beitritt.css
new file mode 100644
index 0000000000000000000000000000000000000000..eeb540395c67b3b243b3320a086748832f52bff6
--- /dev/null
+++ b/public/css/beitritt.css
@@ -0,0 +1,29 @@
+.form-group{
+	text-align: left;
+}
+
+label.non-bold{
+	font-weight: normal;
+	font-size: 16px;
+}
+
+ul{
+	list-style-type: initial!important;
+	text-align: left!important;
+}
+
+hr{
+	margin: 10px 0!important;
+}
+
+@media print
+{
+	.noprint {display:none!important;}
+	#spendenaufruf{display:none!important;}
+	footer{display:none!important;}
+	.wrapper{padding-top:0!important;}
+	*{font-size:12px!important;}
+	input[type=text], input[type=email]{padding:0!important;height:initial!important;border:0;}
+	h1{margin-top: 0!important; padding-top:0!important;}
+	.form-group{margin-bottom:10px!important;}
+}
diff --git a/public/css/quicktips.css b/public/css/quicktips.css
index 3cda80cd19d82bda9fda26b5708acdb78b6de941..4fdce19610bb766a73ef526cecf1b24fac9c0bb6 100644
--- a/public/css/quicktips.css
+++ b/public/css/quicktips.css
@@ -16,10 +16,6 @@
 	margin-bottom:0;
 }
 
-.quicktip a {
-	color: #00F;
-}
-
 .qtheader {
 	font-family: verdana,arial,helvetica,sans-serif;
 }
@@ -41,3 +37,13 @@
 .author {
 	float: right !important;
 }
+
+.quicktip h1 {
+	font-size: 22px;
+	margin-top: 0px;
+}
+
+.quicktip.aufruf {
+        border-left: 3px solid #FF4000;
+        color: #FF4000;
+}
diff --git a/public/css/style.css b/public/css/style.css
index e1ac2b8f72c5bc7db238fb94333486710be44a26..0a7aa04b0aca78801f491b25846bfe15ec556eff 100644
--- a/public/css/style.css
+++ b/public/css/style.css
@@ -88,7 +88,7 @@ section#moreInformation {
 
 body > div {
     background-color: transparent;
-    padding-top: 10%;
+    padding-top: 70px;
 }
 
 #color-chooser li {
@@ -343,9 +343,15 @@ header ul li{
 .mg-panel {
 	
     margin: 0 auto;
+    margin-top:7%;
     padding: 10px 20px;
     margin-bottom: 0;
     background-color: white;
 	
     -webkit-box-shadow: 1px 1px 3px 1px rgba(0,0,0,0.3); -moz-box-shadow: 1px 1px 3px 1px rgba(0,0,0,0.3); box-shadow: 1px 1px 3px 1px rgba(0,0,0,0.3);
-}
\ No newline at end of file
+}
+
+
+
+
+
diff --git a/public/css/styleResultPage.css b/public/css/styleResultPage.css
index 86884153cb57deecacfa36413f6dee3fe9c7c5b7..65fb3116e89ff8dbbf432d2895abb1015723278a 100644
--- a/public/css/styleResultPage.css
+++ b/public/css/styleResultPage.css
@@ -300,6 +300,7 @@ a:hover
 }
 .result:not(.ad) .link > span{
 	white-space:nowrap;
+	margin: 0 5px;
 }
 .result:not(.ad) .link  .options{
 	color: #333;
@@ -312,7 +313,7 @@ a:hover
 	color: #333;
 	display:block;
 	padding-left:5px;
-	padding-right:10px;
+	padding-right:5px;
 }
 .result:not(.ad) .link  .options > a > span{
 	font-size:10px;
diff --git a/public/img/aufruf.png b/public/img/aufruf.png
new file mode 100644
index 0000000000000000000000000000000000000000..fc0443ff91146f0368ba0265bf40e7a9d60e3649
Binary files /dev/null and b/public/img/aufruf.png differ
diff --git a/public/js/scriptResultPage.js b/public/js/scriptResultPage.js
index 9af84b26388b5de2261afaf7827ec0f3b31731c6..bae64e8e5cedae5ab68f5bd28072716fe61d8ddf 100644
--- a/public/js/scriptResultPage.js
+++ b/public/js/scriptResultPage.js
@@ -1,18 +1,7 @@
 $(document).ready(function(){
-	if( top != self ){
-        	postSize($(document).height());
-	}
 	getDocumentReadyForUse();
 });
 
-function postSize(height){
-	var target = parent.postMessage ? parent : (parent.document.postMessage ? parent.document : undefined);
-
-    	if(typeof target != "undefined" && document.body.scrollHeight){
-        	target.postMessage(height, "*");
-        }
-}
-
 function tabs(){
 	//return;
 	$("#foki  a").each(function(){
@@ -54,7 +43,7 @@ function theme(){
 				localStorage.removeItem("theme");
 			}else{
 				theme = theme.split(",");
-				$($("head link")[2]).attr("href", "/css/theme.css.php?r=" + theme[0] + "&g=" + theme[1] + "&b=" + theme[2] + "&a=" + theme[3]);
+				$("#theme").attr("href", "/css/theme.css.php?r=" + theme[0] + "&g=" + theme[1] + "&b=" + theme[2] + "&a=" + theme[3]);
 			}
 		}
 	}
diff --git a/public/js/settings.js b/public/js/settings.js
index eb7c6f1f3bdbda14cdc32ccc00ced9c3586beafb..05497e3db60d236833aa2dbfb93bc68910f49394 100644
--- a/public/js/settings.js
+++ b/public/js/settings.js
@@ -14,11 +14,11 @@ $(document).ready(function(){
 			$("select").each(function(el){
 				localStorage.setItem($(this).attr("name"), $(this).val());
 			});
-			document.location.href="../";
+			document.location.href=$("#save").attr("data-href");
 		});
 		$("#reset").click(function(){
 			resetOptions();
-			document.location.href="../";
+			document.location.href=$("#save").attr("data-href");
 		});
 	}
 	$(".checker").click(function(){
@@ -33,7 +33,7 @@ $(document).ready(function(){
 		alert("Auf der folgenden Startseite sind Ihre Einstellungen nun einmalig gespeichert. Nach Ihrer ersten Suche sind diese wieder verloren. Wenn Sie diese speichern möchten, können Sie sich allerdings ein Lesezeichnen einrichten.");
 	});
 	$("#plugin").click(function(){
-		$("form").attr('action', '/#plugin-modal');
+		$("form").attr('action', $("#save").attr("data-href") + '#plugin-modal');
 		alert("Ihr Browserplugin mit den persönlichen Sucheinstellungen wurde generiert. Folgen Sie bitte der Anleitung auf der folgenden Seite um es zu installieren. Beachten Sie: Zuvor sollten Sie ein eventuell bereits installiertes MetaGer-Plugin entfernen.");
 	});
 });
diff --git a/public/robots.txt b/public/robots.txt
index c0d9dfcad6d8b125c3c274a3a1c6894b5bd18ea8..5db6fc29c14eb966235857a9788509356aeaf0ee 100644
--- a/public/robots.txt
+++ b/public/robots.txt
@@ -1,6 +1,10 @@
 User-agent: *
 Disallow: /klassik/meta/
+Disallow: /en/klassik/meta/
 Disallow: /meta/
+Disallow: /en/meta/
+Disallow: /qt
+Disallow: /en/qt
 Disallow: /domains/
 Disallow: /metager3/
 Disallow: /alpha/
\ No newline at end of file
diff --git a/readme.md b/readme.md
index 5f115efeae8c0d45435d60c6876b89d94d72a689..71413eb6d61a7452d6c8702118c02839caf60d09 100644
--- a/readme.md
+++ b/readme.md
@@ -2,11 +2,14 @@
 
 MetaGer ist eine datenschutzfreundliche und freie Meta-Suchmaschine.
 
-## Live-Version
-Hinweis: Diese Open-Source Version von MetaGer ist noch nicht bereit, auf unserem Live-Server (https://metager.de) verwendet zu werden.
-Während wir daran arbeiten sie soweit fertig zu stellen, dass alles exakt so funktioniert, wie in der Live-Version auch, sorgt
-ein Mechanismus für den automatischen Deploy dafür, dass zu jedem beliebigen Zeitpunkt der Master-Branch in seiner aktuellen Version
-über die Adresse https://metager3.de ( Entwicklungsserver ) erreichbar ist.
+## Abhängigkeiten
+* composer (https://getcomposer.org/)
+* php7.0
+  * php7.0-mbstring
+  * php7.0-dom
+* sqlite3
+* redis-server
+* Das Perl-Paket: Lingua::Identify (http://search.cpan.org/~ambs/Lingua-Identify-0.56/lib/Lingua/Identify.pm)
 
 ## MetaGer zu langsam?
 Damit MetaGer so schnell wird, wie auf unserem Live-Server, erfordert es ein wenig Konfigurationsarbeit. Der Grund, warum die Version nach dem Checkout langsamer als normal ist, ist der, dass die eingestellten Suchmaschinen im Standard synchron abgefragt werden.
@@ -28,7 +31,7 @@ Es steht dir jedoch frei, ein Ticket zu eröffnen.
 ## Sicherheitslücken
 
 Falls du eine Sicherheitslücke findest oder dir etwas unsicher vorkommt,
-zögere biite nicht ein Ticket zu schreiben oder eine Mail an [office@suma-ev.de](mailto:office@suma-ev.de) zu senden.
+zögere bitte nicht ein Ticket zu schreiben oder eine Mail an [office@suma-ev.de](mailto:office@suma-ev.de) zu senden.
 
 ## Lizenzen
 
diff --git a/resources/lang/de/index.php b/resources/lang/de/index.php
index 8996e9c6e25f09b00caf4dc5dc4fb1d1da1236b2..a2d6b3834c08a13bf5dc3bcbc8e06e6c3cfb6227 100644
--- a/resources/lang/de/index.php
+++ b/resources/lang/de/index.php
@@ -16,9 +16,9 @@ return [
 
 	'sponsors.head.1'		=>	'Weitere Informationen',
 	'sponsors.head.2'		=>	'Sponsoren',
-	'sponsors.woxikon'		=>	'Woxikon: Nach Wörtern & Synonymen suchen',
-	'sponsors.gutscheine'	=>	'Aktuelle Gutscheine auf Gutschein-Magazin.de',
-	'sponsors.kredite'		=>	'Günstige Kredite auf FINANZCHECK.de vergleichen ',
+	'sponsors.woxikon'		=>	'<a href="http://www.woxikon.de/" class="mutelink" target="_blank">Woxikon: Nach Wörtern & Synonymen suchen</a>',
+	'sponsors.gutscheine'	=>	'<a href="http://www.gutschein-magazin.de/" class="mutelink" target="_blank">Aktuelle Gutscheine auf Gutschein-Magazin.de</a>',
+	'sponsors.kredite'		=>	'<a href="https://www.finanzcheck.de/" class="mutelink" target="_blank">Günstige Kredite auf FINANZCHECK.de vergleichen ',
 
 	'about.title'			=>	'Ãœber uns',
 	'about.1.1'				=>	'Datenschutz & Privatsphäre',
diff --git a/resources/lang/de/kontakt.php b/resources/lang/de/kontakt.php
index d8d3b40581a7025ec460c219dbe04c8b91ef621b..e91717bb1c3710532d02b3145d4dac422bb7617c 100644
--- a/resources/lang/de/kontakt.php
+++ b/resources/lang/de/kontakt.php
@@ -3,7 +3,7 @@
 return [
 	'headline.1' => 'Kontakt',
 	'headline.2' => 'Forum',
-	'headline.3' => 'Bitte stellen Sie Ihre Frage zuerst in unserem',
+	'headline.3' => 'Bitte stellen Sie technische Fragen zuerst in unserem <a href="http://forum.suma-ev.de/" target="_blank">Forum</a>',
 	'headline.4' => 'So können auch andere von einer Antwort profitieren.',
 	
 	'form.1' => 'Sicheres Kontakformular',
@@ -18,8 +18,8 @@ Dafür wird Javascript benötigt.',
 	'form.8' => 'Falls Sie Javascript deaktiviert haben, wird Ihre Eingabe unverschlüsselt gesendet.',
 	'form.9' => 'Verschlüsseln und senden',
 
-	'mail.1' => 'Per E-Mail',
-	'mail.2' => 'Sie können uns auch direkt eine e-mail an die folgende Adresse schicken:',
+	'mail.1' => 'Per Email',
+	'mail.2' => 'Sie können uns auch direkt eine email an die folgende Adresse schicken:',
 	'mail.3' => 'Falls Sie diese verschlüsseln wollen, finden Sie nachfolgend unseren öffentlichen OpenPGP-Schlüssel:',
 
 	'letter.1' => 'Per Brief-Post',
diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php
index edc340f7759df77f72a27940dd280997920ae379..01cc55cc5506c822641bc86302aac6f121d23d02 100644
--- a/resources/lang/de/settings.php
+++ b/resources/lang/de/settings.php
@@ -12,6 +12,7 @@ return [
 	'allgemein.4' => 'Sprache ausw&auml;hlen',
 	'allgemein.5' => 'Alle Sprachen',
 	'allgemein.6' => 'Deutsch',
+	'allgemein.6_1' => 'Englisch',
 	'allgemein.7' => 'Anzahl der Ergebnisse pro Seite',
 	'allgemein.8' => 'Alle',
 	'allgemein.9' => 'Maximale Suchzeit',
@@ -38,4 +39,5 @@ return [
 	'speichern.1'		=>	'Startseite für einmalige Nutzung generieren',
 	'speichern.2'		=>	'Einstellungen dauerhaft speichern',
 	'speichern.3'		=>	'Plugin mit diesen Einstellungen generieren',
+	'speichern.4'		=>	'Einstellungen zurücksetzen',
 ];
\ No newline at end of file
diff --git a/resources/lang/de/spenden.php b/resources/lang/de/spenden.php
index 59aeb85ac4a262733a4975518484f1c76c48ff41..9552650ed55a9deeb6df93b319ddf4810890f312 100644
--- a/resources/lang/de/spenden.php
+++ b/resources/lang/de/spenden.php
@@ -12,12 +12,12 @@ BIC: GENODEM1GLS
 GLS Gemeinschaftsbank, Bochum',
 	'bankinfo.3' => 'Falls Sie eine Spendenbescheinigung w&uuml;nschen, geben Sie auf dem &Uuml;berweisungsformular bitte Ihre vollst&auml;ndige Adresse, und (sofern vorhanden) auch Ihre E-Mail Adresse an.',
 
-	'logos.1' => 'Bequem mit Paypal',
-	'logos.2' => 'oder Bitcoins',
+	'logos.1' => 'Bequem mit Paypal,<br>dort auch per Kreditkarte ohne Registrierung,',
+	'logos.2' => 'oder per Bitcoin, <br>sicher und pseudonym.',
 
 	'lastschrift.1' => 'Spenden mittels elektronischem Lastschriftverfahren:',
 	'lastschrift.2' => 'Tragen Sie hier Ihre Kontodaten sowie den gew&uuml;nschten Betrag ein. Wir buchen dann entsprechend von Ihrem Konto ab.',
-	'lastschrift.3' => 'Bitte geben Sie ihren Namen ein:',
+	'lastschrift.3' => 'Bitte geben Sie Ihren Namen ein:',
 	'lastschrift.3.placeholder' => 'Name',
 	'lastschrift.4' => 'Ihre E-Mail Adresse:',
 	'lastschrift.5' => 'Ihre Telefonnummer, um Ihre Spende ggf. durch einen R&uuml;ckruf zu verifizieren:',
@@ -45,4 +45,4 @@ Das k&ouml;nnen Sie mit einer Spende auf dieser Seite tun. Oder, wenn Sie freie
 	'about.4.3' => 'und klicken dort unterhalb der Suchwort-Eingabebox auf',
 	'about.4.4' => 'Machen Sie Ihre Eink&auml;ufe bei MetaGer-F&ouml;rdershops - klicken Sie hier!',
 	'about.4.5' => 'Dieser Klick f&uuml;hrt Sie in die Shop-Auswahl des Boost-Projektes. Dort suchen Sie sich Ihren Shop aus und machen wie gewohnt Ihren Einkauf. Das ist alles. Wenn genug Menschen dies tun, dann brauchen wir keine Werbung mehr. Nur zwei Mausklicks f&uuml;r Sie - f&uuml;r alle eine Chance f&uuml;r den freien Wissenszugang in der digitalen Welt.'
-];
\ No newline at end of file
+];
diff --git a/resources/lang/de/staticPages.php b/resources/lang/de/staticPages.php
index 495558211891501c8ba7eb9d29b73b232eed1e26..532979e82de3035aa2319c43ef6e3dd8eb556a38 100644
--- a/resources/lang/de/staticPages.php
+++ b/resources/lang/de/staticPages.php
@@ -24,5 +24,8 @@ return [
 	'navigationToggle'	=> 'Navigation anzeigen',
 	
 	'sumaev.1'			=>	'MetaGer wird entwickelt und betrieben vom ',
-	'sumaev.2'			=>	'SUMA-EV - Verein für freien Wissenszugang.'
+	'sumaev.2'			=>	'SUMA-EV - Verein für freien Wissenszugang.',
+	'meta.Description'	=>	'Sicher suchen und finden unter Wahrung der Privatsphäre. Das digitale Wissen der Welt muss ohne Bevormundung durch Staaten oder Konzerne frei zugänglich sein und bleiben.',
+	'meta.Keywords'		=>	'Internetsuche, privatsphäre, privacy, Suchmaschine, Datenschutz, Anonproxy, anonym suchen, Bildersuche, Suchmaschine, anonym, MetaGer, metager, metager.de',
+	'meta.language'		=>	'de'
 ];
\ No newline at end of file
diff --git a/resources/lang/de/titles.php b/resources/lang/de/titles.php
index c2cd27479bbf39b32d2db96ba61b85955493ddc2..df4e778293218931ab5480806edb0210ccf08a28 100644
--- a/resources/lang/de/titles.php
+++ b/resources/lang/de/titles.php
@@ -13,4 +13,5 @@ return [
 	'settings' => 'Einstellungen',
 	'websearch' => 'Websuche-Widget - MetaGer',
 	'sitesearch' => 'Sitesearch-Widget - MetaGer',
+	'beitritt'	=>	'SUMA-EV Beitrittsformular',
 ];
\ No newline at end of file
diff --git a/resources/lang/de/websearch.php b/resources/lang/de/websearch.php
index 0834a7d25aecffac131ccfab3df919bdd7aeb777..73378e91fffec4b1e029c21616da92c0632e2abb 100644
--- a/resources/lang/de/websearch.php
+++ b/resources/lang/de/websearch.php
@@ -9,4 +9,7 @@ return [
 	'head.6' => 'all',
 	'head.7' => 'Code',
 	'head.8' => 'Suchen',
-];
\ No newline at end of file
+	'head.copy' => 'Kopieren',
+	'alert.success' => 'Kopieren erfolgreich!',
+	'alert.failure' => 'Kopieren fehlgeschlagen!'
+];
diff --git a/resources/lang/en/index.php b/resources/lang/en/index.php
index 81adc0226ab1ebc7ecd832a8de7e2f8d1f1ac414..00f7294f6e94dd11e92d07f5608fcbe3b13c9880 100644
--- a/resources/lang/en/index.php
+++ b/resources/lang/en/index.php
@@ -13,12 +13,12 @@ return [
 	'plugin'				=>	'Add the MetaGer-Plugin',
 
 	'sponsors.head.1'		=>	'Further Information',
-	'sponsors.head.2'		=>	'',
-	'sponsors.woxikon'		=>	'',
-	'sponsors.gutscheine'	=>	'',
-	'sponsors.kredite'		=>	'',
+	'sponsors.head.2'		=>	'Sponsored Links',
+	'sponsors.woxikon'		=>	'<a href="/en/kontakt" class="mutelink" >This could be your link</a>',
+	'sponsors.gutscheine'	=>	'<a href="/en/kontakt" class="mutelink" >Please contact us</a>',
+	'sponsors.kredite'		=>	'<a href="/en/kontakt" class="mutelink">https://metager.de/kontakt</a>',
 
-	'about.title'			=>	'About us',
+	'about.title'			=>	'About Us',
 	'about.1.1'				=>	'Data protection & privacy',
 	'about.1.2'				=>	'  are simple and natural for us.',
 	'about.2.1'				=>	'We do not work for profit. We are a ',
diff --git a/resources/lang/en/kontakt.php b/resources/lang/en/kontakt.php
index 652649b15853eee4a0a631bdc77697d3bba92d1b..4036752067539ba9904a7aebf6f41ebdca17a47c 100644
--- a/resources/lang/en/kontakt.php
+++ b/resources/lang/en/kontakt.php
@@ -3,11 +3,11 @@
 return [
 	'headline.1' => 'Contact',
 	'headline.2' => 'Forum',
-	'headline.3' => 'Please ask your question first at our',
-	'headline.4' => 'This way others can benefit from an answer.',
+	'headline.3' => 'If you have a technical question, ask it at our <a href="http://forum.suma-ev.de/" target="_blank">board</a> first, please',
+	'headline.4' => 'By this way others can benefit from an answer.',
 	
 	'form.1' => 'Secure Contact Form',
-	'form.2' => 'Via this form you can contact us encrypted',
+	'form.2' => 'Via this form you can contact us by encrypted',
 	'form.3' => '.',
 	'form.4' => 'Please note that due to a lot of requests we are personnel-wise not able to answer everything promptly.',
 	'form.5' => 'If you do not enter an email-adress, we can not answer you.',
@@ -17,9 +17,9 @@ We use Javascript for this.',
 	'form.8' => 'If you have Javascript disabled, your message will be send unencrypted.',
 	'form.9' => 'Encrypt and send',
 
-	'mail.1' => 'By E-Mail',
-	'mail.2' => 'You can also e-mail us directly at:',
-	'mail.3' => 'If you want to encrypt your e-mail aswell, the following is our public OpenPGP-Key:',
+	'mail.1' => 'By Email',
+	'mail.2' => 'You can also email us directly at:',
+	'mail.3' => 'If you want to encrypt your email you can use our following public OpenPGP-Key:',
 
 	'letter.1' => 'By Letter Mail',
 	'letter.2' => 'We prefer digital contact. However, if you consider it neccessary to contact us postally, you can mail us at:',
diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php
index 1f78bed916cb448850a6b07f41d41e5c44dd1f93..52efb9efc11f8087621f01ce9eb2fc02e7a2bac2 100644
--- a/resources/lang/en/settings.php
+++ b/resources/lang/en/settings.php
@@ -12,6 +12,7 @@ return [
 	'allgemein.4' => 'select language',
 	'allgemein.5' => 'all languages',
 	'allgemein.6' => 'german',
+	'allgemein.6_1' => 'english',
 	'allgemein.7' => 'number of results per page',
 	'allgemein.8' => 'all',
 	'allgemein.9' => 'maximum search time',
@@ -38,4 +39,5 @@ return [
 	'speichern.1'		=>	'Create a startpage for one-time use',
 	'speichern.2'		=>	'Save settings permanently',
 	'speichern.3'		=>	'Generate plugin with these settings',
+	'speichern.4'		=>	'Reset saved settings',
 ];
diff --git a/resources/lang/en/spenden.php b/resources/lang/en/spenden.php
index a86c57c5238b72382ed3478d1f8e6f5e0f1d5b9a..05aacfbe0908d09daf79f500391db3ff02b5a5d5 100644
--- a/resources/lang/en/spenden.php
+++ b/resources/lang/en/spenden.php
@@ -14,7 +14,7 @@ GLS Gemeinschaftsbank, Bochum',
 please specify your full adress and (if available) 
 your E-Mail adress on the money transfer form.',
 
-	'logos.1' => 'Comfortably with Paypal',
+	'logos.1' => 'Comfortably with Paypal<br>Via Paypal by credit card too (without PayPal registration),',
 	'logos.2' => 'or Bitcoins',
 
 	'lastschrift.1' => 'Donate by wire transfer',
diff --git a/resources/lang/en/staticPages.php b/resources/lang/en/staticPages.php
index 19035128835529338c22eab9bed36f38c20a289c..8b81c7702fb16e25a9f238c1bb8dba6d565edf3a 100644
--- a/resources/lang/en/staticPages.php
+++ b/resources/lang/en/staticPages.php
@@ -8,7 +8,7 @@ return [
 	'nav5' => 'Contact',
 	'nav6' => 'Team',
 	'nav7' => 'About us',
-	'nav8' => 'Site Notice',
+	'nav8' => 'Imprint',
 	'nav9' => 'Help',
 	'nav10' => 'Widget',
 	'nav11' => 'Associator',
@@ -24,5 +24,8 @@ return [
 	'navigationToggle'	=> 'show navigation',
 
 	'sumaev.1'			=>	'MetaGer is developed and run by ',
-	'sumaev.2'			=>	'SUMA-EV - Association for Free Access to Knowledge.'
+	'sumaev.2'			=>	'SUMA-EV - Association for Free Access to Knowledge.',
+	'meta.Description'	=>	'Search safely while having your privacy respected. The digital knowledge of the world must be freely accessible without paternalism and abide by states or corporations.',
+	'meta.Keywords'		=>	'Internet Search, privacy, searchengine, data protection, Anonproxy, anonymous proxy, search anonymous, image search, anonymous, MetaGer, metager, metager.de, metager.net',
+	'meta.language'		=>	'en'
 ];
diff --git a/resources/lang/en/websearch.php b/resources/lang/en/websearch.php
index f705d97afaaa5fdbf562ebf83fb321a1043e07ae..0ae97b8376b8d33d65b0c50086875a17ddee3616 100644
--- a/resources/lang/en/websearch.php
+++ b/resources/lang/en/websearch.php
@@ -9,4 +9,7 @@ return [
 	'head.6' => 'en',
 	'head.7' => 'Code',
 	'head.8' => 'Search',
-];
\ No newline at end of file
+	'head.copy' => 'Copy',
+	'alert.success' => 'Copied!',
+        'alert.failure' => 'Something went wrong!'
+];
diff --git a/resources/views/admin/count.blade.php b/resources/views/admin/count.blade.php
index ac1b6db96e0c42ef082171c63a2d111d9115c805..3867b35be918129e2c889754be3436dba1670c02 100644
--- a/resources/views/admin/count.blade.php
+++ b/resources/views/admin/count.blade.php
@@ -4,14 +4,33 @@
 
 @section('content')
 <h2>{{ exec("uptime") }}</h2>
-<h3>Heute haben wir bis jetzt => <span class="text-info">{{ $today }}</span> Abfragen</h3>
-<h3>Gestern zur gleichen Zeit <span class="text-info">{{ $oldLogs[1]['sameTime'] }}</span> - insgesamt <span class="text-danger">{{ $oldLogs[1]['insgesamt'] }}</span></h3>
-<h3>Vorgestern zur gleichen Zeit <span class="text-info">{{ $oldLogs[2]['sameTime'] }}</span> - insgesamt <span class="text-danger">{{ $oldLogs[2]['insgesamt'] }}</span></h3>
-<h3>Vorvorgestern zur gleichen Zeit <span class="text-info">{{ $oldLogs[3]['sameTime'] }}</span> - insgesamt <span class="text-danger">{{ $oldLogs[3]['insgesamt'] }}</span></h3>
-<ul class="list-unstyled" style="text-align:left;">
-	@foreach($median as $time => $value)
-	<li><h4>Mittelwert der letzten {{ $time }} Tage: <span class="text-danger">{{ number_format($value, 0, ",", ".") }}</span> Abfragen pro Tag</h4></li>
+<table class="table table-striped">
+	<caption>Daten der letzten Tage</caption>
+	<tr>
+		<th>Datum</th>
+		<th>Suchanfragen zur gleichen Zeit</th>
+		<th>Suchanfragen insgesamt</th>
+		<th>Mittelwert (bis zum jeweiligen Tag zurück)</th>
+	</tr>
+	@if( isset($today) )
+	<tr>
+		<td>{{ date("D, d M y", mktime(date("H"),date("i"), date("s"), date("m"), date("d"), date("Y"))) }}</td>
+		<td>{{ $today }}</td>
+		<td>???</td>
+		<td>???</td>
+	</tr>
+	@endif
+	@foreach($oldLogs as $key => $value)
+	<tr>
+		<td>{{ date("D, d M y", mktime(date("H"),date("i"), date("s"), date("m"), date("d")-$key, date("Y"))) }}</td>
+		<td>{{ $value['sameTime'] }}</td>
+		<td>{{ $value['insgesamt'] }}</td>
+		<td>{{ $value['median'] }}</td>
+	</tr>
 	@endforeach
-</ul>
+</table>
+
+@if( isset($rekordDate) && isset($rekordTagSameTime) && isset($rekordCount) )
 <h3>Rekord am {{ $rekordDate }} zur gleichen Zeit <span class="text-info">{{ $rekordTagSameTime }}</span> - insgesamt <span class="text-danger">{{ $rekordCount }}</span></h3>
+@endif
 @endsection
\ No newline at end of file
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index f6ef4e0a1ad85b732bc2f3e1a1a7006eafe6f2bb..3877443023a4355a6b2f5efe6b27556c6ed73b1f 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -166,7 +166,10 @@
                     @foreach ($focusPages as $fp)
                       <input type="hidden" name={{ $fp }} value="on">
                     @endforeach
-                  @else <input type="hidden" name="lang" value="all">
+                  @elseif( !App::isLocale('de') )
+                  <input type="hidden" name="lang" value="{{ App::getLocale() }}">
+                  @else
+                  <input type="hidden" name="lang" value="all">
                   @endif
                   <div class="input-group-addon">
                     <button type="submit">
@@ -201,25 +204,25 @@
               <h2>{{ trans('index.sponsors.head.2') }}</h2>
               <ul>
                 <li>
-                  <a href="http://www.woxikon.de/" class="mutelink" target="_blank">{{ trans('index.sponsors.woxikon') }}</a>
+                  {!! trans('index.sponsors.woxikon') !!}</a>
                 </li>
                 <li>
-                  <a href="http://www.gutschein-magazin.de/" class="mutelink" target="_blank">{{ trans('index.sponsors.gutscheine') }}</a>
+                  {!! trans('index.sponsors.gutscheine') !!}
                 </li>
                 <li>
-                  <a href="https://www.finanzcheck.de/" class="mutelink" target="_blank">{{ trans('index.sponsors.kredite') }}</a>
+                  {!! trans('index.sponsors.kredite') !!}
                 </li>
               </ul>
             </div>
             <div class="col-md-6 col-sm-12">
               <h2>
-                <a href="/about/">{{ trans('index.about.title') }}</a>
+                <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "about") }}">{{ trans('index.about.title') }}</a>
               </h2>
               <ul>
                 <li>
-                  <a href="/datenschutz/">{{ trans('index.about.1.1') }}</a>{{ trans('index.about.1.2') }}
+                  <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "datenschutz") }}">{{ trans('index.about.1.1') }}</a>{{ trans('index.about.1.2') }}
                 </li>
-                <li>{{ trans('index.about.2.1') }}<a href="/spende/">{{ trans('index.about.2.2') }}</a>
+                <li>{{ trans('index.about.2.1') }}<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "spende") }}">{{ trans('index.about.2.2') }}</a>
                 </li>
               </ul>
             </div>
diff --git a/resources/views/kontakt/kontakt.blade.php b/resources/views/kontakt/kontakt.blade.php
index 1ffcc0a2a9b4ee22f7f70480cf247408c182e1bc..a5650ff4cd2cca652b2016d774febfdd6db0aa53 100644
--- a/resources/views/kontakt/kontakt.blade.php
+++ b/resources/views/kontakt/kontakt.blade.php
@@ -5,7 +5,7 @@
 @section('content')
 <h1>{{ trans('kontakt.headline.1') }}</h1>
 <h2>{{ trans('kontakt.headline.2') }}</h2>
-<p><span class="bold">{{ trans('kontakt.headline.3') }} <a href="http://forum.suma-ev.de/" target="_blank">Forum.</a></span>
+<p><span class="bold">{!! trans('kontakt.headline.3') !!}</span>
 <span>{{ trans('kontakt.headline.4') }}</span></p>
 <h2>{{ trans('kontakt.form.1') }}</h2>
 <p>{{ trans('kontakt.form.2') }} <a href="mailto:office@suma-ev.de">email</a> {{ trans('kontakt.form.3') }}</p>
diff --git a/resources/views/kontakt/mail.blade.php b/resources/views/kontakt/mail.blade.php
index 8e2c7fdac7c6d5dd9f85621a35ceee472bb8d945..880b5fabf3851955d7a783efed70ee0c85082566 100644
--- a/resources/views/kontakt/mail.blade.php
+++ b/resources/views/kontakt/mail.blade.php
@@ -1 +1 @@
-{{ $messageText }}
\ No newline at end of file
+{!! $messageText !!}
\ No newline at end of file
diff --git a/resources/views/layouts/researchandtabs.blade.php b/resources/views/layouts/researchandtabs.blade.php
index 2ee981228f3eade5de98c12478c2672d48079357..d1955939fca08c7b1e06300e22c8726d41634680 100644
--- a/resources/views/layouts/researchandtabs.blade.php
+++ b/resources/views/layouts/researchandtabs.blade.php
@@ -31,6 +31,7 @@
                 </ul>
             </nav>
         </header>
+        
         <ul class="nav nav-tabs" id="foki" role="tablist">
         @if( $metager->getFokus() === "web" )
         <li id="webTabSelector" role="presentation" data-loaded="1" class="active">
diff --git a/resources/views/layouts/resultPage.blade.php b/resources/views/layouts/resultPage.blade.php
index 581c107c390b3d8c049bd542cdc09d2037e3d948..11979c10b694127bb65d56d407a561ba15798498 100644
--- a/resources/views/layouts/resultPage.blade.php
+++ b/resources/views/layouts/resultPage.blade.php
@@ -8,20 +8,21 @@
 	@if( isset($mobile) && $mobile )
 		<link href="/css/styleResultPageMobile.css" rel="stylesheet" />
 	@endif
-	<link href="/css/theme.css.php" rel="stylesheet" />
+	<link id="theme" href="/css/theme.css.php" rel="stylesheet" />
 	<link href="/favicon.ico" rel="icon" type="image/x-icon" />
 	<link href="/favicon.ico" rel="shortcut icon" type="image/x-icon" />
 	<meta content="width=device-width, initial-scale=1.0, user-scalable=no" name="viewport" />
 	<meta content="{{ getmypid() }}" name="p" />
 	<meta content="{{ $eingabe }}" name="q" />
 	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+	<meta name="referrer" content="no-referrer" />
 </head>
 <body id="resultBody">
 	@if( !isset($suspendheader) )
 		@include('layouts.researchandtabs')
 	@else
 		<div class="tab-content container-fluid">
-	@yield('results')
+		@yield('results')
 		</div>
 	@endif
 	<footer>
diff --git a/resources/views/layouts/staticPages.blade.php b/resources/views/layouts/staticPages.blade.php
index fb26fb53633247c45c6c65e38bacfb53c1675a14..35f58fbc98cb364afbe3ccdddb2a7455325be5d6 100644
--- a/resources/views/layouts/staticPages.blade.php
+++ b/resources/views/layouts/staticPages.blade.php
@@ -2,9 +2,11 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 	<head>
 		<title>@yield('title')</title>
+		<!-- TradeDoubler site verification 2866738 -->
 		<meta charset="utf-8" />
-		<meta name="description" content="Sicher suchen und finden unter Wahrung der Privatsph&auml;re. Das digitale Wissen der Welt muss ohne Bevormundung durch Staaten oder Konzerne frei zug&auml;nglich sein und bleiben." />
-		<meta name="keywords" content="Internetsuche, privatsph&auml;re, privacy, Suchmaschine, Datenschutz, Anonproxy, anonym suchen, Bildersuche, Suchmaschine, anonym, MetaGer, metager, metager.de" />
+		<meta name="description" content="{!! trans('staticPages.meta.Description') !!}" />
+		<meta name="keywords" content="{!! trans('staticPages.meta.Keywords') !!}" />
+		<meta http-equiv=”language” content="{!! trans('staticPages.meta.language') !!}" />
 		<meta name="page-topic" content="Dienstleistung" />
 		<meta name="robots" content="index,follow" />
 		<meta name="revisit-after" content="7 days" />
@@ -23,7 +25,7 @@
 	<body>
 		<header>
 			<nav class="navbar navbar-default">
-				<div class="container">
+				<div class="container-fluid">
 					<div class="navbar-header">
 						<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false">
 							<span class="sr-only">{{ trans('staticPages.navigationToggle') }}</span>
@@ -31,10 +33,9 @@
 							<span class="icon-bar"></span>
 							<span class="icon-bar"></span>
 						</button>
-					</div>
-					<div>
 						@yield('homeIcon')
 					</div>
+					
 					<div class="collapse navbar-collapse" id="navbar-collapse">
 						<ul class="nav navbar-nav navbar-right">
 							<li @if ( !isset($navbarFocus) || $navbarFocus === 'suche') class="active" @endif >
@@ -72,21 +73,28 @@
 									<li><a href="http://forum.suma-ev.de/viewtopic.php?f=3&amp;t=43" target="_blank">{{ trans('staticPages.nav14') }}</a></li>
 								</ul>
 							</li>
-							<!--<li class="dropdown">
+							<li class="dropdown">
 								<a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" id="navigationSprache">{{ trans('staticPages.nav19') }}
 								<span class="caret"></span></a>
 								<ul class="dropdown-menu">
 									@foreach(LaravelLocalization::getSupportedLocales() as $localeCode => $properties)
-										<li><a rel="alternate" hreflang="{{$localeCode}}" href="{{LaravelLocalization::getLocalizedURL($localeCode) }}">{{{ $properties['native'] }}}</a></li>
+										<li><a rel="alternate" hreflang="{{$localeCode}}" href="{{LaravelLocalization::getLocalizedURL($localeCode) }}">{{{ $properties['native'] }}} @if($properties['native'] !== "Deutsch") (Beta) @endif</a></li>
 									@endforeach
 								</ul>
-							</li>-->
+							</li>
 						</ul>
 					</div>
 				</div>
 			</nav>
 		</header>
 		<div class="wrapper">
+			@if( App::isLocale('de') )
+			<div class="mg-panel container" id="spendenaufruf" style="margin-bottom:-6%;max-height:126px;text-align:center;padding:0px;margin-top:0px">
+					<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spendenaufruf") }}">
+					<img src="/img/aufruf.png" style="max-width:100%;max-height:126px;">
+					</a>
+			</div>
+			@endif
 			<main class="mg-panel container">
 				@if (isset($success))
 					<div class="alert alert-success" role="alert">{{ $success }}</div>
@@ -102,7 +110,7 @@
 					<li><a href="https://www.suma-ev.de/" target="_blank">
 						<img src="/img/suma_ev_logo-m1-greyscale.png" alt="SUMA-EV Logo"></a></li>
 					<li id="info">
-						<a href="/kontakt/">{{ trans('staticPages.nav5') }}</a> - <a href="/impressum/">{{ trans('staticPages.nav8') }}</a>
+						<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "kontakt") }}">{{ trans('staticPages.nav5') }}</a> - <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "impressum") }}">{{ trans('staticPages.nav8') }}</a>
 						{{ trans('staticPages.sumaev.1') }}<a href="https://www.suma-ev.de/" target="_blank" >{{ trans('staticPages.sumaev.2') }}</a></li>
 					<li><a href="https://www.uni-hannover.de/" target="_blank">
 						<img src="/img/luh_metager.png" alt="LUH Logo"></a></li>
diff --git a/resources/views/metager3.blade.php b/resources/views/metager3.blade.php
index b169b36fdd325ffb7a80a91543383df2f57d8e96..a6365fd7e3f0fd7c8606765f2478dee15cab9091 100644
--- a/resources/views/metager3.blade.php
+++ b/resources/views/metager3.blade.php
@@ -23,6 +23,13 @@
 		<div class="col-xs-12 col-md-8 resultContainer">
 	@else
 		<div class="col-xs-12 col-md-12 resultContainer">
+	@endif
+	@if( !$metager->validated && App::isLocale('de') )
+	<div class="mg-panel container" style="margin-bottom:20px;max-height:90px;text-align:left; max-width:100%; padding:0px;margin-top:0px">
+		<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spendenaufruf") }}" target="_blank">
+			<img src="/img/aufruf.png" style="max-width:100%;max-height:90px;">
+		</a>
+	</div>
 	@endif
 			{{-- 3-Mal Werbung --}}
 			@for($i = 0; $i <= 2; $i++)
diff --git a/resources/views/metager3bilder.blade.php b/resources/views/metager3bilder.blade.php
index c0ba4a325ecbc06bafd1632a8ef78a69b468d80b..85b5caf2b7c29d4e2d521d0a4dc176f714a5d4c6 100644
--- a/resources/views/metager3bilder.blade.php
+++ b/resources/views/metager3bilder.blade.php
@@ -19,6 +19,13 @@
 			</ul>
 		</div>
 	@endif
+	@if( !$metager->validated && App::isLocale('de') )
+	<div class="mg-panel container" id="spendenaufruf" style="margin-bottom:20px;max-height:126px;max-width:100%;text-align:center;padding:0px;margin-top:0px">
+					<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spendenaufruf") }}">
+					<img src="/img/aufruf.png" style="max-width:100%;max-height:126px;">
+					</a>
+			</div>
+	@endif
 	<div id="container">
 	@foreach($metager->getResults()->items() as $result)
 		<div class="item">
diff --git a/resources/views/metager3bilderresults.blade.php b/resources/views/metager3bilderresults.blade.php
index 73fdf5da00fac1a41c3cde303b45fe65634bfd86..f663182815cb7a8ee3f7cf183c7af10389373d86 100644
--- a/resources/views/metager3bilderresults.blade.php
+++ b/resources/views/metager3bilderresults.blade.php
@@ -16,6 +16,13 @@
 			</ul>
 		</div>
 	@endif
+@if( !$metager->validated && App::isLocale('de') )
+	<div class="mg-panel container" id="spendenaufruf" style="margin-bottom:20px;max-height:126px;max-width:100%;text-align:center;padding:0px;margin-top:0px">
+					<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spendenaufruf") }}">
+					<img src="/img/aufruf.png" style="max-width:100%;max-height:126px;">
+					</a>
+			</div>
+	@endif
 <div id="container">
 	@foreach($metager->getResults()->items() as $result)
 		<div class="item">
diff --git a/resources/views/metager3results.blade.php b/resources/views/metager3results.blade.php
index add3ebca93cdb83dbd8d4f83a1c266ce71102071..1e8039ed34d0cd65a6cd8e674809e57f205b430c 100644
--- a/resources/views/metager3results.blade.php
+++ b/resources/views/metager3results.blade.php
@@ -17,6 +17,13 @@
 		</div>
 	@endif
 <div class="col-xs-12 col-md-8">
+	@if( !$metager->validated && App::isLocale('de') )
+		<div class="mg-panel container" style="margin-bottom:20px;max-height:90px;text-align:left; max-width:100%; padding:0px;margin-top:0px">
+			<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spendenaufruf") }}" target="_blank">
+				<img src="/img/aufruf.png" style="max-width:100%;max-height:90px;">
+			</a>
+		</div>
+	@endif
 	{{-- 3-Mal Werbung --}}
 	@for($i = 0; $i <= 2; $i++)
 		@include('layouts.ad', ['ad' => $metager->popAd()])
diff --git a/resources/views/quicktip.blade.php b/resources/views/quicktip.blade.php
index ff49d5a056033ca2a837b17a27605ada395ef151..06ce78ae37cee9637be8051f0e61f1b4379af1be 100644
--- a/resources/views/quicktip.blade.php
+++ b/resources/views/quicktip.blade.php
@@ -4,7 +4,7 @@
 		<link rel="stylesheet" type="text/css" href="/css/bootstrap.css" />
 		<link rel="stylesheet" type="text/css" href="/css/quicktips.css" />
 	</head>
-	<body>
+	<body>	
 		@if( $spruch !== "" )
 			<blockquote id="spruch">{!! $spruch !!}</blockquote>
 		@endif
@@ -18,4 +18,4 @@
 			</div>
 		@endforeach
 	</body>
-</html>
\ No newline at end of file
+</html>
diff --git a/resources/views/settings.blade.php b/resources/views/settings.blade.php
index f93be13895c46b6ac06763564aeb3653d5c93283..850d74ebbf43e2c964749d4e447021f1f4c86619 100644
--- a/resources/views/settings.blade.php
+++ b/resources/views/settings.blade.php
@@ -16,8 +16,9 @@
 		</div>
 		<label class="select-label">{{ trans('settings.allgemein.4') }}:</label>
 		<select class="form-control" name="param_lang">
-			<option value="all">{{ trans('settings.allgemein.5') }}</option>
-			<option value="de">{{ trans('settings.allgemein.6') }}</option></select>
+			<option value="all" @if(App::isLocale('de')) selected @endif >{{ trans('settings.allgemein.5') }}</option>
+			<option value="de">{{ trans('settings.allgemein.6') }}</option>
+			<option value="en" @if(App::isLocale('en')) selected @endif>{{ trans('settings.allgemein.6_1') }}</option></select>
 		<label class="select-label">{{ trans('settings.allgemein.7') }}:</label>
 		<select class="form-control" name="param_resultCount">
 			<option value="10">10</option>
@@ -56,8 +57,8 @@
 			</div>
 		@endforeach
 		<input id="unten" type="submit" class="btn btn-primary" value="{{ trans('settings.speichern.1') }}">
-		<input type="button" class="btn btn-primary hidden" id="save" value="{{ trans('settings.speichern.2') }}">
+		<input type="button" class="btn btn-primary hidden" id="save" data-href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}" value="{{ trans('settings.speichern.2') }}">
 		<input id="plugin" type="submit" class="btn btn-primary" value="{{ trans('settings.speichern.3') }}">
-		<input type="button" class="btn btn-danger hidden" id="reset" value="Einstellungen Zur&uuml;cksetzen">
+		<input type="button" class="btn btn-danger hidden" id="reset" value="{{ trans('settings.speichern.4') }}">
 	</form>
 @endsection
\ No newline at end of file
diff --git a/resources/views/spende/beitritt.blade.php b/resources/views/spende/beitritt.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..8da1a712ec8844dbb4bff91fcaa50df2387c1429
--- /dev/null
+++ b/resources/views/spende/beitritt.blade.php
@@ -0,0 +1,119 @@
+@extends('layouts.subPages')
+
+@section('title', $title )
+
+@section('navbarFocus.donate', 'class="dropdown active"')
+
+@section('content')
+<h1>SUMA-EV Beitrittserklärung</h1>
+<form>
+	<div class="form-group">
+		<label for="name" class="non-bold">Hiermit erkläre ich,</label>
+		<input type="text" class="form-control" name="name" placeholder="Name, Vorname" required/>
+	</div>
+	<div class="form-group">
+		<label for="firma" class="non-bold">für die Firma:</label>
+		<input type="text" class="form-control" name="firma" placeholder="Diese Zeile nur beim Beitritt von Firmen ausfüllen" />
+	</div>
+	<div class="form-group">
+		<label for="funktion" class="non-bold">Funktion:</label>
+		<input type="text" class="form-control" name="funktion" placeholder="hier ggf. wenn Sie wollen oder beim Firmenbeitritt: Ihren Beruf/Funktion" />
+	</div>
+	<div class="form-group">
+		<label for="adresse" class="non-bold">Adresse:</label>
+		<input type="text" class="form-control" name="adresse" placeholder="Straße Hausnummer, Postleitzahl, Ort" required/>
+	</div>
+	<div class="form-group">
+		<label for="email" class="non-bold">E-Mail-Adresse:</label>
+		<input type="email" class="form-control" name="email" placeholder=""/>
+	</div>
+	<div class="form-group">
+		<label for="homepage" class="non-bold">Web-Adresse:</label>
+		<input type="text" class="form-control" name="homepage" placeholder="http://"/>
+	</div>
+	<div class="form-group">
+		<label for="telefon" class="non-bold">Telefon:</label>
+		<input type="text" class="form-control" name="telefon" placeholder="Festnetz und ggf. Handy"/>
+	</div>
+	<div class="form-group">
+		<label class="non-bold" for="betrag">dass ich dem "SUMA-EV - Verein für freien Wissenszugang" beitreten will. Ich habe die Satzung zur Kenntnis genommen und stimme mit den Zielen des Vereins überein. Der Mindestbeitrag für Einzelmitglieder und Privatpersonen beträgt 5,-EUR pro Monat, Schüler und Studenten die Hälfte; für Firmen, Institutionen und Einrichtungen 5,- EUR pro Monat und Mitarbeiter, bei Firmen ab 20 Mitarbeitern pauschal 100,- EUR pro Monat, bei Firmen ab 200 Mitarbeitern pauschal 200,- EUR pro Monat. Als Mitgliedsbeitrag wähle ich: </label>
+		<div class="row">
+			<div class="col-xs-2">
+				<input type="text" class="form-control" name="betrag" />
+			</div>
+			<div class="col-xs-2">
+				<p class="help-block">EUR pro Monat. </p>
+			</div>
+		</div>
+	</div>
+	<label class="non-bold">
+		Der Beitrag wird jährlich zum 01. August im voraus abgebucht, bzw. ab Eintrittsdatum anteilig für das erste Jahr. 
+	</label>
+	<label class="non-bold">
+		Ich stimme der Veröffentlichung meines Namens, meiner Funktion und meiner E-Mail-Adresse im Internet und/oder in Papierform zu (gewünschtes ankreuzen): 
+	</label>
+	<div class="row">
+		<div class="col-xs-2">
+			<div class="radio">
+				<label>
+					<input type="radio" name="veröffentlichung" checked> Ja
+				</label>
+			</div>
+		</div>
+		<div class="col-xs-2">
+			<div class="radio">
+				<label>
+					<input type="radio" name="veröffentlichung"> Nein
+				</label>
+			</div>
+		</div>
+	</div>
+	<div class="form-group">
+		<label for="ort">Ort, Datum:</label>
+		<input type="text" class="form-control" id="ort" placeholder=""/>
+	</div>
+	<br />
+
+	<p class="sign">
+	---------------------------------------------------------<br />
+	Unterschrift nach Ausdrucken des Formulars
+	</p>
+	<h3>Abbuchungsermächtigung</h3>
+	<p>Hiermit ermächtige ich den "SUMA-EV - Verein für freien Wissenszugang" den o.g. Mitgliedsbeitrag von meinem Konto abzubuchen. </p>
+	<div class="form-group">
+		<label for="kontoname" class="non-bold">Name des Kontoinhabers:</label>
+		<input type="text" class="form-control" name="kontoname" placeholder=""/>
+	</div>
+	<div class="form-group">
+		<label for="bankverbindung" class="non-bold">Bankverbindung, Name der Bank:</label>
+		<input type="text" class="form-control" name="bankverbindung" placeholder=""/>
+	</div>
+	<div class="form-group">
+		<label for="iban" class="non-bold">IBAN (oder Konto-Nummer)</label>
+		<input type="text" class="form-control" name="iban" placeholder=""/>
+	</div>
+	<div class="form-group">
+		<label for="bic" class="non-bold">BIC (oder Bankleitzahl)</label>
+		<input type="text" class="form-control" name="bic" placeholder=""/>
+	</div>
+	<div class="form-group">
+		<label for="ort2" class="non-bold">Ort, Datum:</label>
+		<input type="text" class="form-control" id="ort2" placeholder=""/>
+	</div>
+	<br />
+	<p class="sign">
+	---------------------------------------------------------<br />
+	Unterschrift nach Ausdrucken des Formulars
+	</p>
+</form>
+<hr />
+<p>Bitte drucken Sie das Formular nach Ausfüllen aus und unterschreiben an beiden ......... Linien; dann können Sie es</p>
+<ul>
+<li>faxen an 0511 34 00 10 23 (und schicken uns eine kurze EMail dazu, dass Sie das Beitrittsformular gefaxt haben, denn Faxgeräte sind manchmal inkompatibel) oder </li>
+<li>per Post senden an: SUMA-EV, Röselerstr. 3, 30159 Hannover oder </li>
+<li>einscannen und an office@suma-ev.de mailen. </li>
+</ul>
+<p>Beim Versenden per Post oder Fax informieren Sie uns bitte kurz per email an office@suma-ev.de</p>
+<p>Mitgliedsbeiträge an den SUMA-EV sind steuerlich absetzbar, da der Verein vom Finanzamt Hannover Nord als gemeinnützig anerkannt ist. Eine Spendenbescheinigung wird auf Wunsch im Januar oder Februar des Folgejahres zugesandt. </p>
+<button type="button" class="btn btn-lg btn-primary noprint" onclick="window.print();">Drucken</button>
+@endsection
\ No newline at end of file
diff --git a/resources/views/spende.blade.php b/resources/views/spende/spende.blade.php
similarity index 97%
rename from resources/views/spende.blade.php
rename to resources/views/spende/spende.blade.php
index b9640ce23e339cf1ff8eada8bfdb2e95025f6e58..7ef0e1c5f151bf13747cf0ac1eb155c1b7b5eb3b 100644
--- a/resources/views/spende.blade.php
+++ b/resources/views/spende/spende.blade.php
@@ -14,7 +14,7 @@
 		<p class="text-muted">{{ trans('spenden.bankinfo.3') }}</p>
 		<hr>
 		<div class="col-lg-6 col-md-12 col-sm-12 others ppbc">
-			<h2>{{ trans('spenden.logos.1') }}</h2>
+			<h2>{!! trans('spenden.logos.1') !!}</h2>
 			<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
 				<input name="cmd" value="_xclick" type="hidden">
 				<input name="business" value="wsb@suma-ev.de" type="hidden">
@@ -33,7 +33,7 @@
 			</form>
 		</div>
 		<div class="col-lg-6 col-md-12 col-sm-12 others ppbc">
-			<h2>{{ trans('spenden.logos.2') }}</h2>
+			<h2>{!! trans('spenden.logos.2') !!}</h2>
 			<a href="bitcoin:174SDRNZqM2WNobHhCDqD1VXbnZYFXNf8V"><img src="/img/WeAcceptBitcoin.png" style="width:120px" alt="Bitcoin"></a>
 		</div>
 		<div class="clearfix"></div>
@@ -80,4 +80,4 @@
 	</div>
 	<div class="clearfix"></div>
 </div>
-@endsection
\ No newline at end of file
+@endsection
diff --git a/resources/views/spende/spendenaufruf.blade.php b/resources/views/spende/spendenaufruf.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..87668759c82ef7967926e495a843ba6f645e964e
--- /dev/null
+++ b/resources/views/spende/spendenaufruf.blade.php
@@ -0,0 +1,152 @@
+@extends('layouts.subPages')
+
+@section('title', $title )
+
+@section('navbarFocus.donate', 'class="dropdown active"')
+
+@section('content')
+<h1>Mit Ihnen zusammen: Für die unabhängige, nicht-kommerzielle Internet-Suche</a></h1>
+<p><a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spende") }}">{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spende") }}</a></p>
+<p>Mit Ihnen zusammen haben wir in den vergangenen Monaten eine neue
+Erfolgsstory geschrieben: die Zahl der MetaGer-Nutzer steigt weiter und
+stetig.  Es ist kein Strohfeuer kurzfristigen Erfolges, sondern es ist die
+Stetigkeit dieser Steigerung, die unseren Erfolg begründet.  In drei Jahren
+haben wir unsere Abfragezahlen verdreifacht.  Wir sind nach Expertenmeinung
+die sicherste Suchmaschine der Welt.  Unsere Suchergebnisse sind zielgenau
+und treffsicher.  Beides verdanken wir der Tatsache, dass wir Programmierer
+fest anstellen konnten.  Aber auch Programmierer können nicht allein von der
+Liebe zur Sache leben: Nur dank Ihrer Spendenbereitschaft konnten wir das
+finanziell stemmen.</p>
+<p>
+Wir mussten auch einen Prozess gegen die Ausuferung des "Rechts auf
+Vergessen" (nach dem EuGH Urteil vom 13.5.2014) durchstehen, um weiterhin
+einen unzensierten Betrieb von Suchmaschinen zu ermöglichen
+(<a href="http://suma-ev.de/presse/Suchmaschine-MetaGer-totgeklagt.html" target="_blank">http://suma-ev.de/presse/Suchmaschine-MetaGer-totgeklagt.html</a>).  Wir haben
+in allen Instanzen gewonnen.  Anschließend jedoch hat die Klägerin sich für
+zahlungsunfähig erklärt.  Wir werden wohl auf den Kosten sitzenbleiben, was
+unsere Finanzen weiter belastet.
+</p>
+<h3>
+Um unsere gemeinsamen Erfolge fortzuschreiben, benötigen wir jetzt wieder
+Ihre Hilfe.
+</h3>
+<p><a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spende") }}">{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spende") }}</a></p>
+<p>
+Eine Internet-Suchmaschine muss stetig weiterentwickelt werden,
+wenn sie nicht binnen kurzem veraltet sein soll.  Unsere Werbeeinnahmen sind
+stark gesunken.  Eigentlich wollen wir in MetaGer auch gar keine Werbung. 
+Aber solange das Spendenaufkommen nicht reicht, können wir darauf noch nicht
+verzichten.
+</p>
+<p>
+Wir bitten um Ihre Hilfe, damit wir MetaGer als unabhängige Alternative in
+einem gemeinnützigen Verein weiter entwickeln und betreiben können.
+Große Teile des Internet versinken im Kommerz und Werbemüll.
+</p>
+<p>
+Lassen Sie uns gemeinsam ein Zeichen gegen die zunehmende Kommerzialisierung
+des Internet setzen!  Der Betreiberverein von MetaGer, der SUMA-EV, ist als
+gemeinnütziger Verein seit 2004 in das Register beim Amtsgericht Hannover
+unter VR200033 eingetragen.
+</p>
+<p>
+Bitte unterstützen Sie uns, damit die unabhängige, nicht-kommerzielle Suche
+im Internet weiter entwickelt und betrieben werden kann:
+<br />
+<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spende") }}">{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/spende") }}</a>
+</p>
+<h3>Helfen Sie mit, dass freie Suchmaschinen im Internet frei bleiben. Das digitale Wissen der Welt muss ohne Bevormundung durch Staaten oder Konzerne frei zugänglich sein und bleiben.</h3>
+<div class="">
+	<div class="col-sm-6">
+		<h2>{{ trans('spenden.bankinfo.1') }}</h2>
+		<p style="white-space:pre;">{{ trans('spenden.bankinfo.2') }}</p>
+		<p class="text-muted">{{ trans('spenden.bankinfo.3') }}</p>
+	</div>
+	<div class="col-sm-6">
+		<div class="">
+		<div class="col-md-6">
+			<h2>{!! trans('spenden.logos.1') !!}</h2>
+			<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
+				<input name="cmd" value="_xclick" type="hidden">
+				<input name="business" value="wsb@suma-ev.de" type="hidden">
+				<input name="item_name" value="SuMa-eV Spende" type="hidden">
+				<input name="buyer_credit_promo_code" value="" type="hidden">
+				<input name="buyer_credit_product_category" value="" type="hidden">
+				<input name="buyer_credit_shipping_method" value="" type="hidden">
+				<input name="buyer_credit_user_address_change" value="" type="hidden">
+				<input name="no_shipping" value="0" type="hidden">
+				<input name="no_note" value="1" type="hidden">
+				<input name="currency_code" value="EUR" type="hidden">
+				<input name="tax" value="0" type="hidden">
+				<input name="lc" value="DE" type="hidden">
+				<input name="bn" value="PP-DonationsBF" type="hidden">
+				<input src="/img/paypalspenden.gif" name="submit" width="120px" alt="Spenden Sie mit PayPal - schnell, kostenlos und sicher!" type="image">
+			</form>
+		</div>
+		<div class="col-md-6">
+			<h2>{!! trans('spenden.logos.2') !!}</h2>
+			<a href="bitcoin:174SDRNZqM2WNobHhCDqD1VXbnZYFXNf8V"><img src="/img/WeAcceptBitcoin.png" style="width:120px" alt="Bitcoin"></a>
+		</div>
+		</div>
+	</div>
+	<div class="clearfix"></div>
+	<hr />
+	<div class="col-md-6">
+		<h2 id="lastschrift">{{ trans('spenden.lastschrift.1') }}</h2>
+		<p>{{ trans('spenden.lastschrift.2') }}</p>
+		<form role="form" method="POST" action="{{ action('MailController@donation') }}">
+			{{ csrf_field() }}
+			<div class="form-group" style="text-align:left;">
+				<label for="Name">{{ trans('spenden.lastschrift.3') }}</label>
+				<input type="text" class="form-control" id="Name" required="" name="Name" placeholder="{{ trans('spenden.lastschrift.3.placeholder') }}">
+			</div>
+			<div class="form-group" style="text-align:left;">
+				<label for="email">{{ trans('spenden.lastschrift.4') }}</label>
+				<input type="email" class="form-control" id="email" name="email" placeholder="Email">
+			</div>
+			<div class="form-group" style="text-align:left;">
+				<label for="tel">{{ trans('spenden.lastschrift.5') }}</label>
+				<input type="tel" class="form-control" id="tel" name="Telefon" placeholder="xxxx-xxxxx">
+			</div>
+			<div class="form-group" style="text-align:left;">
+				<label for="iban">{{ trans('spenden.lastschrift.6') }}</label>
+				<input type="text" class="form-control" id="iban" required="" name="Kontonummer" placeholder="IBAN">
+			</div>
+			<div class="form-group" style="text-align:left;">
+				<label for="bic">{{ trans('spenden.lastschrift.7') }}</label>
+				<input type="text" class="form-control" id="bic" required="" name="Bankleitzahl" placeholder="BIC">
+			</div>
+			<div class="form-group" style="text-align:left;">
+				<label for="msg">{{ trans('spenden.lastschrift.8') }}</label>
+				<textarea class="form-control" id="msg" required="" name="Nachricht" placeholder="{{ trans('spenden.lastschrift.8.placeholder') }}"></textarea>
+			</div>
+			<button type="submit" class="btn btn-default">{{ trans('spenden.lastschrift.9') }}</button>
+		</form>
+		<p>{{ trans('spenden.lastschrift.10') }}</p>
+	</div>
+	<div class="col-md-6">
+		<h2 id="mails">Aus den EMails vorheriger Spender:</h2>
+		<ul style="text-align:left; list-style-type: initial;">
+			<li>"Danke, dass es metager gibt."</li>
+			<li>"Ich (85J.) möchte für Ihre aufwändige Arbeit 200 Euro spenden. Bleibt stark gegen die Kraken."</li>
+  			<li>"Ihre Arbeit halte ich für sehr wertvoll"</li>
+  			<li>"Danke für Ihre gute Arbeit!"</li>
+  			<li>"Super das neue MetaGer!"</li>
+  			<li>"Suchmaschine wie von Ihnen entwickelt und betrieben ist sehr begrüßenswert.  Meine Spende dazu"</li>
+  			<li>"Als kleinen Beitrag für Ihre große und großartige Arbeit spende ich"</li>
+  			<li>"Bitte buchen Sie 100,-EUR für Ihre gute Arbeit ab."</li>
+  			<li>"Gerade in der heutigen Zeit braucht es eine Suchmaschine aus sicherer Hand und guten Absichten."</li>
+  			<li>"Ihre Arbeit ist Spitze. Deshalb möchte Ihr Projekt fördern."</li>
+  			<li>"Ich verwende schon seit Jahren Metager und danke mit einer Spende"</li>
+  			<li>"MetaGer ist Spitze! Ich spende"</li>
+  			<li>"Armer Rentner spendet gerne 5,00 Euro"</li>
+  			<li>"Ich verwende fast nur noch die MetaGer-Suche und bin damit sehr zufrieden"</li>
+  			<li>"Danke für euer Werk!"</li>
+		</ul>
+	</div>
+</div>
+<div id="left" class="col-lg-6 col-md-12 col-sm-12 others">
+		
+		
+	</div>
+@endsection
diff --git a/resources/views/widget/sitesearch.blade.php b/resources/views/widget/sitesearch.blade.php
index 9cf1756405d24c4cfd740d6035a9e3758f305eb7..d9660fb8863b12fb2171570941a1b55853067456 100644
--- a/resources/views/widget/sitesearch.blade.php
+++ b/resources/views/widget/sitesearch.blade.php
@@ -3,6 +3,20 @@
 @section('title', $title )
 
 @section('content')
+<script type="text/javascript">
+        function copyCode() {
+            $("#codesnippet").select();
+            try {
+                var successful = document.execCommand('copy');
+                if( successful )
+                    alert('{{ trans('websearch.alert.success') }}');
+                else
+                    alert('{{ trans('websearch.alert.failure') }}');
+            } catch (err) {
+                alert('{{ trans('websearch.alert.failure') }}');
+            }
+        }
+</script>
 <h1>{{ trans('sitesearch.head.1') }}</h1>
 <p>{{ trans('sitesearch.head.2') }}</p>
 <h2>{{ trans('sitesearch.head.3') }}</h2>
@@ -19,8 +33,8 @@
   <input type="hidden" name="encoding" value="utf8">
   <input type="hidden" name="site" value="{{ $site }}">
 </form>
-<h2>{{ trans('sitesearch.generated.5') }}</h2>
-<code>&lt;form class="metager-searchform" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}/meta/meta.ger3" method="get" accept-charset="UTF-8" &gt;
+<h2>{{ trans('sitesearch.generated.5') }} <button class="btn btn-default" type="submit" onclick="copyCode()"><span class="glyphicon glyphicon-paperclip" aria-hidden="true"></span> {{ trans('websearch.head.copy') }}</button></h2>
+<textarea id="codesnippet" readonly style="width:100%;height:500px">&lt;form class="metager-searchform" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}/meta/meta.ger3" method="get" accept-charset="UTF-8" &gt;
   &lt;style type="text/css" scoped&gt;
   .metager-searchinput {
   height: 30px;
@@ -63,6 +77,6 @@
   }
   &lt;/style&gt;
   &lt;a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}"&gt;&lt;img class="metager-logo" title="{{ trans('sitesearch.generated.2') }}" alt="MetaGer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN8AAABGAgMAAAAx/qk0AAAADFBMVEX/wmn/3KL/6Mj+/vtPnQnhAAAC10lEQVRIx+2XMa7TQBCG1zaJkYwUGp5E5RbR+AJI9g2gQLQ0vDpHsMUJKB49DRIKBRdAco6wN8AFB7CQkfzEZod/Zu3ENgSkbRBStnDkt/uNZ/6ZnX2r6KvyGFujyIdTkVG9F6g+q9YPfKL2fuA9VfmBd1XhB95Rl3EZl/Evxur62dm5gAg7uqSxA613pw2+JqI358CQCD2EqBneEzr1ohLg4WyfJKwMT+CGqonNP4NaxfwYwaOrm7+DGzo6mJ5AeLojcw6M2ctMwNU13jM+GYIXzxUHrtWawQc3TsdXUzAhCJqzQkFNnbjXc3AavljMPxJxNdTvtrOvY2UH2wBhwgrYxUzjfThdMn4L6Rv1c/BTF9AXRMbiVykeLUyIjWbMNN5C+oEvzMCXfURbknnS2QgSPrQfVUCRROzKFEzpqUlsTgipj6l9THb3bnODzxf5oC++nNKewdn5ltHGpCZnz3QIm7Xhc4WzUg4nLwwkpGO4e38K5pQc8g5gCn1Yp36sg9qy+50qLbzRydxRgDa2dVseYEHNQVGE/2Ic2CxBrh04CMOgAjG8ZTlQbZhqA5iKqNnQ4iAuD5itANYsHjLTSlFA1QGUUic9KX43ahPyIqNkvgsZLEcw/EhN5MBJDY9ggBVwx4ERQMmoVVxx0QRcFDkjEpnMt1iJ1bcqhzHi5GsH7rPfgW14lDOS3akROoIuuB9ETs6cli0HOdccmQMZ4u6BoEv8TEC7bDmtKiuOjEtmXQxgCDCXXVaJXA/Z919A0YCrc1UDtB+Qa95SGTcAqli7qwP7vugc7eBgLjnAVjCSxs5lE3Hy04hDc7CRNqBda+KUY5eRBegyr8SiUcvmE0t7YzkiSZ6SIqDv7AjX0q1rdr2ixT+biYBSiLW07Yz3A70eKs8W0l7xs9wc08wcD4qV62rq6r2U2eptcTlGL+O/HN4XFu8rkvelzPsa6H3x9L7q+l6ufwK7PWV5kEbECQAAAABJRU5ErkJggg=="&gt;&lt;/a&gt;&lt;input class="metager-searchinput" name="eingabe" placeholder="{{ trans('sitesearch.generated.3') }}" required&gt;&lt;/input&gt;&lt;button class="metager-searchbutton" type="submit"&gt;{{ trans('sitesearch.generated.4') }}&lt;/button&gt;&lt;input type="hidden" name="encoding" value="utf8"&gt;&lt;/input&gt;&lt;input type="hidden" name="site" value="{{ $site }}"&gt;&lt;/input&gt;&lt;input type="hidden" name="lang" value="{{ trans('sitesearch.generated.6') }}"&gt;&lt;/input&gt;&lt;input type="hidden" name="wdgt-version" value="1"&gt;&lt;/input&gt;&lt;/form&gt;
-</code>
+</textarea>
 @endif
-@endsection
\ No newline at end of file
+@endsection
diff --git a/resources/views/widget/websearch.blade.php b/resources/views/widget/websearch.blade.php
index 579764de7da7b6275d568aa3a9e8d14c5d5f041c..b743ed22c20f2124d0c9be295761207d45ba1a8b 100644
--- a/resources/views/widget/websearch.blade.php
+++ b/resources/views/widget/websearch.blade.php
@@ -3,6 +3,20 @@
 @section('title', $title )
 
 @section('content')
+<script type="text/javascript">
+	function copyCode() {
+	    $("#codesnippet").select();
+            try {
+                var successful = document.execCommand('copy');
+                if( successful )
+                    alert('{{ trans('websearch.alert.success') }}');
+                else
+                    alert('{{ trans('websearch.alert.failure') }}');
+            } catch (err) {
+            	alert('{{ trans('websearch.alert.failure') }}');
+            }
+	}
+</script>
 <h1>{{ trans('websearch.head.1') }}</h1>
 <p>{{ trans('websearch.head.2') }}</p>
 <h2>{{ trans('websearch.head.3') }}</h2>
@@ -10,8 +24,8 @@
   <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}">
     <img class="metager-logo" title="{{ trans('websearch.head.4') }}" alt="MetaGer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN8AAABGAgMAAAAx/qk0AAAADFBMVEX/wmn/3KL/6Mj+/vtPnQnhAAAC10lEQVRIx+2XMa7TQBCG1zaJkYwUGp5E5RbR+AJI9g2gQLQ0vDpHsMUJKB49DRIKBRdAco6wN8AFB7CQkfzEZod/Zu3ENgSkbRBStnDkt/uNZ/6ZnX2r6KvyGFujyIdTkVG9F6g+q9YPfKL2fuA9VfmBd1XhB95Rl3EZl/Evxur62dm5gAg7uqSxA613pw2+JqI358CQCD2EqBneEzr1ohLg4WyfJKwMT+CGqonNP4NaxfwYwaOrm7+DGzo6mJ5AeLojcw6M2ctMwNU13jM+GYIXzxUHrtWawQc3TsdXUzAhCJqzQkFNnbjXc3AavljMPxJxNdTvtrOvY2UH2wBhwgrYxUzjfThdMn4L6Rv1c/BTF9AXRMbiVykeLUyIjWbMNN5C+oEvzMCXfURbknnS2QgSPrQfVUCRROzKFEzpqUlsTgipj6l9THb3bnODzxf5oC++nNKewdn5ltHGpCZnz3QIm7Xhc4WzUg4nLwwkpGO4e38K5pQc8g5gCn1Yp36sg9qy+50qLbzRydxRgDa2dVseYEHNQVGE/2Ic2CxBrh04CMOgAjG8ZTlQbZhqA5iKqNnQ4iAuD5itANYsHjLTSlFA1QGUUic9KX43ahPyIqNkvgsZLEcw/EhN5MBJDY9ggBVwx4ERQMmoVVxx0QRcFDkjEpnMt1iJ1bcqhzHi5GsH7rPfgW14lDOS3akROoIuuB9ETs6cli0HOdccmQMZ4u6BoEv8TEC7bDmtKiuOjEtmXQxgCDCXXVaJXA/Z919A0YCrc1UDtB+Qa95SGTcAqli7qwP7vugc7eBgLjnAVjCSxs5lE3Hy04hDc7CRNqBda+KUY5eRBegyr8SiUcvmE0t7YzkiSZ6SIqDv7AjX0q1rdr2ixT+biYBSiLW07Yz3A70eKs8W0l7xs9wc08wcD4qV62rq6r2U2eptcTlGL+O/HN4XFu8rkvelzPsa6H3x9L7q+l6ufwK7PWV5kEbECQAAAABJRU5ErkJggg=="></a><input class="metager-searchinput" name="eingabe" placeholder="{{ trans('websearch.head.5') }}" required=""><input type="hidden" name="lang" value="{{ trans('websearch.head.6') }}"><input type="hidden" name="encoding" value="utf8"><button class="metager-searchbutton" type="submit">{{ trans('websearch.head.8') }}</button>
 </form>
-<h2>{{ trans('websearch.head.7') }}</h2>
-<code>&lt;form class="metager-searchform" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}/meta/meta.ger3" method="get" accept-charset="UTF-8" &gt;
+<h2>{{ trans('websearch.head.7') }} <button class="btn btn-default" type="submit" onclick="copyCode()"><span class="glyphicon glyphicon-paperclip" aria-hidden="true"></span> {{ trans('websearch.head.copy') }}</button></h2>
+<textarea id="codesnippet" readonly style="width:100%;height:500px">&lt;form class="metager-searchform" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}/meta/meta.ger3" method="get" accept-charset="UTF-8" &gt;
   &lt;style type="text/css" scoped&gt;
   .metager-searchinput {
   height: 30px;
@@ -54,5 +68,5 @@
   }
   &lt;/style&gt;
   &lt;a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}"&gt;&lt;img class="metager-logo" title="{{ trans('websearch.head.4') }}" alt="MetaGer" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN8AAABGAgMAAAAx/qk0AAAADFBMVEX/wmn/3KL/6Mj+/vtPnQnhAAAC10lEQVRIx+2XMa7TQBCG1zaJkYwUGp5E5RbR+AJI9g2gQLQ0vDpHsMUJKB49DRIKBRdAco6wN8AFB7CQkfzEZod/Zu3ENgSkbRBStnDkt/uNZ/6ZnX2r6KvyGFujyIdTkVG9F6g+q9YPfKL2fuA9VfmBd1XhB95Rl3EZl/Evxur62dm5gAg7uqSxA613pw2+JqI358CQCD2EqBneEzr1ohLg4WyfJKwMT+CGqonNP4NaxfwYwaOrm7+DGzo6mJ5AeLojcw6M2ctMwNU13jM+GYIXzxUHrtWawQc3TsdXUzAhCJqzQkFNnbjXc3AavljMPxJxNdTvtrOvY2UH2wBhwgrYxUzjfThdMn4L6Rv1c/BTF9AXRMbiVykeLUyIjWbMNN5C+oEvzMCXfURbknnS2QgSPrQfVUCRROzKFEzpqUlsTgipj6l9THb3bnODzxf5oC++nNKewdn5ltHGpCZnz3QIm7Xhc4WzUg4nLwwkpGO4e38K5pQc8g5gCn1Yp36sg9qy+50qLbzRydxRgDa2dVseYEHNQVGE/2Ic2CxBrh04CMOgAjG8ZTlQbZhqA5iKqNnQ4iAuD5itANYsHjLTSlFA1QGUUic9KX43ahPyIqNkvgsZLEcw/EhN5MBJDY9ggBVwx4ERQMmoVVxx0QRcFDkjEpnMt1iJ1bcqhzHi5GsH7rPfgW14lDOS3akROoIuuB9ETs6cli0HOdccmQMZ4u6BoEv8TEC7bDmtKiuOjEtmXQxgCDCXXVaJXA/Z919A0YCrc1UDtB+Qa95SGTcAqli7qwP7vugc7eBgLjnAVjCSxs5lE3Hy04hDc7CRNqBda+KUY5eRBegyr8SiUcvmE0t7YzkiSZ6SIqDv7AjX0q1rdr2ixT+biYBSiLW07Yz3A70eKs8W0l7xs9wc08wcD4qV62rq6r2U2eptcTlGL+O/HN4XFu8rkvelzPsa6H3x9L7q+l6ufwK7PWV5kEbECQAAAABJRU5ErkJggg=="&gt;&lt;/a&gt;&lt;input class="metager-searchinput" name="eingabe" placeholder="{{ trans('websearch.head.5') }}" required&gt;&lt;/input&gt;&lt;input type="hidden" name="encoding" value="utf8"&gt;&lt;button class="metager-searchbutton" type="submit"&gt;{{ trans('websearch.head.8') }}&lt;/button&gt;&lt;input type="hidden" name="wdgt-version" value="1"&gt;&lt;/input&gt;&lt;input type="hidden" name="lang" value="{{ trans('websearch.head.6') }}"&gt;&lt;/form&gt;
-</code>
-@endsection
\ No newline at end of file
+</textarea>
+@endsection
diff --git a/storage/app/public/ads.txt b/storage/app/public/ads.txt
index 0bedeb86095ae3c1523c0abec30b210af2e3e467..799ebdc53b50d42b4e575963db510b1937734de9 100755
--- a/storage/app/public/ads.txt
+++ b/storage/app/public/ads.txt
@@ -1,7 +1,7 @@
 [	
 	{
 		"title" : "MetaGer4You:",
-		"descr" : "Wenn in Ihrer Firma täglich viele verschiedene Datenbanken und Suchdienste abzufragen sind - warum machen Sie es nicht einfacher? WIR programmieren Ihnen IHRE Metasuche nach Ihren Anforderungen! Fragen Sie uns:  <a href=\"mailto:office@suma-ev.de\">office@suma-ev.de</a>",
+		"descr" : "Wenn in Ihrer Firma täglich viele verschiedene Datenbanken und Suchdienste abzufragen sind - warum machen Sie es nicht einfacher? WIR programmieren Ihnen IHRE Metasuche nach Ihren Anforderungen! Schauen Sie sich das Beispiel der <a href=\"http://suma-ev.de/presse/MetaGer-jetzt-Standardsuche-an-der-Uni-Mainz.html\" target=\"_blank\">Uni-Mainz</a> an - fragen Sie uns:  <a href=\"mailto:office@suma-ev.de\">office@suma-ev.de</a>",
 		"URL" : "mailto:office@suma-ev.de"
 
 	}