diff --git a/.gitignore b/.gitignore
index 2f48c773113ee390e601050a543d9e3fbfab37ee..ce2c62fe06a253c2c0b6c95525cd7a1dbd8ba4e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,4 +23,5 @@ npm-debug.log
 composer.lock
 package-lock.json
 local.log
+
 browserstack.err
diff --git a/.gitlab/development-values.yaml b/.gitlab/development-values.yaml
index 87e1498ecdcccc89753317722b69faf48373b2eb..8a5e39a311ff68f7f9f9c973677b4546edbe08cc 100644
--- a/.gitlab/development-values.yaml
+++ b/.gitlab/development-values.yaml
@@ -25,7 +25,7 @@ ingress:
   annotations:
     cert-manager.io/cluster-issuer: letsencrypt-prod
     nginx.ingress.kubernetes.io/configuration-snippet: |
-      more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self'; base-uri; manifest-src; plugin-types; report-uri; report-to";
+      more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self' www.paypal.com; base-uri; manifest-src; plugin-types; report-uri; report-to";
       more_set_headers "X-Frame-Options: sameorigin";
       more_set_headers "X-Content-Type-Options: nosniff";
       more_set_headers "ReferrerPolicy: origin";
diff --git a/.gitlab/production-values.yaml b/.gitlab/production-values.yaml
index 3023c11f64263c91aa906d0fa9b5e6b4e3c166b2..130b7dc1e15d5fec3419374b390413c3ad14e833 100644
--- a/.gitlab/production-values.yaml
+++ b/.gitlab/production-values.yaml
@@ -25,7 +25,7 @@ ingress:
   annotations:
     cert-manager.io/cluster-issuer: letsencrypt-prod
     nginx.ingress.kubernetes.io/configuration-snippet: |
-      more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self'; base-uri; manifest-src; plugin-types; report-uri; report-to";
+      more_set_headers "Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline'; script-src-elem 'self' 'unsafe-inline'; script-src-attr 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; style-src-elem 'self' 'unsafe-inline'; style-src-attr 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; media-src; object-src; prefetch-src; child-src; frame-src 'self'; worker-src; frame-ancestors 'self' https://scripts.zdv.uni-mainz.de; form-action 'self' www.paypal.com; base-uri; manifest-src; plugin-types; report-uri; report-to";
       more_set_headers "X-Frame-Options: sameorigin";
       more_set_headers "X-Content-Type-Options: nosniff";
       more_set_headers "ReferrerPolicy: origin";
diff --git a/app/Console/Commands/RequestFetcher.php b/app/Console/Commands/RequestFetcher.php
index 209a6cf537f8e5453b930ccdea2ec5f26cc91bf1..270d8bd47d4734ae455f1cf69f535a3bee19bb1d 100644
--- a/app/Console/Commands/RequestFetcher.php
+++ b/app/Console/Commands/RequestFetcher.php
@@ -25,10 +25,9 @@ class RequestFetcher extends Command
 
     protected $shouldRun = true;
     protected $multicurl = null;
-    protected $oldMultiCurl = null;
-    protected $maxFetchedDocuments = 100000;
-    protected $fetchedDocuments = 0;
-    protected $proxyhost, $proxyuser, $proxypassword;
+    protected $proxyhost;
+    protected $proxyuser;
+    protected $proxypassword;
 
     /**
      * Create a new command instance.
@@ -43,7 +42,6 @@ class RequestFetcher extends Command
         $this->proxyport = env("PROXY_PORT", "");
         $this->proxyuser = env("PROXY_USER", "");
         $this->proxypassword = env("PROXY_PASSWORD", "");
-
     }
 
     /**
@@ -53,7 +51,6 @@ class RequestFetcher extends Command
      */
     public function handle()
     {
-
         $pidFile = "/tmp/fetcher";
         pcntl_signal(SIGINT, [$this, "sig_handler"]);
         pcntl_signal(SIGTERM, [$this, "sig_handler"]);
@@ -80,61 +77,16 @@ class RequestFetcher extends Command
         }
 
         try {
-            $blocking = false;
             while ($this->shouldRun) {
-                $status = curl_multi_exec($this->multicurl, $active);
-                $currentJobs = [];
-                if (!$blocking) {
-                    $elements = Redis::pipeline(function ($redis) {
-                        $redis->lrange(\App\MetaGer::FETCHQUEUE_KEY, 0, -1);
-                        $redis->del(\App\MetaGer::FETCHQUEUE_KEY);
-                    });
-                    $currentJobs = $elements[0];
-                } else {
-                    $currentJob = Redis::blpop(\App\MetaGer::FETCHQUEUE_KEY, 1);
-                    if (!empty($currentJob)) {
-                        $currentJobs[] = $currentJob[1];
-                    }
-                }
-
-                if (sizeof($currentJobs) > 0) {
-                    foreach ($currentJobs as $currentJob) {
-                        $currentJob = json_decode($currentJob, true);
-                        $ch = $this->getCurlHandle($currentJob);
-                        if (curl_multi_add_handle($this->multicurl, $ch) !== 0) {
-                            $this->shouldRun = false;
-                            Log::error("Couldn't add Handle to multicurl");
-                            break;
-                        }
-                        $this->fetchedDocuments++;
-                        if ($this->fetchedDocuments > $this->maxFetchedDocuments) {
-                            Log::info("Reinitializing Multicurl after " . $this->fetchedDocuments . " requests.");
-                            $this->oldMultiCurl = $this->multicurl;
-                            $this->multicurl = curl_multi_init();
-                            $this->fetchedDocuments = 0;
-                        }
-                        $blocking = false;
-                        $active = true;
-                    }
-                }
-
-                $answerRead = $this->readMultiCurl($this->multicurl);
-                if ($this->oldMultiCurl != null) {
-                    $this->readMultiCurl($this->oldMultiCurl);
-                    $messagesLeft = -1;
-                    if (curl_multi_info_read($this->oldMultiCurl, $messagesLeft) === false) {
-                        if ($messagesLeft = 0) {
-                            Log::debug("Removing finished multicurl handle");
-                            curl_multi_close($this->oldMultiCurl);
-                            $this->oldMultiCurl = null;
-                        }
-                    }
-                }
-
-                if (!$active && !$answerRead) {
-                    $blocking = true;
-                } else {
-                    usleep(50 * 1000);
+                $operationsRunning = true;
+                curl_multi_exec($this->multicurl, $operationsRunning);
+                $status = $this->readMultiCurl($this->multicurl);
+                $answersRead = $status[0];
+                $messagesLeft = $status[1];
+                $newJobs = $this->checkNewJobs($operationsRunning, $messagesLeft);
+                
+                if ($newJobs === 0 && $answersRead === 0) {
+                    usleep(10 * 1000);
                 }
             }
         } finally {
@@ -143,21 +95,59 @@ class RequestFetcher extends Command
         }
     }
 
+    /**
+     * Checks the Redis queue if any new fetch jobs where submitted
+     * and adds them to multicurl if there are.
+     * Will be blocking call to redis if there are no running jobs in multicurl
+     */
+    private function checkNewJobs($operationsRunning, $messagesLeft)
+    {
+        $newJobs = [];
+        if ($operationsRunning === 0 && $messagesLeft === -1) {
+            $newJob = Redis::blpop(\App\MetaGer::FETCHQUEUE_KEY, 1);
+            if (!empty($newJob)) {
+                $newJobs[] = $newJob[1];
+            }
+        } else {
+            $elements = Redis::pipeline(function ($redis) {
+                $redis->lrange(\App\MetaGer::FETCHQUEUE_KEY, 0, -1);
+                $redis->del(\App\MetaGer::FETCHQUEUE_KEY);
+            });
+            $newJobs = $elements[0];
+        }
+
+        $addedJobs = 0;
+        foreach ($newJobs as $newJob) {
+            $newJob = json_decode($newJob, true);
+            $ch = $this->getCurlHandle($newJob);
+            if (curl_multi_add_handle($this->multicurl, $ch) !== 0) {
+                $this->shouldRun = false;
+                Log::error("Couldn't add Handle to multicurl");
+                break;
+            } else {
+                $addedJobs++;
+            }
+        }
+
+        return $addedJobs;
+    }
+
     private function readMultiCurl($mc)
     {
-        $answerRead = false;
-        while (($info = curl_multi_info_read($mc)) !== false) {
+        $messagesLeft = -1;
+        $answersRead = 0;
+        while (($info = curl_multi_info_read($mc, $messagesLeft)) !== false) {
             try {
-                $answerRead = true;
+                $answersRead++;
                 $infos = curl_getinfo($info["handle"], CURLINFO_PRIVATE);
                 $infos = explode(";", $infos);
                 $resulthash = $infos[0];
                 $cacheDurationMinutes = intval($infos[1]);
                 $name = $infos[2];
                 $responseCode = curl_getinfo($info["handle"], CURLINFO_HTTP_CODE);
-                $body = "";
+                $body = "no-result";
 
-                $totalTime = curl_getinfo($info["handle"],  CURLINFO_TOTAL_TIME);
+                $totalTime = curl_getinfo($info["handle"], CURLINFO_TOTAL_TIME);
                 \App\PrometheusExporter::Duration($totalTime, $name);
 
                 $error = curl_error($info["handle"]);
@@ -166,13 +156,14 @@ class RequestFetcher extends Command
                 }
 
                 if ($responseCode !== 200) {
+                    Log::debug($resulthash);
                     Log::debug("Got responsecode " . $responseCode . " fetching \"" . curl_getinfo($info["handle"], CURLINFO_EFFECTIVE_URL) . "\n");
                 } else {
                     $body = \curl_multi_getcontent($info["handle"]);
                 }
 
                 Redis::pipeline(function ($pipe) use ($resulthash, $body, $cacheDurationMinutes) {
-                    $pipe->set($resulthash, $body);
+                    $pipe->lpush($resulthash, $body);
                     $pipe->expire($resulthash, 60);
                 });
 
@@ -187,7 +178,7 @@ class RequestFetcher extends Command
                 \curl_multi_remove_handle($mc, $info["handle"]);
             }
         }
-        return $answerRead;
+        return [$answersRead, $messagesLeft];
     }
 
     private function getCurlHandle($job)
@@ -234,7 +225,6 @@ class RequestFetcher extends Command
     public function sig_handler($sig)
     {
         $this->shouldRun = false;
-        echo ("Terminating Process\n");
+        echo("Terminating Process\n");
     }
-
 }
diff --git a/app/Http/Controllers/AdminSpamController.php b/app/Http/Controllers/AdminSpamController.php
index e4a514ce347b6dadf4141353316a7b315c187b37..43ccfc0be0ebebd4e571492490ce86876509bdf6 100644
--- a/app/Http/Controllers/AdminSpamController.php
+++ b/app/Http/Controllers/AdminSpamController.php
@@ -44,6 +44,9 @@ class AdminSpamController extends Controller
     public function jsonQueries()
     {
         $queries = $this->getQueries();
+        # JSON encoding will fail if invalid UTF-8 Characters are in this string
+        # mb_convert_encoding will remove thise invalid characters for us
+        $queries = mb_convert_encoding($queries, "UTF-8", "UTF-8");
         return response()->json($queries);
     }
 
@@ -77,8 +80,10 @@ class AdminSpamController extends Controller
             ];
         }
 
+        # JSON encoding will fail if invalid UTF-8 Characters are in this string
+        # mb_convert_encoding will remove thise invalid characters for us
+        $resultData = mb_convert_encoding($resultData, "UTF-8", "UTF-8");
         return response()->json($resultData);
-
     }
 
     private function getQueries()
diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php
index 350a6bc47efa841a83acbb8f46ef7c7c4de55882..ce8e4595d8cb1367cba84a215aabb09258379405 100644
--- a/app/Http/Controllers/MetaGerSearch.php
+++ b/app/Http/Controllers/MetaGerSearch.php
@@ -12,9 +12,11 @@ use View;
 
 class MetaGerSearch extends Controller
 {
-
     public function search(Request $request, MetaGer $metager, $timing = false)
     {
+        if ($request->filled("chrome-plugin")) {
+            return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/plugin"));
+        }
         $timings = null;
         if ($timing) {
             $timings = ['starttime' => microtime(true)];
@@ -74,12 +76,23 @@ class MetaGerSearch extends Controller
             return response($responseContent);
         }
 
+        $quicktips = $metager->createQuicktips();
+        if (!empty($timings)) {
+            $timings["createQuicktips"] = microtime(true) - $time;
+        }
+
         # Suche für alle zu verwendenden Suchmaschinen als Job erstellen,
         # auf Ergebnisse warten und die Ergebnisse laden
         $metager->createSearchEngines($request, $timings);
 
         $metager->startSearch($timings);
 
+        # Versuchen die Ergebnisse der Quicktips zu laden
+        $quicktipResults = $quicktips->loadResults();
+        if (!empty($timings)) {
+            $timings["Loaded Quicktip Results"] = microtime(true) - $time;
+        }
+
         $metager->waitForMainResults();
         if (!empty($timings)) {
             $timings["waitForMainResults"] = microtime(true) - $time;
@@ -126,7 +139,7 @@ class MetaGerSearch extends Controller
         }
 
         # Die Ausgabe erstellen:
-        $resultpage = $metager->createView();
+        $resultpage = $metager->createView($quicktipResults);
         if ($spamEntry !== null) {
             try {
                 Cache::put('spam.' . $metager->getFokus() . "." . md5($spamEntry), $resultpage->render(), 604800);
@@ -153,7 +166,7 @@ class MetaGerSearch extends Controller
         // This might speed up page view time for users with slow network
         $responseArray = str_split($resultpage->render(), 1024);
         foreach ($responseArray as $responsePart) {
-            echo ($responsePart);
+            echo($responsePart);
             flush();
         }
         $requestTime = microtime(true) - $time;
@@ -179,7 +192,6 @@ class MetaGerSearch extends Controller
         if ($request->filled('loadMore') && $request->filled('script') && $request->input('script') === "yes") {
             return $this->loadMoreJS($request);
         }
-
     }
 
     private function loadMoreJS(Request $request)
@@ -293,6 +305,10 @@ class MetaGerSearch extends Controller
             ],
             "engines" => $metager->getEngines(),
         ], 1 * 60);
+
+        # JSON encoding will fail if invalid UTF-8 Characters are in this string
+        # mb_convert_encoding will remove thise invalid characters for us
+        $result = mb_convert_encoding($result, "UTF-8", "UTF-8");
         return response()->json($result);
     }
 
diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php
index 9d1f2f4848436283a28b58c572a0c9da3368ef83..0d0d52f7540da82bf734e811bf07c26db89bcb58 100644
--- a/app/Http/Controllers/SettingsController.php
+++ b/app/Http/Controllers/SettingsController.php
@@ -56,11 +56,22 @@ class SettingsController extends Controller
         $cookies = Cookie::get();
         $settingActive = false;
         foreach ($cookies as $key => $value) {
-            if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"])) {
+            if (\starts_with($key, [$fokus . "_engine_", $fokus . "_setting_"]) || strpos($key, $fokus . '_blpage') === 0) {
                 $settingActive = true;
             }
         }
 
+        # Reading cookies for black list entries
+        $blacklist = [];
+        foreach($cookies as $key => $value){
+            if(stripos($key, 'blpage') !== false && stripos($key, $fokus) !== false){
+                $blacklist[$key] = $value;
+            }
+        }
+
+        # Generating link with set cookies
+        $cookieLink = LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('loadSettings', $cookies));
+
         return view('settings.index')
             ->with('title', trans('titles.settings', ['fokus' => $fokusName]))
             ->with('fokus', $request->input('fokus', ''))
@@ -69,7 +80,9 @@ class SettingsController extends Controller
             ->with('sumas', $sumas)
             ->with('filter', $filters)
             ->with('settingActive', $settingActive)
-            ->with('url', $url);
+            ->with('url', $url)
+            ->with('blacklist', $blacklist)
+            ->with('cookieLink', $cookieLink);
     }
 
     private function getSumas($fokus)
@@ -232,6 +245,7 @@ class SettingsController extends Controller
                 Cookie::queue($key, "", 0, $cookiePath, null, false, false);
             }
         }
+        $this->clearBlacklist($request);
 
         return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url])));
     }
@@ -268,4 +282,116 @@ class SettingsController extends Controller
         }
         return redirect($request->input('url', 'https://metager.de'));
     }
+
+    public function newBlacklist(Request $request)
+    {
+        $fokus = $request->input('fokus', '');
+        $url = $request->input('url', '');
+
+        $regexProtocol = '#^([a-z]{0,5}://)?(www.)?#';
+        $blacklist = preg_filter($regexProtocol, '', $request->input('blacklist'));
+
+        if(stripos($blacklist, '/') !== false){
+            $blacklist = substr($blacklist, 0, stripos($blacklist, '/'));
+        }
+
+        $regexUrl = '#^(\*\.)?[a-z0-9]+(\.[a-z0-9]+)?(\.[a-z0-9]{2,})$#';
+        if(preg_match($regexUrl, $blacklist) === 1){
+
+            $path = \Request::path();
+            $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+            $cookies = Cookie::get();
+            $cookieCounter = 0;
+            $noduplicate = true;
+
+            ksort($cookies);
+
+            if(!empty($cookies)){
+                foreach ($cookies as $key => $value) {
+                    if(stripos($key, $fokus . '_blpage') === 0){
+                        if($value === $blacklist){
+                            $noduplicate = false;
+                            break;
+                        }
+                        if((int)(substr($key,strlen($fokus . '_blpage'))) === $cookieCounter){
+                            $cookieCounter++;
+                        }
+                    }
+                }
+            }
+            if($noduplicate && !empty($blacklist) > 0 && strlen($blacklist) <= 255){
+                $cookieName= $fokus.'_blpage'.$cookieCounter;
+                Cookie::queue($cookieName, $blacklist, 0, $cookiePath, null, false, false);
+            }
+        }
+        return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url])));
+    }
+
+    public function deleteBlacklist(Request $request)
+    {
+        $fokus = $request->input('fokus', '');
+        $url = $request->input('url', '');
+        $path = \Request::path();
+        $cookieKey = $request->input('cookieKey');
+        $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+
+        Cookie::queue($cookieKey, "", 0, $cookiePath, null, false, false);
+
+        return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url])));
+    }
+
+    public function clearBlacklist(Request $request)
+    {
+        //function to clear the whole black list
+        $fokus = $request->input('fokus', '');
+        $url = $request->input('url', '');
+        $path = \Request::path();
+        $empty = $request->input('empty');
+        $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+        $cookies = Cookie::get();
+        
+        foreach($cookies as $key => $value){
+            if(stripos($key, $fokus . '_blpage') === 0) {
+                Cookie::queue($key, "", 0, $cookiePath, null, false, false);
+            }
+        }
+
+        return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('settings', ["fokus" => $fokus, "url" => $url])));
+    }
+
+    public function loadSettings(Request $request)
+    {
+        
+        $path = \Request::path();
+        $cookiePath = "/" . substr($path, 0, strpos($path, "meta/") + 5);
+
+        $sumaFile = MetaGer::getLanguageFile();
+        $sumaFile = json_decode(file_get_contents($sumaFile), true);
+        
+        $foki = array_keys($sumaFile['foki']);
+        $regexUrl = '#^(\*\.)?[a-z0-9]+(\.[a-z0-9]+)?(\.[a-z0-9]{2,})$#';
+
+
+        $cookies = $request->all();
+        foreach($cookies as $key => $value){
+            $blpage = false;
+            foreach($foki as $fokus){
+                if(strpos($key, $fokus . '_blpage') === 0 && preg_match($regexUrl, $value) === 1){
+                    Cookie::queue($key, $value, 0, $cookiePath, null, false, false);
+                    $blpage = true;
+                }
+            }
+            if($blpage){
+                continue;
+            }
+            foreach($sumaFile['filter']['parameter-filter'] as $suma => $filter){
+                if($key === $suma && $value === $filter){
+                    Cookie::queue($key, $value, 0, $cookiePath, null, false, false);
+                }
+
+            }
+        }
+
+        return redirect(LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), url('/')));
+    }
 }
diff --git a/app/Http/Controllers/StartpageController.php b/app/Http/Controllers/StartpageController.php
index 55364eb843c62393d056cc57409b1f20b6a8dd08..d38be544d90d51cdb86b1b06d9e010e43203914e 100644
--- a/app/Http/Controllers/StartpageController.php
+++ b/app/Http/Controllers/StartpageController.php
@@ -45,7 +45,7 @@ class StartpageController extends Controller
         return view('index')
             ->with('title', trans('titles.index'))
             ->with('homeIcon')
-            ->with('browser', (new Agent())->browser())
+            ->with('agent', new Agent())
             ->with('navbarFocus', 'suche')
             ->with('focus', $request->input('focus', 'web'))
             ->with('time', $request->input('param_time', '1500'))
diff --git a/app/Http/Middleware/BrowserVerification.php b/app/Http/Middleware/BrowserVerification.php
index 00182c2254b42ccecfbf7b01293e78cb88a73647..f8ec4a32f4fd904c6d869a4605ce335ebcfe413e 100644
--- a/app/Http/Middleware/BrowserVerification.php
+++ b/app/Http/Middleware/BrowserVerification.php
@@ -5,6 +5,7 @@ namespace App\Http\Middleware;
 use Closure;
 use Illuminate\Support\Facades\Redis;
 use Jenssegers\Agent\Agent;
+use Cache;
 
 class BrowserVerification
 {
@@ -59,12 +60,12 @@ class BrowserVerification
 
         $key = md5($request->ip() . microtime(true));
 
-        echo (view('layouts.resultpage.verificationHeader')->with('key', $key)->render());
+        echo(view('layouts.resultpage.verificationHeader')->with('key', $key)->render());
         flush();
 
         $answer = Redis::connection("cache")->blpop($key, 2);
         if ($answer !== null) {
-            echo (view('layouts.resultpage.resources')->render());
+            echo(view('layouts.resultpage.resources')->render());
             flush();
             $request->request->add(["headerPrinted" => true, "jskey" => $key]);
             return $next($request);
@@ -74,9 +75,8 @@ class BrowserVerification
         $params["mgv"] = $key;
         $url = route("resultpage", $params);
 
-        echo (view('layouts.resultpage.unverifiedResultPage')
+        echo(view('layouts.resultpage.unverifiedResultPage')
                 ->with('url', $url)
                 ->render());
-
     }
 }
diff --git a/app/MetaGer.php b/app/MetaGer.php
index cdce5d411513c4b66c8f479dd13af8344eb13317..a86413fad3381121a8777bc379caecbb29a84d9f 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -5,6 +5,7 @@ namespace App;
 use App;
 use Cache;
 use Carbon;
+use Cookie;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Redis;
 use Jenssegers\Agent\Agent;
@@ -72,7 +73,10 @@ class MetaGer
     protected $verificationId;
     protected $verificationCount;
     protected $searchUid;
-    protected $redisResultWaitingKey, $redisResultEngineList, $redisEngineResult, $redisCurrentResultList;
+    protected $redisResultWaitingKey;
+    protected $redisResultEngineList;
+    protected $redisEngineResult;
+    protected $redisCurrentResultList;
     public $starttime;
 
     public function __construct($hash = "")
@@ -131,7 +135,7 @@ class MetaGer
     }
 
     # Erstellt aus den gesammelten Ergebnissen den View
-    public function createView()
+    public function createView($quicktipResults = [])
     {
         # Hiermit werden die evtl. ausgewählten SuMas extrahiert, damit die Input-Boxen richtig gesetzt werden können
         $focusPages = [];
@@ -171,7 +175,7 @@ class MetaGer
                         ->with('apiAuthorized', $this->apiAuthorized)
                         ->with('metager', $this)
                         ->with('browser', (new Agent())->browser())
-                        ->with('quicktips', action('MetaGerSearch@quicktips', ["search" => $this->eingabe]))
+                        ->with('quicktips', $quicktipResults)
                         ->with('focus', $this->fokus)
                         ->with('resultcount', count($this->results));
             }
@@ -244,7 +248,7 @@ class MetaGer
                         ->with('apiAuthorized', $this->apiAuthorized)
                         ->with('metager', $this)
                         ->with('browser', (new Agent())->browser())
-                        ->with('quicktips', action('MetaGerSearch@quicktips', ["search" => $this->eingabe, "quotes" => $this->sprueche]))
+                        ->with('quicktips', $quicktipResults)
                         ->with('resultcount', count($this->results))
                         ->with('focus', $this->fokus);
                     break;
@@ -257,7 +261,7 @@ class MetaGer
         $engines = $this->engines;
         // combine
         $this->combineResults($engines);
-        if(!empty($timings)){
+        if (!empty($timings)) {
             $timings["prepareResults"]["combined results"] = microtime(true) - $timings["starttime"];
         }
         // misc (WiP)
@@ -279,7 +283,7 @@ class MetaGer
                 return ($a->getRank() < $b->getRank()) ? 1 : -1;
             });
         }
-        if(!empty($timings)){
+        if (!empty($timings)) {
             $timings["prepareResults"]["sorted results"] = microtime(true) - $timings["starttime"];
         }
         # Validate Results
@@ -290,7 +294,7 @@ class MetaGer
             }
         }
         $this->results = $newResults;
-        if(!empty($timings)){
+        if (!empty($timings)) {
             $timings["prepareResults"]["validated results"] = microtime(true) - $timings["starttime"];
         }
         
@@ -310,7 +314,7 @@ class MetaGer
             $newResults[] = $ad;
         }
         $this->ads = $newResults;
-        if(!empty($timings)){
+        if (!empty($timings)) {
             $timings["prepareResults"]["validated ads"] = microtime(true) - $timings["starttime"];
         }
         #Adgoal Implementation
@@ -326,19 +330,19 @@ class MetaGer
                     }
                 }
                 $this->adgoalHash = $this->startAdgoal($this->results);
-                if(!empty($timings)){
+                if (!empty($timings)) {
                     $timings["prepareResults"]["started adgoal"] = microtime(true) - $timings["starttime"];
                 }
             }
         
             if (!$this->javascript) {
                 $this->adgoalLoaded = $this->parseAdgoal($this->results, $this->adgoalHash, true);
-                if(!empty($timings)){
+                if (!empty($timings)) {
                     $timings["prepareResults"]["parsed adgoal"] = microtime(true) - $timings["starttime"];
                 }
             } else {
                 $this->adgoalLoaded = $this->parseAdgoal($this->results, $this->adgoalHash, false);
-                if(!empty($timings)){
+                if (!empty($timings)) {
                     $timings["prepareResults"]["parsed adgoal"] = microtime(true) - $timings["starttime"];
                 }
             }
@@ -349,7 +353,7 @@ class MetaGer
         # Human Verification
         $this->humanVerification($this->results);
         $this->humanVerification($this->ads);
-        if(!empty($timings)){
+        if (!empty($timings)) {
             $timings["prepareResults"]["human verification"] = microtime(true) - $timings["starttime"];
         }
 
@@ -372,7 +376,7 @@ class MetaGer
                 'engines' => $this->next,
             ];
             Cache::put($this->getSearchUid(), serialize($this->next), 60 * 60);
-            if(!empty($timings)){
+            if (!empty($timings)) {
                 $timings["prepareResults"]["filled cache"] = microtime(true) - $timings["starttime"];
             }
         } else {
@@ -486,13 +490,13 @@ class MetaGer
         $answer = null;
 
         # Hash is true if Adgoal request wasn't started in the first place
-        if($hash === true){
+        if ($hash === true) {
             return true;
         }
 
         if ($waitForResult) {
             while (microtime(true) - $startTime < 5) {
-                $answer = Redis::get($hash);
+                $answer = Cache::get($hash);
                 if ($answer === null) {
                     usleep(50 * 1000);
                 } else {
@@ -500,7 +504,7 @@ class MetaGer
                 }
             }
         } else {
-            $answer = Redis::get($hash);
+            $answer = Cache::get($hash);
         }
         if ($answer === null) {
             return false;
@@ -550,7 +554,6 @@ class MetaGer
             \App\PrometheusExporter::Duration($requestTime, "adgoal");
         }
         return true;
-
     }
 
     public function humanVerification(&$results)
@@ -722,7 +725,6 @@ class MetaGer
         if (!empty($timings)) {
             $timings["createSearchEngines"]["saved engines"] = microtime(true) - $timings["starttime"];
         }
-
     }
 
     private function removeAdsFromListIfAdfree(&$sumas)
@@ -781,7 +783,6 @@ class MetaGer
         if (!empty($timings)) {
             $timings["startSearch"]["searches started"] = microtime(true) - $timings["starttime"];
         }
-
     }
 
     public function checkCache()
@@ -799,7 +800,6 @@ class MetaGer
                 }
             }
         }
-
     }
 
     # Spezielle Suchen und Sumas
@@ -823,7 +823,6 @@ class MetaGer
     {
         $engines = [];
         foreach ($enabledSearchengines as $engineName => $engine) {
-
             if (!isset($engine->{"parser-class"})) {
                 die(var_dump($engine));
             }
@@ -911,7 +910,7 @@ class MetaGer
         foreach ($availableFilter as $filterName => $filter) {
             if (\Request::filled($filter->{"get-parameter"})) {
                 $filter->value = \Request::input($filter->{"get-parameter"});
-            } else if (\Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== null) {
+            } elseif (\Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== null) {
                 $filter->value = \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"});
             }
         }
@@ -978,36 +977,52 @@ class MetaGer
         $mainEngines = $this->sumaFile->foki->{$this->fokus}->main;
         foreach ($mainEngines as $mainEngine) {
             foreach ($engines as $engine) {
-                if ($engine->name === $mainEngine && !$engine->loaded) {
-                    $enginesToWaitFor[] = $engine;
+                if ($engine->name === $mainEngine) {
+                    $enginesToWaitFor[] = $engine->hash;
                 }
             }
         }
 
-        $timeStart = microtime(true);
-
-        $answered = [];
-        $results = null;
-
-        # If there is no main searchengine to wait for or if the only main engine is yahoo-ads we will define a timeout of 1s
-        $forceTimeout = null;
-        if (sizeof($enginesToWaitFor) === 1 && $enginesToWaitFor[0]->name === "yahoo-ads") {
-            $forceTimeout = 1;
-        }
-
-        while (sizeof($enginesToWaitFor) > 0 || ($forceTimeout !== null && (microtime(true) - $timeStart) < $forceTimeout)) {
-            foreach ($enginesToWaitFor as $index => $engine) {
-                if (Redis::get($engine->hash) !== null) {
-                    $answered[] = $engine;
-                    unset($enginesToWaitFor[$index]);
-                    break;
+        # If no main engines are enabled by the user we will wait for all results
+        if (sizeof($enginesToWaitFor) === 0) {
+            foreach ($engines as $engine) {
+                $enginesToWaitFor[] = $engine->hash;
+            }
+        } else {
+            $newEnginesToWaitFor = [];
+            // Don't wait for engines that are already loaded in Cache
+            foreach ($enginesToWaitFor as $engineToWaitFor) {
+                foreach ($engines as $engine) {
+                    if ($engine->hash === $engineToWaitFor && !$engine->loaded) {
+                        $newEnginesToWaitFor[] = $engineToWaitFor;
+                    }
                 }
             }
+            $enginesToWaitFor = $newEnginesToWaitFor;
+        }
 
+        $timeStart = microtime(true);
+        while (sizeof($enginesToWaitFor) > 0) {
             if ((microtime(true) - $timeStart) >= 2) {
                 break;
+            }
+            $answer = Redis::brpop($enginesToWaitFor, 2);
+            
+            if ($answer === null) {
+                continue;
             } else {
-                usleep(50 * 1000);
+                Redis::lpush($answer[0], $answer[1]);
+            }
+            foreach ($engines as $index => $engine) {
+                if ($engine->hash === $answer[0]) {
+                    $engine->retrieveResults($this, $answer[1]);
+                    foreach ($enginesToWaitFor as $waitIndex => $engineToWaitFor) {
+                        if ($engineToWaitFor === $answer[0]) {
+                            unset($enginesToWaitFor[$waitIndex]);
+                            break 2;
+                        }
+                    }
+                }
             }
         }
     }
@@ -1055,7 +1070,7 @@ class MetaGer
         # Javascript option will be set by an asynchronious script we will check for it when we are fetching adgoal
         # Until then javascript parameter will be false
         $this->javascript = false;
-        if($request->filled("javascript") && is_bool($request->input("javascript"))){
+        if ($request->filled("javascript") && is_bool($request->input("javascript"))) {
             $this->javascript = boolval($request->input("javascript"));
             $request->request->remove("javascript");
         }
@@ -1123,7 +1138,7 @@ class MetaGer
         $this->newtab = $request->input('newtab', 'on');
         if ($this->newtab === "on") {
             $this->newtab = "_blank";
-        } else if ($this->framed) {
+        } elseif ($this->framed) {
             $this->newtab = "_top";
         } else {
             $this->newtab = "_self";
@@ -1224,7 +1239,7 @@ class MetaGer
                     }
                 }
             }
-        } else if ($this->request->filled("ff") || $this->request->filled("ft")) {
+        } elseif ($this->request->filled("ff") || $this->request->filled("ft")) {
             $this->request = $this->request->replace($this->request->except(["fc", "ff", "ft"]));
         }
 
@@ -1247,6 +1262,15 @@ class MetaGer
         }
     }
 
+    public function createQuicktips()
+    {
+        # Die quicktips werden als job erstellt und zur Abarbeitung freigegeben
+        $quicktips = new \App\Models\Quicktips\Quicktips($this->q, LaravelLocalization::getCurrentLocale(), $this->getTime());
+        return $quicktips;
+    }
+
+
+
     private function anonymizeIp($ip)
     {
         if (str_contains($ip, ":")) {
@@ -1305,7 +1329,7 @@ class MetaGer
         foreach ($this->sumaFile->filter->{"query-filter"} as $filterName => $filter) {
             if (!empty($filter->{"optional-parameter"}) && $request->filled($filter->{"optional-parameter"})) {
                 $this->queryFilter[$filterName] = $request->input($filter->{"optional-parameter"});
-            } else if (preg_match_all("/" . $filter->regex . "/si", $this->q, $matches) > 0) {
+            } elseif (preg_match_all("/" . $filter->regex . "/si", $this->q, $matches) > 0) {
                 switch ($filter->match) {
                     case "last":
                         $this->queryFilter[$filterName] = $matches[$filter->save][sizeof($matches[$filter->save]) - 1];
@@ -1332,7 +1356,7 @@ class MetaGer
             if (($request->filled($filter->{"get-parameter"}) && $request->input($filter->{"get-parameter"}) !== "off") ||
                 \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"}) !== null
             ) { # If the filter is set via Cookie
-            $this->parameterFilter[$filterName] = $filter;
+                $this->parameterFilter[$filterName] = $filter;
                 $this->parameterFilter[$filterName]->value = $request->input($filter->{"get-parameter"}, '');
                 if (empty($this->parameterFilter[$filterName]->value)) {
                     $this->parameterFilter[$filterName]->value = \Cookie::get($this->getFokus() . "_setting_" . $filter->{"get-parameter"});
@@ -1385,10 +1409,17 @@ class MetaGer
                         $this->hostBlacklist[] = $blacklistElement;
                     }
                 }
-            } else if (strpos($blacklistString, "*") !== 0) {
+            } elseif (strpos($blacklistString, "*") !== 0) {
                 $this->hostBlacklist[] = $blacklistString;
             }
         }
+        foreach (Cookie::get() as $key => $value) {
+            if ((stripos($key, $this->fokus.'_blpage') === 0) && (stripos($value, '*.') === false)) {
+                $this->hostBlacklist[] = $value;
+            }
+        }
+
+        $this->hostBlacklist = array_unique($this->hostBlacklist);
 
         // print the host blacklist as a user warning
         if (sizeof($this->hostBlacklist) > 0) {
@@ -1420,10 +1451,18 @@ class MetaGer
                         $this->domainBlacklist[] = substr($blacklistElement, strpos($blacklistElement, "*.") + 2);
                     }
                 }
-            } else if (strpos($blacklistString, "*.") === 0) {
+            } elseif (strpos($blacklistString, "*.") === 0) {
                 $this->domainBlacklist[] = substr($blacklistString, strpos($blacklistString, "*.") + 2);
             }
         }
+        foreach (Cookie::get() as $key => $value) {
+            if (stripos($key, $this->fokus.'_blpage') === 0 && stripos($value, '*.') === 0) {
+                $this->domainBlacklist[] = str_replace("*.", "", $value);
+            }
+        }
+
+        $this->domainBlacklist = array_unique($this->domainBlacklist);
+
         // print the domain blacklist as a user warning
         if (sizeof($this->domainBlacklist) > 0) {
             $domainString = "";
@@ -1767,9 +1806,14 @@ class MetaGer
         $cookies = \Cookie::get();
         $count = 0;
 
+        $sumaFile = MetaGer::getLanguageFile();
+        $sumaFile = json_decode(file_get_contents($sumaFile), true);
+        $foki = array_keys($sumaFile['foki']);
+
         foreach ($cookies as $key => $value) {
-            if (starts_with($key, [$this->getFokus() . "_setting_", $this->getFokus() . "_engine_"])) {
+            if (starts_with($key, [$this->getFokus() . "_setting_", $this->getFokus() . "_engine_", $this->getFokus() . "_blpage"])) {
                 $count++;
+                continue;
             }
         }
         return $count;
diff --git a/app/Models/Quicktips/Quicktips.php b/app/Models/Quicktips/Quicktips.php
index 1210568fe193be1f0f8295598e6249d8627d0fba..152268e7b318ead545871ed2735cb4ec7788a183 100644
--- a/app/Models/Quicktips/Quicktips.php
+++ b/app/Models/Quicktips/Quicktips.php
@@ -3,53 +3,57 @@
 namespace App\Models\Quicktips;
 
 use Cache;
-use LaravelLocalization;
+use Illuminate\Foundation\Bus\DispatchesJobs;
+use Illuminate\Support\Facades\Redis;
 use Log;
 
 class Quicktips
 {
+    use DispatchesJobs;
 
     private $quicktipUrl = "/1.1/quicktips.xml";
-    private $results = [];
     const QUICKTIP_NAME = "quicktips";
-    const CACHE_DURATION = 60 * 60;
+    const CACHE_DURATION = 60;
 
     private $hash;
+    private $startTime;
 
-    public function __construct($search, $quotes)
+    public function __construct($search, $locale, $max_time)
     {
-        $locale = LaravelLocalization::getCurrentLocale();
         if (env("APP_ENV") === "production") {
             $this->quicktipUrl = "https://quicktips.metager.de" . $this->quicktipUrl;
         } else {
             $this->quicktipUrl = "https://dev.quicktips.metager.de" . $this->quicktipUrl;
         }
-        $this->startSearch($search, $quotes, $locale);
+        $this->startTime = microtime(true);
+        $this->startSearch($search, $locale, $max_time);
     }
 
-    public function startSearch($search, $quotes, $locale)
+    public function startSearch($search, $locale, $max_time)
     {
-        $url = $this->quicktipUrl . "?search=" . $this->normalize_search($search) . "&locale=" . $locale . "&quotes=" . $quotes;
+        $url = $this->quicktipUrl . "?search=" . $this->normalize_search($search) . "&locale=" . $locale;
         $this->hash = md5($url);
 
-        $results = null;
+        if (!Cache::has($this->hash)) {
+            if (!Redis::exists($this->hash)) {
 
-        try {
-            if (!Cache::has($this->hash)) {
-                $results = file_get_contents($url);
-                Cache::put($this->hash, $results, Quicktips::CACHE_DURATION);
-            } else {
-                $results = Cache::get($this->hash);
-            }
-        } catch (\Exception $e) {
-            Log::error($e->getMessage());
-        }
+                // Queue this search
+                $mission = [
+                    "resulthash" => $this->hash,
+                    "url" => $url,
+                    "useragent" => "",
+                    "username" => null,
+                    "password" => null,
+                    "headers" => [],
+                    "cacheDuration" => self::CACHE_DURATION,
+                    "name" => "Quicktips",
+                ];
 
-        if ($results === null) {
-            $results = file_get_contents($url);
-        }
+                $mission = json_encode($mission);
 
-        $this->results = $this->loadResults($results);
+                Redis::rpush(\App\MetaGer::FETCHQUEUE_KEY, $mission);
+            }
+        }
     }
 
     /**
@@ -58,8 +62,9 @@ class Quicktips
      * 2. Parse the results
      * Returns an empty array if no results are found
      */
-    public function loadResults($resultsRaw)
+    public function loadResults()
     {
+        $resultsRaw = $this->retrieveResults($this->hash);
         if ($resultsRaw) {
             $results = $this->parseResults($resultsRaw);
             return $results;
@@ -73,7 +78,24 @@ class Quicktips
         $body = null;
 
         if (Cache::has($this->hash)) {
-            $body = Cache::get($this->hash);
+            return Cache::get($this->hash, false);
+        }
+
+        do {
+            $body = Redis::rpoplpush($this->hash, $this->hash);
+            if ($body === false || $body === null) {
+                usleep(50 * 1000);
+            } else {
+                break;
+            }
+        } while (microtime(true) - $this->startTime < 0.5);
+
+        if ($body === false) {
+            return false;
+        }
+
+        if ($body === "no-result") {
+            return false;
         }
 
         if ($body !== null) {
@@ -176,9 +198,4 @@ class Quicktips
     {
         return urlencode($search);
     }
-
-    public function getResults()
-    {
-        return $this->results;
-    }
 }
diff --git a/app/Models/Searchengine.php b/app/Models/Searchengine.php
index d8532cd9ed4cefad8c38db0c98af4c52ec1d4ee7..32c4021770bffa28fe75623ddc9c46618f4dc092 100644
--- a/app/Models/Searchengine.php
+++ b/app/Models/Searchengine.php
@@ -109,7 +109,8 @@ abstract class Searchengine
 
     # Standardimplementierung der getNext Funktion, damit diese immer verwendet werden kann
     public function getNext(MetaGer $metager, $result)
-    {}
+    {
+    }
 
     # Prüft, ob die Suche bereits gecached ist, ansonsted wird sie als Job dispatched
     public function startSearch(\App\MetaGer $metager, &$timings)
@@ -197,10 +198,13 @@ abstract class Searchengine
         if ($this->loaded) {
             return true;
         }
-
-        if (!$this->cached) {
-            $body = Redis::get($this->hash);
+        if (!$this->cached && empty($body)) {
+            $body = Redis::rpoplpush($this->hash, $this->hash);
+            if ($body === false) {
+                return $body;
+            }
         }
+        
         if ($body === "no-result") {
             $body = "";
         }
diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml
index bdf168cc0e8561bb226705f25721d93c78f8dfba..81570d51a2b9b28ea77644759d81a7d64e483da5 100644
--- a/chart/templates/deployment.yaml
+++ b/chart/templates/deployment.yaml
@@ -216,6 +216,11 @@ spec:
         image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
         command: ["su"]
         args: ["-s", "/bin/sh", "-c", "php artisan requests:fetcher", "nginx"]
+        volumeMounts:
+        - name: env-files
+          mountPath: /html/.env
+          subPath: .env
+          readOnly: true
         imagePullPolicy: {{ .Values.image.pullPolicy }}
         livenessProbe:
           exec:
diff --git a/composer.json b/composer.json
index 806aba038ef2eddd4e84135cea7317c342edd957..1255c1b3e02d7dd9dd1159753a3419414ba9adb6 100644
--- a/composer.json
+++ b/composer.json
@@ -15,7 +15,7 @@
         "jenssegers/agent": "^2.6",
         "laravel/framework": "5.8.*",
         "laravel/tinker": "^1.0",
-        "mcamara/laravel-localization": "dev-master#13f418e481ed06f482e4fca87ec5ff67c2949373",
+        "mcamara/laravel-localization": "1.6.*",
         "mews/captcha": "^2.2",
         "symfony/dom-crawler": "^4.1"
     },
diff --git a/resources/lang/de/hilfe.php b/resources/lang/de/hilfe.php
index d7091d395166667733879fe21c56f0bbfd0a5675..4830f0e614255c6ef5c5871da6df1df18e6720ab 100644
--- a/resources/lang/de/hilfe.php
+++ b/resources/lang/de/hilfe.php
@@ -5,17 +5,19 @@ return [
     "title" => 'MetaGer - Hilfe',
 
     "title.2" => 'Benutzung der Suchmaschine',
+    "startpage.title" => 'Die Startseite',
+    "startpage.info" => 'Die Sartseite beinhaltet das Suchfeld, oben rechts einen Button zum Aufrufen des Menus und unter dem Suchfeld einen Link, mit dem Sie MetaGer zu Ihrem Browser hinzufügen können. Im unteren Bereich finden Sie Informationen zu MetaGer und dem Trägerverein SUMA-EV.',
     "searchfield.title" => 'Das Suchfeld',
     "searchfield.info" => 'Das Suchfeld besteht aus mehreren Teilen:',
-    "searchfield.memberkey" => 'Dem Schlüsselsymbol (nur für Vereinsmitglieder): Hier können die Mitglieder des SUMA-EV Ihren Schlüssel eingeben, um die werbefreie Suche nutzen zu können. Sie wollen das auch? Werden Sie Mitglied: <a href = "/beitritt/">Beitrittsantrag</a>',
-    "searchfield.slot" => 'Dem Suchfeld: Geben Sie hier Ihren Suchbegriff ein.',
-    "searchfield.search" => 'Der Lupe: Starten Sie die Suche.',
+    "searchfield.memberkey" => 'dem Schlüsselsymbol (nur für Vereinsmitglieder): Hier können die Mitglieder des SUMA-EV Ihren Schlüssel eingeben, um die werbefreie Suche nutzen zu können. Sie wollen das auch? Werden Sie Mitglied: <a href = "/beitritt/">Beitrittsantrag</a>',
+    "searchfield.slot" => 'dem Suchfeld: Geben Sie hier Ihren Suchbegriff ein.',
+    "searchfield.search" => 'der Lupe: Starten Sie hier die Suche mit einem Klick oder drücken Sie "Enter".',
 
     "resultpage.title" => 'Die Ergebnisseite',
-    "resultpage.foci" => 'Unter dem Suchfeld sehen Sie nun 6 verschiedene Suchfoki (Web, Bilder…...), denen intern auch spezifische Suchmaschinen zugeordnet sind.',
+    "resultpage.foci" => 'Unter dem Suchfeld sehen Sie nun 6 verschiedene Suchfoki (drei im englischsprachigen Bereich) (Web, Bilder…...), denen intern auch spezifische Suchmaschinen zugeordnet sind.',
     "resultpage.choice" => 'Darunter sehen Sie zwei Punkte: gegebenenfalls „Filter“ sowie „Einstellungen“',
     "resultpage.filter" => 'Filter: Sie haben hier die Möglichkeit, Filtermöglichkeiten ein- und auszublenden und Filter anzuwenden. In jedem Suchfokus haben Sie hier andere Auswahlmöglichkeiten.',
-    "resultpage.settings" => 'Einstellungen: Hier können Sie dauerhafte Sucheinstellungen für Ihre MetaGer-Suche im aktuellen Fokus vornehmen. Sie können auch Suchmaschinen, die dem Fokus zugeordnet sind, an- und abwählen. Ihre Einstellungen werden mithilfe eines nicht personenbeziehbaren Klartextcookies gespeichert. Unter dem Punkt „Hinweis“ finden Sie einen Link, der Ihnen Ihre gesamten Einstellungen zeigt. Hier können Sie diese auch wieder mit einem Klick löschen.',
+    "resultpage.settings" => 'Einstellungen: Hier können Sie dauerhafte Sucheinstellungen für Ihre MetaGer-Suche im aktuellen Fokus vornehmen. Sie können auch Suchmaschinen, die dem Fokus zugeordnet sind, an- und abwählen. Ihre Einstellungen werden mithilfe eines nicht personenbeziehbaren Klartextcookies gespeichert. Unter dem Punkt „Hinweis“ finden Sie einen Link, der Ihnen Ihre gesamten Einstellungen zeigt. Hier können Sie diese auch wieder mit einem Klick löschen. Hier finden Sie auch einen Link, den Sie kopieren und als Bookmark speichern können. Wenn Sie das Bookmark später aufrufen, sind Ihre Einstellungen wieder parat. Außerdem haben Sie hier die Möglichkeit, sich eine persönliche Blacklist zusammenzustellen; Sie können damit also nicht nur Suchmaschinen, sonden auch spezielle Domains ausfiltern und sich damit eigene Suchsettings produzieren. Zu guter Letzt können Sie hier die Anzeige der Zitate an- und ausschalten. Sie erreichen die Einstellungsseite auch direkt über das Menu.',
 
     "stopworte.title" => 'Stoppworte',
     "stopworte.1" => "Wenn Sie unter den MetaGer-Suchergebnissen solche ausschließen wollen, in denen bestimmte Worte (Ausschlussworte / Stoppworte) vorkommen, dann erreichen Sie das, indem Sie diese Worte mit einem Minus versehen.",
@@ -39,14 +41,14 @@ return [
 
     "result.title" => 'Ergebnisse',
     "result.info.1" => 'Alle Ergebnisse werden in folgender Form ausgegeben:<p><div class="image-container"><img src="/img/hilfe-php-resultpic-01.png"></div></p>',
-    "result.info.open" => '"ÖFFNEN": Klicken Sie auf die Überschrift, den darunter stehenden Link (die URL) oder auch auf den Button "ÖFFNEN", um das Ergebnis zu öffnen. Ihre Browsereinstellungen bestimmen, ob dafür ein neuer TAB verwendet wird.',
-    "result.info.newtab" => '"IN NEUEM TAB ÖFFNEN" öffnet das Ergebnis auf jeden Fall in einem neuen TAB.',
+    "result.info.open" => '"ÖFFNEN": Klicken Sie auf die Überschrift, den darunter stehenden Link (die URL) oder auch auf den Button "ÖFFNEN", um das Ergebnis im selben TAB zu öffnen.',
+    "result.info.newtab" => '"IN NEUEM TAB ÖFFNEN" öffnet das Ergebnis in einem neuen TAB.',
     "result.info.anonym" => '"ANONYM ÖFFNEN" bewirkt, dass das Ergebnis unter dem Schutz unseres Proxys geöffnet wird. Einige Infos dazu finden Sie weiter unten auf dieser Seite.',
     "result.info.more" => 'MEHR: Wenn Sie hier klicken, dann erhalten Sie neue Optionen; das Aussehen des Ergebnisses ändert sich:<p><div class="image-container"><img src="/img/hilfe-php-resultpic-02.png"></div></p>',
     "result.info.2" => 'Die neuen Optionen sind:',
     "result.info.saveresult" => '"Ergebnis speichern" (Nur Desktopversion): Dieses Ergebnis wird in einem Sammeltab gespeichert. Der TAB erscheint rechts und bleibt über beliebig viele Suchen aktiv. (siehe <a href="#searchinsearch"> Suche in der Suche</a>)',
     "result.info.domainnewsearch" => '"Auf dieser Domain neu suchen": Auf der Domain des Ergebnisses wird "genauer nachgesehen".',
-    "result.info.hideresult" => '"ausblenden": Hiermit blenden Sie Ergebnisse dieser Domain aus. Sie können diesen Schalter auch direkt hinter Ihr Suchwort schreiben und auch verketten; ebenso ist ein "*" als Wildcard erlaubt. Sie können das zum Beispiel nutzen, indem Sie sich ein Suchergebnis mit den von Ihnen gewünschten Einschränkungen zusammenstellen. Dieses "speichern" Sie als Bookmark. Wenn Sie dieses Bookmark aufrufen, dann haben Sie sogleich Ihre Einstellungen verfügbar und müssen nur noch vorne Ihren Suchbegriff ändern.',
+    "result.info.hideresult" => '"ausblenden": Hiermit blenden Sie Ergebnisse dieser Domain aus. Sie können diesen Schalter auch direkt hinter Ihr Suchwort schreiben und auch verketten; ebenso ist ein "*" als Wildcard erlaubt. Siehe auch "Einstellungen" für eine dauerhafte Lösung.',
     'urls.title' => 'URLs ausschließen',
     'urls.explanation' => 'Sie können Suchergebnisse ausschließen, deren Ergebnislinks bestimmte Worte enthalten, indem Sie in ihrer Suche "-url:" verwenden.',
     'urls.example.1' => 'Beispiel: Sie möchten keine Ergebnisse, bei denen im Ergebnislink das Wort "Hund" auftaucht:',
diff --git a/resources/lang/de/plugin-desktop/desktop-chrome.php b/resources/lang/de/plugin-desktop/desktop-chrome.php
new file mode 100644
index 0000000000000000000000000000000000000000..9cb0337a2838f173d216fe5e2e30962fdaf8ef10
--- /dev/null
+++ b/resources/lang/de/plugin-desktop/desktop-chrome.php
@@ -0,0 +1,23 @@
+<?php
+    return[
+        
+        //Instructions for Chrome version 49-52
+        'default-search-v49.1' => 'Klicken Sie in Ihrem Chrome oben rechts auf <i class="fas fa-bars"></i> und im folgenden Menü auf "Einstellungen", um die Einstellungen Ihres Chromes zu öffnen.',
+        'default-search-v49.2' => 'Im Bereich "Suche" klicken Sie auf "Suchmaschinen verwalten...".',
+        'default-search-v49.3' => 'In der unteren Hälfte des erscheinenden Menüs fahren Sie mit der den MetaGer-Eintrag. Auf der rechten Seite des Eintrags klicken sie auf die erscheinende blaue "Als Standard"-Schaltfläche',
+
+        //Instructions for Chrome version 53-58
+        'default-search-v53.1' => 'Klicken Sie in Ihrem Chrome oben rechts auf <i class="fa fa-ellipsis-v"></i> und im folgenden Menü auf "Einstellungen", um die Einstellungen Ihres Chromes zu öffnen.',
+        'default-search-v53.2' => 'Im Bereich "Suche" klicken Sie auf "Suchmaschinen verwalten...".',
+        'default-search-v53.3' => 'In der unteren Hälfte des erscheinenden Menüs fahren Sie mit der den MetaGer-Eintrag. Auf der rechten Seite des Eintrags klicken sie auf die erscheinende blaue "Als Standard"-Schaltfläche',
+
+        //Instructions for Chrome version >=59
+        'default-search-v59.1' => 'Klicken Sie in Ihrem Chrome oben rechts auf <i class="fa fa-ellipsis-v"></i> und im folgenden Menü auf "Einstellungen", um die Einstellungen Ihres Chromes zu öffnen.',
+        'default-search-v59.2' => 'Im Bereich "Suchmaschine" klicken Sie auf "Suchmaschinen verwalten..."',
+        'default-search-v59.3' => 'In der nun angezeigten Liste, finden Sie den Eintrag "MetaGer". Fahren Sie mit der Maus über den Eintrag und klicken rechts auf <i class="fa fa-ellipsis-v"></i> und anschließend auf "Als Standard festlegen"',
+
+        'default-page-v49.1' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-ellipsis-v"></i> und öffnen Sie die "Einstellungen".',
+        'default-page-v49.2' => 'Im Bereich "Beim Start" wählen Sie "Bestimmte Seite oder Seiten öffnen und klicken anschließend auf "Neue Seite hinzufügen" bzw. "Seite festlegen".',
+        'default-page-v49.3' => 'Tragen Sie ":link" als URL bei "Neue Seite hinzufügen" ein.',
+        'default-page-v49.4' => 'Hinweis: Alle hier sichtbaren Webseiten werden nun beim Start des Browsers geöffnet. Sie können Einträge entfernen, indem Sie mit der Maus drüber fahren und rechts auf das "x" klicken.',
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-desktop/desktop-edge.php b/resources/lang/de/plugin-desktop/desktop-edge.php
new file mode 100644
index 0000000000000000000000000000000000000000..6deb41089eddc1d40e071eb5adeb80fe5437b366
--- /dev/null
+++ b/resources/lang/de/plugin-desktop/desktop-edge.php
@@ -0,0 +1,28 @@
+<?php
+    return[
+
+        //Instructions for Edge version 15-17
+        'default-search-v15.1' => 'Klicken Sie in Ihrem Browser oben rechts auf "<i class="fa fa-ellipsis-h"></i>" und wählen Sie "Einstellungen".',
+        'default-search-v15.2' => 'Scrollen Sie nach unten und klicken auf "Erweiterte Einstellungen".',
+        'default-search-v15.3' => 'Scrollen Sie erneut nach unten bis zum Punkt "In Adressleiste suchen mit" und klicken Sie auf "Ändern".',
+        'default-search-v15.4' => 'Wählen Sie "MetaGer: Sicher suchen & finden..." und klicken Sie auf "Als Standard"',
+
+        //Instructions for Edge version 18
+        'default-search-v18.1' => 'Klicken Sie in Ihrem Browser oben rechts auf "<i class="fa fa-ellipsis-h"></i>" und wählen Sie "Einstellungen".',
+        'default-search-v18.2' => 'Wählen Sie den Reiter "Erweitert".',
+        'default-search-v18.3' => 'Scrollen Sie nach unten bis zum Punkt "In Adressleiste suchen mit" und klicken Sie auf "Ändern".',
+        'default-search-v18.4' => 'Wählen Sie "MetaGer: Sicher suchen & finden..." und klicken Sie auf "Als Standard".',
+
+        //Instructions for Edge version >= 80
+        'default-search-v80.1' => 'Geben Sie "edge://settings/searchEngines" in der Adressleiste ein um in die Suchmaschineneinstellungen zu gelangen.',
+        'default-search-v80.2' => 'Klicken Sie neben dem Eintrag von MetaGer auf "<i class="fa fa-ellipsis-h"></i>" und wählen Sie "Als Standard".',
+
+        'default-page-v15.1' => 'Klicken Sie oben rechts im Browser auf "<i class="fa fa-ellipsis-h"></i>" und öffnen Sie die "Einstellungen".',
+        'default-page-v15.2' => 'Wählen Sie unter "Startseite festlegen" bzw. "Edge öffnen mit" "eine bestimmte Seite" und tragen ":link"',
+        'default-page-v15.3' => 'Klicken Sie auf <i class="fas fa-save"></i> um MetaGer als Standardsuchmaschine zu speichern.',
+
+        'default-page-v80.1' => 'Geben Sie "edge://settings/onStartup" in die Adressleiste ein um in die Einstellungen "Beim Start" zu gelangen.',
+        'default-page-v80.2' => 'Wählen Sie "Bestimmte Seite oder Seiten öffnen" und tragen ":link" als URL bei "Neue Seite hinzufügen" ein.',
+        'default-page-v80.3' => 'Hinweis: Alle hier sichtbaren Webseiten werden nun beim Start des Browsers geöffnet. Sie können Einträge entfernen, indem Sie mit der Maus drüber fahren und rechts auf "<i class="fa fa-ellipsis-h"></i>" klicken.',
+
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-desktop/desktop-firefox.php b/resources/lang/de/plugin-desktop/desktop-firefox.php
new file mode 100644
index 0000000000000000000000000000000000000000..ea217513e0c581ac147610237ce07f0b856c5d2b
--- /dev/null
+++ b/resources/lang/de/plugin-desktop/desktop-firefox.php
@@ -0,0 +1,31 @@
+<?php
+    return[
+
+        //Instructions for Firefox version 52-56
+        'default-search-v52.1' => 'Klicken Sie oben rechts neben der Adressleiste auf die Lupe mit dem Plussymbol.',
+        'default-search-v52.2' => 'Wählen Sie im erscheinenden Menü das MetaGer-Logo mit dem Plussymbol.',
+        'default-search-v52.3' => 'Geben Sie "about:preferences#search" in die Adressleiste ein um in die Sucheinstellungen zu gelangen.',
+        'default-search-v52.4' => 'Im Dropdownmenü unter "Standardsuchmaschine" steht Ihnen nun MetaGer zur Verfügung.',
+
+        //Instructions for Firefox version 57-60
+        'default-search-v57.1' => 'Geben Sie "about:preferences#search" in der Adressleiste ein um in die Sucheinstellungen zu gelangen.',
+        'default-search-v57.2' => 'Wählen Sie in den erscheinenden Einstellungen "Suchleiste zur Symbolleiste hinzufügen".',
+        'default-search-v57.3' => 'Wechseln Sie zurück in den Tab, in dem MetaGer offen ist und klicken Sie oben rechts neben der Adressleiste auf die Lupe mit dem Plussymbol.',
+        'default-search-v57.4' => 'Klicken Sie im erscheinenden Menü auf das MetaGer-Logo mit dem Plussymbol.',
+        'default-search-v57.5' => 'Gehen Sie wieder in den Tab mit den geöffneten Einstellungen. Im Dropdownmenü unter "Standardsuchmaschine" steht Ihnen nun MetaGer zur Verfügung.',
+
+        //Instructions for Firefox version >= 61
+        'plugin' => 'Das Plugin für Firefox können Sie <a href="https://addons.mozilla.org/de/firefox/addon/metager-suche/?src=search" target="_blank">hier</a> herunterladen.',
+        'default-search-v61.1' => 'Alternativ klicken Sie in Ihrem Browser oben rechts in der Adressleiste auf "<i class="fas fa-ellipsis-h"></i>" um das Menü der Seitenaktionen zu öffnen und dann auf "Suchmaschine hinzufügen"',
+        'default-search-v61.2' => 'Geben Sie "about:preferences#search" in der Adressleiste ein um in die Sucheinstellungen zu gelangen. Im Bereich "Standardsuchmaschine" wählen Sie MetaGer aus.',
+
+        //Instructions for Firefox version 52-60
+        'default-page-v52.1' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-bars" aria-hidden="true"></i><span class="sr-only">die drei horizontalen Striche</span> und öffnen Sie die "Einstellungen".',
+        'default-page-v52.2' => 'Tragen Sie im Feld "Startseite" ":link" ein.',
+
+        //Instructions for Firefox version >= 61
+        'default-page-v61.1' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-bars" aria-hidden="true"></i><span class="sr-only">die drei horizontalen Striche</span> und öffnen Sie die "Einstellungen".',
+        'default-page-v61.2' => 'Wählen Sie auf der linken Seite die Kategorie "Startseite" ',
+        'default-page-v61.3' => 'Unter "Neue Fenster und Tabs" klicken Sie auf das Dropdownmenü neben "Startseite und neue Fenster" und wählen "Benutzerdefinierte Adresse".',
+        'default-page-v61.4' => 'Tragen Sie in das erscheinende Textfeld ":link" ein.',
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-desktop/desktop-ie.php b/resources/lang/de/plugin-desktop/desktop-ie.php
new file mode 100644
index 0000000000000000000000000000000000000000..8f38a08ee041ea78fc3af1545a330450ed4538cd
--- /dev/null
+++ b/resources/lang/de/plugin-desktop/desktop-ie.php
@@ -0,0 +1,18 @@
+<?php
+    return[
+
+        //Instructions for IE 9-10
+        'default-search-v9.1' => 'Klicken Sie <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">hier</a>, um MetaGer als Suchmaschine hinzuzufügen.',
+        'default-search-v9.2' => 'Wählen Sie "Diese Suchmaschine als Standard einstellen" aus und klicken auf "Hinzufügen".',
+
+        //Instructions for IE 11
+        'default-search-v11.1' => 'Klicken Sie <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">hier</a>, um MetaGer als Suchmaschine hinzuzufügen.',
+        'default-search-v11.2' => 'Klicken Sie in Ihrem Browser oben rechts auf "<i class="fa fa-cog" aria-hidden="true"></i>".',
+        'default-search-v11.3' => 'Wählen Sie den Menüpunkt "Add-Ons verwalten".',
+        'default-search-v11.4' => 'Klicken Sie im Bereich "Add-On-Typen" auf "Suchanbieter" und anschließend im rechten Bereich auf MetaGer.',
+        'default-search-v11.5' => 'Bestätigen Sie unten mit dem Knopf "Als Standard".',
+
+        'default-page-v9.1' => 'Klicken Sie <a href="/" target="_blank" rel="noopener">hier</a> um MetaGer in einem neuen Tab zu öffnen.',
+        'default-page-v9.2' => 'Im neuen Tab klicken Sie oben links auf den Pfeil neben dem <i class="fas fa-home" aria-hidden="true"></i> und anschließend auf "Startseite ändern oder hinzufügen".',
+        'default-page-v9.3' => 'Im erscheinenden Popup wählen Sie "Diese Seite als einzige Startseite nutzen" und anschließend auf "Ja".',
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-desktop/desktop-opera.php b/resources/lang/de/plugin-desktop/desktop-opera.php
new file mode 100644
index 0000000000000000000000000000000000000000..e2633078114c90e7fb00f43d7cc97e11d182cd0e
--- /dev/null
+++ b/resources/lang/de/plugin-desktop/desktop-opera.php
@@ -0,0 +1,14 @@
+<?php
+    return[
+
+        //Instructions for Opera versions >=36
+        'default-search-v36.1' => 'Klicken Sie mit der rechten Maustaste auf das Sucheingabefeld am Ende dieser Anleitung.',
+        'default-search-v36.2' => 'Wählen Sie im Kontextmenü "Suchmaschine erstellen...".',
+        'default-search-v36.3' => 'Klicken Sie im Popup auf "erstellen".',
+        //link to desktop-unable
+
+        'default-page-v36.1' => 'Klicken Sie oben links im Browser auf das Opera-Symbol bzw. "Menü" und öffnen Sie die "Einstellungen".',
+        'default-page-v36.2' => 'Im Bereich "Beim Start" wählen Sie "Bestimmte Seite oder Seiten öffnen und klicken anschließend auf "Neue Seite hinzufügen" bzw. "Seite festlegen".',
+        'default-page-v36.3' => 'Tragen Sie ":link" als URL bei "Neue Seite hinzufügen" ein.',
+        'default-page-v36.4' => 'Hinweis: Alle hier sichtbaren Webseiten werden nun beim Start des Browsers geöffnet. Sie können Einträge entfernen, indem Sie neben dem Eintrag auf "<i class="fas fa-ellipsis-h"></i>" klicken.',
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-desktop/desktop-safari.php b/resources/lang/de/plugin-desktop/desktop-safari.php
new file mode 100644
index 0000000000000000000000000000000000000000..711a0696f3b27a3c2a74781ab4bc22dd35462b13
--- /dev/null
+++ b/resources/lang/de/plugin-desktop/desktop-safari.php
@@ -0,0 +1,8 @@
+<?php
+    return[
+
+        //link to unable
+        'default-page-v10.1' => 'Klicken Sie <a href="/" target="_blank" rel="noopener">hier</a> um MetaGer in einem neuen Tab zu öffnen.',
+        'default-page-v10.2' => 'Klicken Sie oben links auf "Safari" und wählen Sie "Einstellungen".',
+        'default-page-v10.3' => 'Klicken Sie unter dem Punkt "Startseite" auf die Schaltfläche "Aktuelle Seite einstellen".'
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-desktop/desktop-vivaldi.php b/resources/lang/de/plugin-desktop/desktop-vivaldi.php
new file mode 100644
index 0000000000000000000000000000000000000000..486cd2f020f9c51d57eb465442a7de53b9d7bd43
--- /dev/null
+++ b/resources/lang/de/plugin-desktop/desktop-vivaldi.php
@@ -0,0 +1,11 @@
+<?php
+    return[
+
+        //Instructions for Vivaldi version 3.3
+        'default-search-v3-3.1' => 'Klicken Sie mit der rechten Maustaste auf das Sucheingabefeld unter der Anleitung.',
+        'default-search-v3-3.2' => 'Wählen Sie im Kontextmenü "Suche erstellen..."',
+        'default-search-v3-3.3' => 'Klicken Sie im Popup auf "Als Standard-Suche festlegen" und anschließend auf "Hinzufügen".',
+
+        'default-page-v3-3.1' => 'Klicken Sie oben links auf das Vivaldi-Symbol und wählen Sie unter "Extras" den Menüpunkt "<i class="fa fa-cog" aria-hidden="true"></i> Einstellungen"',
+        'default-page-v3-3.2' => 'Im erscheinenden Fenster unter "Startseite" wählen Sie  "Benutzerdefiniert:" und tragen :link ein.',
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-mobile/mobile-chrome.php b/resources/lang/de/plugin-mobile/mobile-chrome.php
new file mode 100644
index 0000000000000000000000000000000000000000..dbe5edc5104047e53ae62ce436ab72398cd0916f
--- /dev/null
+++ b/resources/lang/de/plugin-mobile/mobile-chrome.php
@@ -0,0 +1,15 @@
+<?php
+    return[
+
+        'default-search-v83.1' => 'Tippen Sie in Ihrem Browser oben rechts auf "<i class="fas fa-ellipsis-v"></i>" um das Browsermenü zu öffnen.',
+        'default-search-v83.2' => 'Wählen Sie den Menüpunkt "Einstellungen".',
+        'default-search-v83.3' => 'In dem dann erscheinenden Menü wählen Sie in der Kategorie "Grundeinstellungen" den Menüpunkt "Suchmaschine".',
+        'default-search-v83.4' => 'Tippen Sie in der Kategorie "Kürzlich besucht" auf MetaGer.',
+        'default-search-v83.5' => 'Sollte der MetaGer-Eintrag bei Ihnen nicht vorhanden sein, nutzen Sie die Suchleiste unterhalb der Anleitung für eine Suchanfrage und versuchen Sie es erneut.',
+
+        'default-page-v83.1' => 'Tippen Sie in Ihrem Browser oben rechts auf "<i class="fas fa-ellipsis-v"></i>" um das Browsermenü zu öffnen.',
+        'default-page-v83.2' => 'Wählen Sie den Menüpunkt "Einstellungen".',
+        'default-page-v83.3' => 'In dem dann erscheinenden Menü wählen Sie in der Kategorie "Erweitert" den Menüpunkt "Startseite".',
+        'default-page-v83.4' => 'Tippen Sie auf "Benutzerdefinierte Webadresse eingeben" und tragen ":link" ein.',
+
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-mobile/mobile-edge.php b/resources/lang/de/plugin-mobile/mobile-edge.php
new file mode 100644
index 0000000000000000000000000000000000000000..277a664dcb9d3ddcb7b7f3954310c40a6ed5c177
--- /dev/null
+++ b/resources/lang/de/plugin-mobile/mobile-edge.php
@@ -0,0 +1,14 @@
+<?php
+    return[
+
+        'default-search-v45.1' => 'Tippen Sie in Ihrem Browser unten in der Mitte auf "<i class="fas fa-ellipsis-h"></i>" um das Browsermenü zu öffnen.',
+        'default-search-v45.2' => 'Wählen Sie den Menüpunkt Einstellungen auf der rechten Seite des erscheinenden Menüs.',
+        'default-search-v45.3' => 'Scrollen Sie nach unten und tippen in der Kategorie "Erweitert" auf "Suchen".',
+        'default-search-v45.4' => 'Tippen Sie auf "Standardsuchmaschine" und wählen Sie in der Kategorie "Kürzlich besucht" MetaGer aus.',
+        'default-search-v45.5' => 'Sollte der MetaGer-Eintrag bei Ihnen nicht vorhanden sein, nutzen Sie die Suchleiste unterhalb der Anleitung für eine Suchanfrage und versuchen Sie es erneut.',
+
+        'default-page-v45.1' => 'Klicken Sie <a href="/" target="_blank" rel="noopener">hier</a> um MetaGer in einem neuen Tab zu öffnen.',
+        'default-page-v45.2' => 'Tippen Sie in Ihrem Browser unten in der Mitte auf "<i class="fas fa-ellipsis-h"></i>" um das Browsermenü zu öffnen.',
+        'default-page-v45.3' => 'Tippen Sie in der Kategorie "Grundlegend" auf "Startseite".',
+        'default-page-v45.4' => 'Wählen Sie "Bestimmte Seite" und tippen Sie auf "Aktuelle Seite verwenden" und anschließend auf "Speichern".',
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-mobile/mobile-firefox-klar.php b/resources/lang/de/plugin-mobile/mobile-firefox-klar.php
new file mode 100644
index 0000000000000000000000000000000000000000..6e6d1bf33c79852295f78522c2bf68db3f34b205
--- /dev/null
+++ b/resources/lang/de/plugin-mobile/mobile-firefox-klar.php
@@ -0,0 +1,10 @@
+<?php
+    return[
+
+        'search-string' => 'Such-String:',
+
+        'default-search-v8-8' => 'Öffnen Sie die Einstellungen Ihres Browsers über das Zahnrad (unter Android <i class="fas fa-ellipsis-v"></i>) rechts neben der Suchleiste',
+        'default-search-v8-8' => 'Klicken Sie unter dem Menüpunkt "Suche" auf "Suchmaschine". Aktuell wird die voreingestellte Suchmaschine angezeigt.',
+        'default-search-v8-8' => 'Klicken Sie auf "Weitere Suchmaschine hinzufügen": Geben Sie "MetaGer" als Namen und den Suchstring ein.',
+        'default-search-v8-8' => 'Achten Sie hierbei darauf, dass sich keine Leerzeichen am Ende des Suchstrings "einschleichen", da Firefox Klar die Speicherung der Einstellung sonst verweigert.',
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-mobile/mobile-firefox.php b/resources/lang/de/plugin-mobile/mobile-firefox.php
new file mode 100644
index 0000000000000000000000000000000000000000..e2ed138cba772494fccda9cc07e150f770b526aa
--- /dev/null
+++ b/resources/lang/de/plugin-mobile/mobile-firefox.php
@@ -0,0 +1,17 @@
+<?php
+    return[
+
+        'search-string' => 'Such-String:',
+
+        //Instructions for Firefox Mobile version < 80
+        'default-search-vlt80.1' => 'Tippen und halten Sie mit dem Finger auf dem unten stehenden Suchfeld gedrückt.',
+        'default-search-vlt80.2' => 'Im geöffneten Kontextmenü können Sie "Suchmaschine hinzufügen" auswählen',
+        'default-search-vlt80.3' => 'In den Browsereinstellungen haben Sie nun die Möglichkeit im Bereich "Suchen" MetaGer als Standardsuchmaschine zu wählen.',
+
+        //Instructions for Firefox Mobile version >= 80
+        'default-search-v80.1' => 'Tippen Sie in Ihrem Browser unten rechts auf "<i class="fas fa-ellipsis-v"></i>" um das Browsermenü zu öffnen.',
+        'default-search-v80.2' => 'Wählen Sie den Menüpunkt Einstellungen.',
+        'default-search-v80.3' => 'In dem dann erscheinenden Menü wählen Sie in der Kategorie "Allgemein" den Menüpunkt "Suchen".',
+        'default-search-v80.4' => 'Tippen Sie auf "+ Suchmaschine hinzufügen".',
+        'default-search-v80.5' => 'Wählen Sie "Andere" aus und tragen darunter den Namen (MetaGer) und den Such-String ein. Bestätigen Sie mit "<i class="fas fa-check"></i>" in der rechten oberen Ecke.',
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-mobile/mobile-opera.php b/resources/lang/de/plugin-mobile/mobile-opera.php
new file mode 100644
index 0000000000000000000000000000000000000000..e061a35845f1a18bdd2d98a364c5ef2dc65348e8
--- /dev/null
+++ b/resources/lang/de/plugin-mobile/mobile-opera.php
@@ -0,0 +1,9 @@
+<?php
+    return[
+
+        'default-search-v60.1' => 'Tippen und halten Sie mit dem Finger auf das Sucheingabefeld unter der Anleitung.',
+        'default-search-v60.2' => 'Wählen Sie im erscheinenden Menü "Suchmaschine hinzufügen...".',
+        'default-search-v60.3' => 'Tippen Sie im Popup auf "OK".',
+        'default-search-v60.4' => 'Nun können Sie in einem neuen Tab durch das Tippen auf das Logo Ihrer Standardsuchmaschine MetaGer auswählen',        
+        //link to mobile-unable
+    ];
\ No newline at end of file
diff --git a/resources/lang/de/plugin-page.php b/resources/lang/de/plugin-page.php
index 8890a276f35b1dbf93469b90bb89dbb0898a0053..235f4dfc51354d7fcac95ba831838e5cf897a285 100644
--- a/resources/lang/de/plugin-page.php
+++ b/resources/lang/de/plugin-page.php
@@ -2,84 +2,29 @@
 
 return [
     'open-modal' => 'MetaGer-Plugin hinzufügen',
-    'open-modal.title' => 'MetaGer zu Ihren Browser hinzufügen',
-    'head.1' => 'MetaGer zum Firefox hinzufügen',
-    'head.2' => 'MetaGer zum Chrome hinzufügen',
-    'head.3' => 'MetaGer zum Opera hinzufügen',
-    'head.4' => 'MetaGer zum Internet Explorer hinzufügen',
-    'head.5' => 'MetaGer zum Microsoft Edge hinzufügen',
-    'head.6' => 'MetaGer zum Safari hinzufügen',
-    'head.7' => 'MetaGer zum Vivaldi hinzufügen',
-    'head.8' => 'MetaGer zum Firefox Klar hinzufügen',
-
+    'open-modal.title' => 'MetaGer zu Ihrem Browser hinzufügen',
+    'head.0' => 'Firefox installieren und MetaGer hinzufügen',
+    'head.1' => 'MetaGer zu Firefox hinzufügen',
+    'head.2' => 'MetaGer zu Chrome hinzufügen',
+    'head.3' => 'MetaGer zu Opera hinzufügen',
+    'head.4' => 'MetaGer zu Internet Explorer hinzufügen',
+    'head.5' => 'MetaGer zu Microsoft Edge hinzufügen',
+    'head.6' => 'MetaGer zu Safari hinzufügen',
+    'head.7' => 'MetaGer zu Vivaldi hinzufügen',
+    'head.8' => 'MetaGer zu Firefox Klar hinzufügen',
+    'head.9' => 'MetaGer zu UCBrowser hinzufügen',
+    'head.10' => 'Metager zu Samsung Internet hinzufügen',
+
+    'browser-download' => 'Firefox herunterladen',
+    'firefox-plugin' => 'MetaGer als Standardsuchmaschine mit Add-on einrichten',
+    'firefox-default-search' => 'MetaGer als Standardsuchmaschine ohne Add-on einrichten',
     'default-search' => 'MetaGer als Standardsuchmaschine einrichten',
-
-    'firefox.plugin' => 'Das Plugin für Firefox können Sie <a href="https://addons.mozilla.org/de/firefox/addon/metager-suche/?src=search" target="_blank">hier</a> herunterladen.',
-    'firefox.1' => 'Klicken Sie in Ihrem Browser oben rechts in der Adressleiste auf "<i class="fas fa-ellipsis-h"></i>" um das Menü der Seitenaktionen zu öffnen und dann auf "Suchmaschine hinzufügen" (siehe Bild)',
-    'firefox.2' => 'Öffnen Sie die Firefox Einstellungen. Geben Sie hierfür "about:preferences#search" in die Adressleiste ein. Im Bereich "Standardsuchmaschine" wählen Sie MetaGer aus (siehe Bild).',
-    'firefox.3' => 'MetaGer als Startseite im :browser einrichten',
-    'firefox.4' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-bars" aria-hidden="true"></i><span class="sr-only">die drei horizontalen Striche</span> (Menü) und öffnen Sie die "Einstellungen"',
-    'firefox.5' => 'Tragen Sie im Feld "Startseite" "https://metager.de" ein.',
-
-    'firefox-klar.1' => 'Öffnen Sie die Einstellungen Ihres Browsers über das Zahnrad (unter Android <i class="fa fa-ellipsis-v"></i>) rechts neben der Suchleiste',
-    'firefox-klar.2' => 'Klicken Sie unter dem Menüpunkt "Suche" auf "Suchmaschine". Aktuell wird die voreingestellte Suchmaschine angezeigt.',
-    'firefox-klar.3' => 'Klicken Sie auf "Weitere Suchmaschine hinzufügen": Geben Sie "MetaGer" als Namen und "https://metager.de/meta/meta.ger3?eingabe=%s" als Suchstring ein.',
-    'firefox-klar.4' => 'Achten Sie hierbei darauf, dass sich keine Leerzeichen am Ende des Suchstrings "einschleichen", da Firefox Klar die Speicherung der Einstellung sonst verweigert.',
-
-    'chrome.1' => 'Klicken Sie in Ihrem Chrome oben rechts auf <i class="fa fa-ellipsis-v"></i> und im folgenden Menü auf "Einstellungen", um die Einstellungen Ihres Chromes zu öffnen.',
-    'chrome.2' => 'Im Bereich "Suchen" klicken Sie auf Suchmaschinen verwalten...',
-    'chrome.3' => 'In der nun angezeigten Liste, finden Sie den Eintrag "MetaGer". Fahren Sie mit der Maus über den Eintrag und klicken auf "Als Standard festlegen"',
-    'chrome.4' => 'MetaGer als Startseite im :browser einrichten',
-    'chrome.5' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-ellipsis-v"></i> und öffnen Sie die "Einstellungen"',
-    'chrome.6' => 'Im Bereich "Beim Start" wählen Sie "Bestimmte Seite oder Seiten öffnen und klicken anschließend auf "Seiten festlegen"',
-    'chrome.7' => 'Tragen Sie "https://metager.de" als URL bei "Neue Seite hinzufügen ein"',
-    'chrome.8' => 'Hinweis: Alle hier sichtbaren Webseiten werden nun beim Start des Browsers geöffnet. Sie können Einträge entfernen, indem Sie mit der Maus drüber fahren und rechts auf das "x" klicken.',
-
-    'opera.1' => 'Klicken Sie <a href="/" target="_blank" rel="noopener">hier</a> um MetaGer in einem neuen Tab zu öffnen.',
-    'opera.2' => 'Im neuen Tab klicken Sie mit der rechten Maustaste auf das Sucheingabefeld in der Mitte der Seite.',
-    'opera.3' => 'Wählen Sie im Kontextmenü "Suchmaschine erstellen..."',
-    'opera.4' => 'Klicken Sie im Popup auf "erstellen"',
-    'opera.5' => '(Leider ist es Suchmaschinen nicht mehr möglich im Opera als Standard eingestellt zu werden, aber <a href="https://www.mozilla.org/de/firefox/new/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, der dies unterstützt.)',
-    'opera.6' => 'MetaGer als Startseite im :browser einrichten',
-    'opera.7' => 'Klicken Sie im Browser-Menü auf "Bearbeiten"->"Einstellungen"',
-    'opera.8' => 'Im Bereich "Beim Starten" wählen Sie "Eine bestimmte Seite, oder bestimmte Seiten öffnen
-" und anschließend "Seiten festlegen"',
-    'opera.9' => 'Tragen Sie bei "Adresse eingeben" "https://metager.de" ein und bestätigen mit Enter',
-    'opera.10' => 'Klicken Sie auf "OK"',
-
-    'IE.1' => 'Klicken Sie <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">hier</a>, um MetaGer als Suchmaschine hinzuzufügen',
-    'IE.4' => 'Klicken Sie in Ihrem Browser oben rechts auf Extras',
-    'IE.5' => 'Wählen Sie den Menüpunkt "Add-Ons verwalten"',
-    'IE.6' => 'Klicken Sie im Bereich Add-On-Typen auf "Suchanbieter" und danach im rechten Bereich auf "MetaGer"',
-    'IE.7' => 'Wählen Sie unten den Knopf "Als Standard"',
-    'IE.8' => 'MetaGer als Startseite im :browser einrichten',
-    'IE.9' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-cog"></i> und öffnen Sie die "Internetoptionen"',
-    'IE.10' => 'Falls MetaGer die einzige Startseite sein soll, markieren Sie im Textfeld den kompletten Text und ersetzen Ihn durch "https://metager.de"',
-    'IE.11' => 'Klicken Sie auf "OK"',
-
-    'edge.1' => 'Klicken Sie in Ihrem Browser oben rechts auf Extras (',
-    'edge.2' => ') und wählen Sie "Einstellungen"',
-    'edge.3' => 'Scrollen Sie nach unten und klicken auf "Erweiterte Einstellungen anzeigen"',
-    'edge.4' => 'Scrollen Sie erneut nach unten bis zum Punkt "In Adressleiste suchen mit" und klicken Sie auf "Ändern"',
-    'edge.5' => 'Wählen Sie "MetaGer: Sicher suchen & finden..." und klicken Sie auf "Als Standard"',
-    'edge.6' => 'MetaGer als Startseite im :browser einrichten',
-    'edge.7' => 'Klicken Sie oben rechts im Browser auf <i class="fa fa-ellipsis-h"></i> und öffnen Sie die "Einstellungen"',
-    'edge.8' => 'Wählen Sie im Bereich "Öffnen mit" den Punkt "Bestimmte Seite(n)" aus',
-    'edge.9' => 'Im Dropdown-Menü darunter wählen Sie "Benutzerdefiniert" aus',
-    'edge.10' => 'Im Bereich darunter tragen Sie "https://metager.de" in das Feld "Webadresse eingeben" ein und klicken auf das "+" Symbol',
-    'edge.11' => 'Entfernen Sie alle Einträge, die beim Start nicht geöffnet werden sollen (z.B. about:start), indem Sie rechts auf das kleine "x" klicken.',
-
-    'safari.1' => 'Leider können Sie MetaGer nicht zum Safari hinzufügen, weil alle Plugins, die dem Hinzufügen alternativer Suchmaschinen dienten, nicht mehr akzeptiert werden.',
-   
-
-    'vivaldi.1' => 'Klicken Sie in Ihrem Browser oben links auf das rote Vivaldi Logo und wählen Sie zuerst "Werkzeuge", dann im Untermenü "Einstellungen".',
-    'vivaldi.2' => 'In dem dann erscheinenden Menu wählen Sie bitte "Suche".',
-    'vivaldi.3' => 'Wählen Sie "Neue Suche hinzufügen".',
-    'vivaldi.4' => 'Tragen Sie im Feld URL "https://metager.de/meta/meta.ger3?eingabe=%s" ein.',
-    'vivaldi.5' => 'Tragen Sie als Beschreibung "MetaGer" und als Kürzel "mg" ein.',
-    'vivaldi.6' => 'Wenn Sie MetaGer als Standardsuchmaschine verwenden möchten, setzen Sie ein Häkchen bei "Als Standard setzen".',
-    'vivaldi.7' => 'Klicken Sie auf "Hinzufügen".',
-    'vivaldi.8' => 'MetaGer als Startseite im :browser einrichten',
-    'vivaldi.9' => 'Klicken Sie in Ihrem Browser oben links auf das rote Vivaldi Logo und wählen Sie zuerst "Werkzeuge", dann im Untermenü "Einstellungen".',
-    'vivaldi.10' => 'Tragen Sie im Feld "Startseite" "https://metager.de" ein.',
+    'default-page' => 'MetaGer als Startseite einrichten',
+
+    //Unable: Opera Desktop, Safari Desktop, UC Browser Mobile, Safari Mobile
+    'desktop-unable' => 'Leider bietet der von Ihnen genutzte Browser nicht die Möglichkeit MetaGer als (Standard-)Suchmaschine einzustellen, aber <a href="https://www.mozilla.org/de/firefox/new/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, für den wir eine Anleitung haben.',
+    'mobile-unable' => 'Leider bietet der von Ihnen genutzte Browser nicht die Möglichkeit MetaGer als (Standard-)Suchmaschine einzustellen, aber <a href="https://www.mozilla.org/de/firefox/mobile/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, für den wir eine Anleitung haben.',
+    
+    'desktop-notlisted' => 'Leider ist uns bisher nicht bekannt, wie die (Standard-)Suchmaschine in dem von Ihnen genutzen Browser einzustellen ist, aber <a href="https://www.mozilla.org/de/firefox/mobile/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, bei dem wir es wissen.' ,
+    'mobile-notlisted' => 'Leider ist uns bisher nicht bekannt, wie die (Standard-)Suchmaschine in dem von Ihnen genutzen Browser einzustellen ist, aber <a href="https://www.mozilla.org/de/firefox/mobile/" target="_blank" rel="noopener">hier</a> können Sie mit Firefox einen Open-Source Browser installieren, bei dem wir es wissen.' ,
 ];
diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php
index 773ad441c6474e9195f5c961ef6df87548015433..e0ba814efba9ab44714bd6bcac8de27b962771a7 100644
--- a/resources/lang/de/settings.php
+++ b/resources/lang/de/settings.php
@@ -1,33 +1,42 @@
 <?php
 
 return [
-    "header.1" => "Sucheinstellungen",
-    "text.1" => "Hier können Sie dauerhafte Sucheinstellungen für Ihre MetaGer-Suche im Fokus :fokusName vornehmen. Sollten diese nicht dauerhaft gespeichert bleiben, überprüfen Sie bitte in Ihren Browsereinstellungen, ob dieser beim Beenden gespeicherte Cookies löscht.",
+    'header.1' => 'Sucheinstellungen',
+    'text.1' => 'Hier können Sie dauerhafte Sucheinstellungen für Ihre MetaGer-Suche im Fokus :fokusName vornehmen. Sollten diese nicht dauerhaft gespeichert bleiben, überprüfen Sie bitte in Ihren Browsereinstellungen, ob dieser beim Beenden gespeicherte Cookies löscht.',
 
-    "hint.header" => "Hinweis",
-    "hint.text" => "Um Ihre Sucheinstellungen zu speichern, verwenden wir nicht-personenbeziehbare Cookies. Diese werden im Klartext in Ihrem Browser gespeichert. Sie können sich eine Übersicht aller von Ihnen vorgenommenen Einstellungen und Cookies <a href=\":link\">anzeigen lassen</a>.",
+    'hint.header' => 'Hinweis',
+    'hint.text' => 'Um Ihre Sucheinstellungen zu speichern, verwenden wir nicht-personenbeziehbare Cookies. Diese werden im Klartext in Ihrem Browser gespeichert. Sie können sich eine Übersicht aller von Ihnen vorgenommenen Einstellungen und Cookies <a href=:link>anzeigen lassen</a>.',
+    'hint.loadSettings' => 'Hier finden Sie einen Link, den Sie als Startseite bzw. Lesezeichen einrichten können um Ihre aktuell gesetzen Einstellungen mitzunehmen. Der Link erstellt beim Aufrufen Cookies mit dem entsprechenden Einstellungen.',
 
-    "header.2" => "Verwendete Suchmaschinen",
-    "text.2" => "Nachfolgend sehen Sie alle für diesen Fokus verfügbaren Suchmaschinen. Mit einem Klick auf den Namen können Sie Ein-/Ausgeschaltet werden. Eingeschaltete Suchmaschinen sind in grün dargestellt. Ausgeschaltete in rot oder grau.",
-    "disabledByFilter" => "Durch Suchfilter deaktiviert:",
+    'header.2' => 'Verwendete Suchmaschinen',
+    'text.2' => 'Nachfolgend sehen Sie alle für diesen Fokus verfügbaren Suchmaschinen. Mit einem Klick auf den Namen können Sie Ein-/Ausgeschaltet werden. Eingeschaltete Suchmaschinen sind in grün dargestellt. Ausgeschaltete in rot oder grau.',
+    'disabledByFilter' => 'Durch Suchfilter deaktiviert:',
 
-    "header.3" => "Suchfilter",
-    "text.3" => "An dieser Stelle können Sie Suchfilter dauerhaft setzen. Mit der Auswahl eines Suchfilters stehen nur noch Suchmaschinen zur Verfügung, welche diesen Filter unterstützen. Umgekehrt werden auch nur Suchfilter angezeigt, welche von der aktuellen Suchmaschinenauswahl unterstützt werden.",
+    'header.3' => 'Suchfilter',
+    'text.3' => 'An dieser Stelle können Sie Suchfilter dauerhaft setzen. Mit der Auswahl eines Suchfilters stehen nur noch Suchmaschinen zur Verfügung, welche diesen Filter unterstützen. Umgekehrt werden auch nur Suchfilter angezeigt, welche von der aktuellen Suchmaschinenauswahl unterstützt werden.',
 
-    "save" => "Speichern",
-    "reset" => "Alle Einstellungen löschen",
-    "back" => "Zurück zur letzten Seite",
+    'header.4' => 'Blacklist',
+    'text.4' => 'Hier können Sie Domains eintragen, welche aus Ihrer Suche ausgeschlossen werden sollen. Wenn Sie alle Subdomains einschließen wollen, starten Sie mit "*.".',
+    'address' => 'Adresseingabe',
 
-    // Translations from the settings overview
-    'noSettings' => "Aktuell sind keine Einstellungen gesetzt!",
-    'allSettings.header' => "Auf :root gesetzte Einstellungen",
-    'allSettings.text' => "Hier finden Sie eine Übersicht aller von Ihnen gesetzten Einstellungen und Cookies. Sie können einzelne Einträge löschen, oder alle entfernen. Bedenken Sie, dass die zugehörigen Einstellungen dann nicht mehr verwendet werden.",
-
-    'meaning' => "Bedeutung",
-    'actions' => "Aktionen",
+    'save' => 'Speichern',
+    'reset' => 'Alle Einstellungen löschen',
+    'back' => 'Zurück zur letzten Seite',
+    'add' => 'Hinzufügen',
+    'clear' => 'Blacklist leeren',
+    'copy' => 'Kopieren',
 
-    'engineDisabled' => "Die Suchmaschine :engine wird im Fokus :focus nicht abgefragt.",
-    'inFocus' => "im Fokus",
-    'key' => "Ihr Schlüssel für die werbefreie Suche",
-    'removeCookie' => "Diesen Cookie entfernen",
+    // Translations from the settings overview
+    'noSettings' => 'Aktuell sind keine Einstellungen gesetzt!',
+    'allSettings.header' => 'Auf :root gesetzte Einstellungen',
+    'allSettings.text' => 'Hier finden Sie eine Übersicht aller von Ihnen gesetzten Einstellungen und Cookies. Sie können einzelne Einträge löschen, oder alle entfernen. Bedenken Sie, dass die zugehörigen Einstellungen dann nicht mehr verwendet werden.',
+
+    'meaning' => 'Bedeutung',
+    'actions' => 'Aktionen',
+
+    'engineDisabled' => 'Die Suchmaschine :engine wird im Fokus :focus nicht abgefragt.',
+    'inFocus' => 'im Fokus',
+    'key' => 'Ihr Schlüssel für die werbefreie Suche',
+    'blentry' => 'Blacklisteintrag',
+    'removeCookie' => 'Diesen Cookie entfernen',
 ];
diff --git a/resources/lang/de/tor.php b/resources/lang/de/tor.php
index 80503cd3dfe8f92d188909f1e1243d7ee640006b..95fc79d121230f39737a3836dd4927f8b1048209 100644
--- a/resources/lang/de/tor.php
+++ b/resources/lang/de/tor.php
@@ -3,4 +3,5 @@
 return [
     'description' => 'Nachfolgend finden Sie den Link zum Hidden-Service von MetaGer. Achtung: Dieser Link ist ausschließlich über das Tor-Netzwerk erreichbar. Ihr Browser produziert eine Fehlermeldung, wenn er nicht mit diesem verbunden ist.',
     'torbutton' => 'Hidden-Service öffnen',
+    'torurl' => 'http://metagerv65pwclop2rsfzg4jwowpavpwd6grhhlvdgsswvo6ii4akgyd.onion/',
 ];
diff --git a/resources/lang/en/hilfe.php b/resources/lang/en/hilfe.php
index 9fbdbf728ca4a2bc162194641525660d22d1993c..193ecaaac2004bc3d5db204fd1e0649670dbb573 100644
--- a/resources/lang/en/hilfe.php
+++ b/resources/lang/en/hilfe.php
@@ -5,6 +5,9 @@ return [
 
     "title.2" => 'Use of the search engine',
 
+    "startpage.title" => 'The start page',
+    "startpage.info" => 'The start page contains the search field and a menu button in the upper right corner. There is a link below the search field which let you add MetaGer to your web browser. At last, at the bottom of the page there is some information about MetaGer and its supporting association, the SUMA-EV.',
+
     "searchfield.title" => 'The search field',
     "searchfield.info" => 'The search field contains:',
     "searchfield.memberkey" => 'The key symbol (only SUMA-EV members): Members can enter a private key to use the "free-of-advertising" metager search. If you want this too, just become a member: <a href = "https://metager.org/beitritt">Membership form</a>',
@@ -12,10 +15,13 @@ return [
     "searchfield.search" => 'The magnifier: Start your search.',
 
     "resultpage.title" => 'The result page',
-    "resultpage.foci" => 'There are six different search focuses below the search field (Web, Pictures...). We assigned specific search engines to these focuses.',
+    "resultpage.foci" => 'There are three (six for the german branch) different search focuses below the search field (Web, Pictures and Shopping). We assigned specific search engines to these focuses.',
     "resultpage.choice" => 'Below these you have two links:',
     "resultpage.filter" => 'Filter: Toggle filters on / off and apply settings here. Each focus has its own assortment.',
-    "resultpage.settings" => 'Settings: Apply here your permanent settings for the current focus. You can select / unselect search engines here, too. Your settings are stored as non-personally identifiable cookies. Click "Overview" to see your settings. If settings have been stored you find a deletion button at the end of the page.',
+    "resultpage.settings" => 'Settings: Apply here your permanent settings for the current focus. You can select / unselect search engines here, too. Your settings are stored as non-personally identifiable cookies. Click "Overview" to see your settings. If settings have been stored you find a deletion button at the end of the page. The section "hints" offers a link to the cookie list and also a box with a link which is useful to copy and save as a bookmark. Using the bookmark you will have all settings working immediately. Further the section "Black List" let you exclude your entries from being used for searching. At last you may hide / unhide the citations here. There is also a menu entry to access the settings page.',
+
+
+
 
     "stopworte.title" => "Exclude single words",
     "stopworte.1" => "If you want to exclude words within the search result, you have to put a \"-\" in front of that word",
@@ -39,14 +45,14 @@ return [
 
     "result.title" => 'Results',
     "result.info.1" => 'All results will look like this:<p><div class="image-container"><img src="/img/hilfe-php-resultpic-en-01.png"></div></p>',
-    "result.info.open" => '"OPEN": Click the headline, the link below (URL) or the "OPEN" button to open the result. This will be in the same or a new TAB due to your browser settings.',
-    "result.info.newtab" => '"OPEN IN NEW TAB" will open the result in a new TAB in any case.',
+    "result.info.open" => '"OPEN": Click the headline, the link below (URL) or the "OPEN" button to open the result in the same TAB.',
+    "result.info.newtab" => '"OPEN IN NEW TAB" will open the result in a new TAB.',
     "result.info.anonym" => '"OPEN ANONYMOUSLY": the page will be opened under the proxy protection. There is some information about the proxy further down here.',
     "result.info.more" => '"MORE": you will get more options, the result changes its appearance to:<p><div class="image-container"><img src="/img/hilfe-php-resultpic-en-02.png"></div></p>',
     "result.info.2" => 'The new options are:',
     "result.info.saveresult" => '"Save result in TAB" (Only desktop): The result will be stored in a new TAB. It´ s used for collecting results out of several searches. This TAB appears on the right side of your screen. (info: <a href="#searchinsearch"> Search in search</a>)',
     "result.info.domainnewsearch" => '"Start a new search on this domain": search only on this domain.',
-    "result.info.hideresult" => '"Hide": hide results from this domain. You can use this filter directly after your search words (e.g. my search words -site:*.wikipedia.org), filters can be concatenated and the wildcard "*" is allowed. Do one search with a filter and store it as a bookmark. Next time -using the bookmark- you have your settings active immediately.',
+    "result.info.hideresult" => '"Hide": hide results from this domain. You can use this filter directly after your search words (e.g. my search words -site:*.wikipedia.org), filters can be concatenated and the wildcard "*" is allowed. See also "Settings"',
 
     "urls.title" => "Exclude URLs",
     "urls.explanation" => "Use \"-url:\" to exclude search results containing specified words.",
@@ -69,7 +75,7 @@ return [
     "plugin.title" => "Browser-Plugin",
     "plugin.1" => "There is a MetaGer Plugin for most of the common web browsers. The plugin provides easy search from the web browsers search field. Find out more: <a href=\"/en/plugin\" rel=\"noopener\">MetaGer Plugin</a>.",
 
-    "suchwortassoziator.title" => "Finding connotations to searchwords",
+    "suchwortassoziator.title" => "MetaGer-Web-Associator",
     "suchwortassoziator.1" => 'Ask the <a href="/en/asso/" target="_blank" rel="noopener">MetaGer-Web-Assoziator</a> (Tools / Associator) to find connotations in a subject area. The service doesn&apos;t append upon any language because it uses webdocuments as a source. Therefore, you find any connotations to your used language and vice-versa.',
     "suchwortassoziator.2" => "Example: you want to know more about \"tick bites\" and its dangers but you forgot the technical terms around this issue. The \"Assoziator\" presents \"Borreliose\" and \"fsme\" among others.",
     "suchwortassoziator.3" => "Please let us know if something unsuitable appears. Please use our <a href=\"/en/kontakt/\" target=\"_blank\" rel=\"noopener\">contact form</a>.",
diff --git a/resources/lang/en/plugin-desktop/desktop-chrome.php b/resources/lang/en/plugin-desktop/desktop-chrome.php
new file mode 100644
index 0000000000000000000000000000000000000000..2174ade6e0e3b9501fdcab1e3ff07cf085b65aca
--- /dev/null
+++ b/resources/lang/en/plugin-desktop/desktop-chrome.php
@@ -0,0 +1,22 @@
+<?php
+    return[
+        
+        //Instructions for Chrome version 49-52
+        'default-search-v49.1' => 'Navigate to the top right corner of your browser, click "<i class="fas fa-bars"></i>" and choose "Settings".',
+        'default-search-v49.2' => 'Under "Search" click the button "Manage search engines...".',
+        'default-search-v49.3' => 'Move your mouse over the "MetaGer" entry and click on "Make Default".',
+        //Instructions for Chrome version 53-58
+        'default-search-v53.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-v"></i>" and choose "Settings".',
+        'default-search-v53.2' => 'Under "Search" click the button "Manage search engines...".',
+        'default-search-v53.3' => 'Move your mouse over the "MetaGer" entry and click on "Make Default".',
+        
+        //Instructions for Chrome version >=59
+        'default-search-v59.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-v"></i>" and choose "Settings".',
+        'default-search-v59.2' => 'Under "Search engine" click the button "Manage search engines".',
+        'default-search-v59.3' => 'Click on "<i class="fa fa-ellipsis-v"></i>" next to the MetaGer entry and choose "Make default".',
+
+        'default-page-v49.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-v"></i>" and choose "Settings".',
+        'default-page-v49.2' => 'Under "On startup" choose "Open a specific page or set of pages." and click "Set pages".',
+        'default-page-v49.3' => 'Enter ":link" as URL and click OK.',
+        'default-page-v49.4' => 'Hint: Every listed page in this window will be opened on startup. You can remove entries by moving your mouse over them and click "x".',
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-desktop/desktop-edge.php b/resources/lang/en/plugin-desktop/desktop-edge.php
new file mode 100644
index 0000000000000000000000000000000000000000..217500fed81211b96bcf3a882bb4528eaf618195
--- /dev/null
+++ b/resources/lang/en/plugin-desktop/desktop-edge.php
@@ -0,0 +1,28 @@
+<?php
+    return[
+
+        //Instructions for Edge version 15-17
+        'default-search-v15.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-h"></i>" and choose "Settings".',
+        'default-search-v15.2' => 'Scroll down and click "Advanced settings".',
+        'default-search-v15.3' => 'Scroll down again and under "Search in the address bar with" click "Change search engine".',
+        'default-search-v15.4' => 'Choose "MetaGer: privacy protected search & find" and click "Set as default".',
+
+        //Instructions for Edge version 18
+        'default-search-v18.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-h"></i>" and choose "Settings".',
+        'default-search-v18.2' => 'Click on "advanced" on the left side of the new menu',
+        'default-search-v18.3' => 'Scroll down and under "Address bar search" click "Change search provider".',
+        'default-search-v18.4' => 'Choose "MetaGer: privacy protected search & find" and click "Set as default".',
+
+        //Instructions for Edge version >= 80
+        'default-search-v80.1' => 'Open a new tab and enter "edge://settings/searchEngines" in your address bar to access the search engine settings.',
+        'default-search-v80.2' => 'Click on "<i class="fa fa-ellipsis-h"></i>" next to the MetaGer entry and choose "Make default".',
+
+        'default-page-v15.1' => 'Navigate to the top right corner of your browser, click "<i class="fa fa-ellipsis-h"></i>" and choose "Settings".',
+        'default-page-v15.2' => 'Choose under "Open Microsoft Edge with" "A specific page or pages" and enter ":link".',
+        'default-page-v15.3' => 'By clicking "<i class="fas fa-save"></i>" you add MetaGer to the start up list.',
+
+        'default-page-v80.1' => 'Open a new tab and enter "edge://settings/onStartup" in your address bar to access the start-up settings',
+        'default-page-v80.2' => 'Choose "Open a specific page or pages" and enter ":link" as URL in "Add a new page" ein. Click "Add".',
+        'default-page-v80.3' => 'Hint: Every listed page in this window will be opened on startup. You can remove entries by moving your mouse over them, click "<i class="fa fa-ellipsis-h"></i>" and choose "Delete".',
+
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-desktop/desktop-firefox.php b/resources/lang/en/plugin-desktop/desktop-firefox.php
new file mode 100644
index 0000000000000000000000000000000000000000..4a8ad9ea9dbaaa2fdff6cc8cc9160b4af4aa9659
--- /dev/null
+++ b/resources/lang/en/plugin-desktop/desktop-firefox.php
@@ -0,0 +1,31 @@
+<?php
+    return[
+
+        //Instructions for Firefox version 52-56
+        'default-search-v52.1' => 'Navigate to the top right corner and click next to the address bar on the magnifier icon.',
+        'default-search-v52.2' => 'In the new menu click "Add "MetaGer ...""',
+        'default-search-v52.3' => 'Enter "about:preferences#search" in your address bar to access the search settings.',
+        'default-search-v52.4' => 'Choose MetaGer from the dropdown menu under "Default Search Engine".',
+
+        //Instructions for Firefox version 57-60
+        'default-search-v57.1' => 'Open a new tab and enter "about:preferences#search" to access the "Search" settings.',
+        'default-search-v57.2' => 'Under "Search Bar" choose "Add search bar in toolbar".',
+        'default-search-v57.3' => 'Go back to the MetaGer tab and click on the magnifier on the right next to the address bar.',
+        'default-search-v57.4' => 'In the new menu click "Add "MetaGer ...""',
+        'default-search-v57.5' => 'Go back to the Settings tab. Choose MetaGer from the dropdown menu under "Default Search Engine".',
+
+        //Instructions for Firefox version >= 61
+        'plugin' => 'You can download our plugin <a href="https://addons.mozilla.org/en-US/firefox/addon/metager-searchengine/" target="_blank">here</a>.',
+        'default-search-v61.1' => 'Alternatively click "<i class="fas fa-ellipsis-h"></i>" on the right side in your address bar and choose "Add Search Engine".',
+        'default-search-v61.2' => 'Enter "about:preferences#search" in the address bar. Choose MetaGer from the dropdown menu under "Default Search Engine".',
+
+        //Instructions for Firefox version 52-60
+        'default-page-v52.1' => 'Navigate to the top right corner, click "<i class="fa fa-bars"></i>" and choose "Options".',
+        'default-page-v52.2' => 'Under "Home page" enter ":link" .',
+
+        //Instructions for Firefox version >= 61
+        'default-page-v61.1' => 'Navigate to the top right corner, click "<i class="fa fa-bars"></i>" and choose "Options".',
+        'default-page-v61.2' => 'Chosse Home on the left side.',
+        'default-page-v61.3' => 'Under "New Windows and Tabs" click on the dropdown menu next to "Homepage and new windows" and choose "Custom URLs...".',
+        'default-page-v61.4' => 'In the new text field enter ":link" .',
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-desktop/desktop-ie.php b/resources/lang/en/plugin-desktop/desktop-ie.php
new file mode 100644
index 0000000000000000000000000000000000000000..0dd32d5b8d6b0cda5efca2849f6baccbd5603db7
--- /dev/null
+++ b/resources/lang/en/plugin-desktop/desktop-ie.php
@@ -0,0 +1,18 @@
+<?php
+    return[
+
+        //Instructions for IE 9-10
+        'default-search-v9.1' => 'Click <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">here</a> to add MetaGer as search engine.',
+        'default-search-v9.2' => 'Check the "Make this my default search provider" box and click "Add".',
+
+        //Instructions for IE 11
+        'default-search-v11.1' => 'Click <a href="javascript:window.external.addSearchProvider($(\'link[rel=search]\').attr(\'href\'));">here</a>, to add MetaGer as search engine.',
+        'default-search-v11.2' => 'Navigate to the top right corner and click "<i class="fa fa-cog" aria-hidden="true"></i>".',
+        'default-search-v11.3' => 'Choose "Manage Add-Ons".',
+        'default-search-v11.4' => 'On the left choose "Search Providers" and click MetaGer on the right.',
+        'default-search-v11.5' => 'Click "Set as default" on the bottom right corner of the window',
+
+        'default-page-v9.1' => 'Click <a href="/" target="_blank" rel="noopener">here</a> to open MetaGer in a new tab.',
+        'default-page-v9.2' => 'In the new tab click the arrow next to the <i class="fas fa-home" aria-hidden="true"></i> on the top left and choose "Add or change home page".',
+        'default-page-v9.3' => 'In the popup choose "Use this webpage as your only home page" and click "Yes".',
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-desktop/desktop-opera.php b/resources/lang/en/plugin-desktop/desktop-opera.php
new file mode 100644
index 0000000000000000000000000000000000000000..cb438e6567d475fc2034bfcdb3f243dfa00fb273
--- /dev/null
+++ b/resources/lang/en/plugin-desktop/desktop-opera.php
@@ -0,0 +1,15 @@
+<?php
+    return[
+
+        //Instructions for Opera versions >=36
+        'default-search-v36.1' => 'Right click the search bar at the end of this instruction.',
+        'default-search-v36.2' => 'Choose "Create search engine..." in the context menu.',
+        'default-search-v36.3' => 'Click "Create" in the popup.',
+        //link to desktop-unable
+
+        'default-page-v36.1' => 'Navigate to the top left corner and click "Opera" logo or "Menu" and click "Settings".',
+        'default-page-v36.2' => 'Under "On startup" choose "Open a specific page or set of pages" and click "Add a new page".',
+        'default-page-v36.3' => 'Enter ":link" as URL and click "Add".',
+        'default-page-v36.4' => 'Hint: Every listed page in this window will be opened on startup. You can remove entries by moving your mouse over them and click "<i class="fas fa-ellipsis-h"></i>".',
+
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-desktop/desktop-safari.php b/resources/lang/en/plugin-desktop/desktop-safari.php
new file mode 100644
index 0000000000000000000000000000000000000000..59813d3726ec39fce86adb3d216f2f0462332f74
--- /dev/null
+++ b/resources/lang/en/plugin-desktop/desktop-safari.php
@@ -0,0 +1,8 @@
+<?php
+    return[
+
+        //link to unable
+        'default-page-v10.1' => 'Click <a href="/" target="_blank" rel="noopener">here</a> to open MetaGer in a new tab.',
+        'default-page-v10.2' => 'In the top left corner click on "Safari" and choose "Preferences".',
+        'default-page-v10.3' => 'Under "General" click the "Set to Current Page" button.'
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-desktop/desktop-vivaldi.php b/resources/lang/en/plugin-desktop/desktop-vivaldi.php
new file mode 100644
index 0000000000000000000000000000000000000000..8e0831734f1fc2ae1ce6ff1f174585cebdce683a
--- /dev/null
+++ b/resources/lang/en/plugin-desktop/desktop-vivaldi.php
@@ -0,0 +1,11 @@
+<?php
+    return[
+
+        //Instructions for Vivaldi version 3.3
+        'default-search-v3-3.1' => 'Right click the search bar at the end of this instruction',
+        'default-search-v3-3.2' => 'Choose "Add as Search Engine..." in the context menu.',
+        'default-search-v3-3.3' => 'Check the "Set as Default Search" box and click "Add" in the popup.',
+
+        'default-page-v3-3.1' => 'Navigate to the top left corner, click the "Vivaldi" logo and choose "<i class="fa fa-cog" aria-hidden="true"></i> Einstellungen" under "Tools"',
+        'default-page-v3-3.2' => 'Under "Homepage" choose  "Specific Page" and enter :link .',
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-mobile/mobile-chrome.php b/resources/lang/en/plugin-mobile/mobile-chrome.php
new file mode 100644
index 0000000000000000000000000000000000000000..808f0d5d78175147489f2c7fae7668e6e788420d
--- /dev/null
+++ b/resources/lang/en/plugin-mobile/mobile-chrome.php
@@ -0,0 +1,15 @@
+<?php
+    return[
+
+        'default-search-v83.1' => 'Tap "<i class="fas fa-ellipsis-v"></i>" in the top right corner.',
+        'default-search-v83.2' => 'Choose "Settings".',
+        'default-search-v83.3' => 'Under "Basics" pick "Search engine".',
+        'default-search-v83.4' => 'Under "Recently Visited" choose MetaGer.',
+        'default-search-v83.5' => 'If MetaGer does not appear in the list use the search bar at the end of this instructions and try again.',
+
+        'default-page-v83.1' => 'Tap "<i class="fas fa-ellipsis-v"></i>" in the top right corner.',
+        'default-page-v83.2' => 'Choose "Settings".',
+        'default-page-v83.3' => 'Under "Advanced pick "Homepage".',
+        'default-page-v83.4' => 'Choose "Enter custom web address" and enter ":link" .',
+
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-mobile/mobile-edge.php b/resources/lang/en/plugin-mobile/mobile-edge.php
new file mode 100644
index 0000000000000000000000000000000000000000..decff92ae41c09b287039458c7f1418a63fc7211
--- /dev/null
+++ b/resources/lang/en/plugin-mobile/mobile-edge.php
@@ -0,0 +1,14 @@
+<?php
+    return[
+
+        'default-search-v45.1' => 'Tap "<i class="fas fa-ellipsis-h"></i>" at the bottom centre to open the menu.',
+        'default-search-v45.2' => 'Choose "Settings" on the right side.',
+        'default-search-v45.3' => 'Scroll down und pick "Search" in the "Advanced" category.',
+        'default-search-v45.4' => 'Choose "Default search engine" and pick MetaGer from the "Recently Visited" list.',
+        'default-search-v45.5' => 'If MetaGer does not appear in the list use the search bar at the end of this instructions and try again.',
+
+        'default-page-v45.1' => 'Click <a href="/" target="_blank" rel="noopener">here</a> to open MetaGer in a new Tab.',
+        'default-page-v45.2' => 'Tap "<i class="fas fa-ellipsis-h"></i>" at the bottom centre to open the menu and shoose "Settings" on the right side.',
+        'default-page-v45.3' => 'Choose "Home page" in the "Basic" category.',
+        'default-page-v45.4' => 'Choose "A specific page", tap "Use current page" and "save".',
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-mobile/mobile-firefox-klar.php b/resources/lang/en/plugin-mobile/mobile-firefox-klar.php
new file mode 100644
index 0000000000000000000000000000000000000000..00f5fe2b38a3fe9dc9d486a5f8b0e01fcbae470b
--- /dev/null
+++ b/resources/lang/en/plugin-mobile/mobile-firefox-klar.php
@@ -0,0 +1,11 @@
+<?php
+    return[
+
+        'search-string' => 'Search string:',
+
+        'default-search-v8-8' => 'Tap <i class="fa fa-cog" aria-hidden="true"></i>(iOs) or <i class="fas fa-ellipsis-v"></i>(Android) in the top right corner and choose "Settings".',
+        'default-search-v8-8' => 'Under "Search" choose "Search engine".',
+        'default-search-v8-8' => 'Tap "Add another search engine" Enter "MetaGer" as "search engine name" and "https://metager.org/meta/meta.ger3?eingabe=%s" as "Search string to use".',
+        'default-search-v8-8' => 'Be careful not to add a space at the end of the search string accidently. Otherwise Firefox Focus will not allow you to save.',
+    
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-mobile/mobile-firefox.php b/resources/lang/en/plugin-mobile/mobile-firefox.php
new file mode 100644
index 0000000000000000000000000000000000000000..369cf51280540f305310dc110751f6f90d6cb329
--- /dev/null
+++ b/resources/lang/en/plugin-mobile/mobile-firefox.php
@@ -0,0 +1,17 @@
+<?php
+    return[
+
+        'search-string' => 'Search string:',
+
+        //Instructions for Firefox Mobile version < 80
+        'default-search-vlt80.1' => 'Tap and hold the search bar at the end of the instructions.',
+        'default-search-vlt80.2' => 'Choose "Add search engine" from the context menu',
+        'default-search-vlt80.3' => 'Now you can go to your browser settings and choose MetaGer as your default search engine in the section "Search".',
+
+        //Instructions for Firefox Mobile version >= 80
+        'default-search-v80.1' => 'Tap "<i class="fas fa-ellipsis-v"></i>" in the bottom right corner.',
+        'default-search-v80.2' => 'Choose Settings.',
+        'default-search-v80.3' => 'Under "General" pick "Search".',
+        'default-search-v80.4' => 'Tap "+ Add search engine".',
+        'default-search-v80.5' => 'Choose "Other", enter MetaGer as name and the search string to use. Finally tap "<i class="fas fa-check"></i>" in the top right corner to save.',
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-mobile/mobile-opera.php b/resources/lang/en/plugin-mobile/mobile-opera.php
new file mode 100644
index 0000000000000000000000000000000000000000..8ddebc46d1505c97d3a621e55cd2b5a7842bde1b
--- /dev/null
+++ b/resources/lang/en/plugin-mobile/mobile-opera.php
@@ -0,0 +1,9 @@
+<?php
+    return[
+
+        'default-search-v60.1' => 'Tap and hold the search bar at the end of the instruction',
+        'default-search-v60.2' => 'Choose "Add search engine...".',
+        'default-search-v60.3' => 'Tap "OK" in the popup.',
+        'default-search-v60.4' => 'Now you can choose MetaGer as search engine by tapping the icon in the top left corner of a new tab.',        
+        //link to mobile-unable
+    ];
\ No newline at end of file
diff --git a/resources/lang/en/plugin-page.php b/resources/lang/en/plugin-page.php
index bb0699b85527bd792fc70e24f7c60389ed3b2157..c70c0a794829a62b277018922508a6cb7be062c1 100644
--- a/resources/lang/en/plugin-page.php
+++ b/resources/lang/en/plugin-page.php
@@ -3,6 +3,7 @@
 return [
     'open-modal' => 'Install MetaGer-Plugin',
     'open-modal.title' => 'Add the MetaGer-Plugin to your browser',
+    'head.0' => 'Install Firefox and add MetaGer',
     "head.1" => "Add MetaGer to your Firefox",
     "head.2" => "Add MetaGer to your Chrome",
     "head.3" => "Add MetaGer to your Opera",
@@ -11,72 +12,19 @@ return [
     "head.6" => "Add MetaGer to your Safari",
     "head.7" => "Add Metager to your Vivaldi",
     "head.8" => "Add MetaGer to your Firefox Focus",
-    'default-search' => 'Set MetaGer as the default search engine',
+    'head.9' => 'Add MetaGer to your UCBrowser',
+    'head.10' => 'Add MetaGer to your Samsung Internet',
 
-    'firefox.plugin' => '',
-    "firefox.1" => 'In your browser, click on "<i class="fa fa-ellipsis-h"></i>" in the upper right corner of the address bar to open the page action menu and then click on "Add search engine" (see picture)',
-    "firefox.2" => 'Open the Firefox settings. For this, enter "about:preferences#search" in the address bar. In the section "Default search engine" select MetaGer (see picture).',
-    "firefox.3" => "Use MetaGer as start page in :browser",
-    "firefox.4" => "Click top right in your browser on <i class=\"fa fa-menu\" aria-hidden=\"true\"></i><span class=\"sr-only\">the three small horizontal lines</span> (menu) and open \"Preferences\"",
-    "firefox.5" => "Type in field \"Home Page\" => \"https://metager.org\"",
+    'browser-download' => 'Download Firefox',
+    'firefox-plugin' => 'Set MetaGer as default search engine with add-on',
+    'firefox-default-search' => 'Set MetaGer as default search engine without add-on',
+    'default-search' => 'Set MetaGer as default search engine',
+    'default-page' => 'Set MetaGer as start page',
 
-    'firefox-klar.1' => 'Click on the cog icon next to the searchbar to open your browser settings (click on <i class="fa fa-ellipsis-v"></i> when using an Android device)',
-    'firefox-klar.2' => 'Select \'Searchengine\' under the \'Search\' menu item .',
-    'firefox-klar.3' => 'Click on \'Add another search engine\': enter "MetaGer" as Name and "https://metager.org/meta/meta.ger3?eingabe=%s" as query string.',
-    'firefox-klar.4' => 'Be careful not to add whitespaces at the end of the searchstring, otherwise Firefox Focus won\'t let you save your changes.',
+    'desktop-unable' => 'The browser you use does not offer to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/new/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
+    'mobile-unable' => 'The browser you use does not offer to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/mobile/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
 
-    "chrome.1" => "Click in your Chrome browser on <i class=\"fa fa-ellipsis-v\"></i> and in the next menu on \"Preferences\" to open the settings of your Chrome browser",
-    "chrome.2" => "Click in field \"Search\" on manage search engines",
-    "chrome.3" => "Now you will find an entry \"MetaGer\". Move your mouse over that entry and click on \"Standard\",",
-    "chrome.4" => "Set up MetaGer as start page in your browser",
-    "chrome.5" => "Click in your browser on<i class=\"fa fa-ellipsis-v\"></i> and open \"Preferences\"",
-    "chrome.6" => "In the field \"Start\" choose \"Open specific Page/s\" and then click on \"Choose Page/s\"",
-    "chrome.7" => "Type in https://metager.org\" as URL at \"Add new page\"",
-    "chrome.8" => "Hint: Every Webpage in this field will be opened when you start your browser. You can delete entries by moving the mouse on it and click \"x\"",
+    'desktop-notlisted' => 'We are not aware if the browser you use offers to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/new/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
+    'mobile-notlisted' => 'We are not aware if the browser you use offers to add MetaGer as (default) search engine, but you can download Firefox <a href="https://www.mozilla.org/en-US/firefox/mobile/" target="_blank" rel="noopener">here</a>, an open-source browser which provides the feature.',
 
-    "opera.1" => "Click on <a href=\"/\" target=\"_blank\" rel=\"noopener\">hier</a> to open MetaGer in a new TAB",
-    "opera.2" => "In that news TAB click with the right mouse button within the search field in the middle of the page",
-    "opera.3" => "Choose \"create search engine\" in the menu",
-    "opera.4" => "Click \"create\" within the popup",
-    "opera.5" => "(Unfortunately it is no loger possible to set up new search engines in the Opera browser as standard, but you might install the  open source browser <a href=\"https://www.mozilla.org/de/firefox/new/\" target=\"_blank\" rel=\"noopener\">Firefox</a>, who does support that)",
-    "opera.6" => "Set up MetaGer as start page in your browser",
-    "opera.7" => "Click in browser menu on \"Edit\" and them \"Preferences\"",
-    "opera.8" => "In the field \"Start\" choose \"Open specific Page\\/s\" and then click on \"Choose Page\\/s\"",
-    "opera.9" => "Type in https://metager.org\" as URL at \"Add new page\"",
-    "opera.10" => "Click on OK",
-
-    "IE.1" => "Click <a href=\"javascript:window.external.addSearchProvider($('link[rel=search]').attr('href'));\">here</a> to add MetaGer as search engine",
-    "IE.4" => "Click top right in your browser on \"Extras\"",
-    "IE.5" => "Choose the menu \"manage Add-Ons\"",
-    "IE.6" => "Click in field \"Add-Ons\" on \"search provider\" and the on the right on \"MetaGer\"",
-    "IE.7" => "Coose button \"Standard\"",
-    "IE.8" => "Set up MetaGer as start page in your browser",
-    "IE.9" => "Click at top right in your browser on <i class=\"fa fa-cog\"></i> and open \"Internet Options\"",
-    "IE.10" => "If MetaGer should be your only startpage mark the existing text within the text field, and replace it by \"https://metager.org\"",
-    "IE.11" => "Click on OK",
-
-    "edge.1" => "Click in your browser top right on Extras (",
-    "edge.2" => ") and choose \"Preferences\"",
-    "edge.3" => "Scroll down and click on \"Show adavanced Preferences\"",
-    "edge.4" => "Scroll again down to topic \"within addresses\" and click on \"Change\"",
-    "edge.5" => "Choose \"MetaGer ...\" and click on \"Standard\"",
-    "edge.6" => "Set up MetaGer as start page in :browser",
-    "edge.7" => "Click at top right in your browser on <i class=\"fa fa-ellipsis-h\"></i> and open \"Preferences\"",
-    "edge.8" => "Choose in the field \"Open\" the topic \"Specific pages\"",
-    "edge.9" => "Choose \"User defined\" within drop down menu",
-    "edge.10" => "Type \"https://metager.org\" in field \"Webaddress\" and click on \"+\"",
-    "edge.11" => "Delete all entries which should not be opened at start (for example \"about:start\") by click on \"x\"",
-
-    'safari.1' => 'We are sorry. Safari doesn´t accept neither the "Glims plugin" nor the "OpenSearch for Safari plugin" anymore. At this time there is no way to install alternative search engines for Safari webbrowser.',
-
-    "vivaldi.1" => "Click the red logo \"Vivaldi\" at the top left of your web browser. Then select \"Tools / Preferences\"",
-    "vivaldi.2" => "Within the new menu choose \"search\"",
-    "vivaldi.3" => "Select \"Add new search\"",
-    "vivaldi.4" => "Enter \"https://metager.de/meta/meta.ger3?eingabe=%s\" into the field \"URL\"",
-    "vivaldi.5" => "Please enter \"MetaGer\" as the description and \"mg\" as abbreviation.",
-    "vivaldi.6" => "Check \"Set as standard\" if you want MetaGer to be your standard search engine.",
-    "vivaldi.7" => "Click \"Add\".",
-    "vivaldi.8" => "Set MetaGer.de as the start page of your web browser :browser",
-    "vivaldi.9" => "Click the red logo \"Vivaldi\" at the top left of your web browser. Then select \"Tools / Preferences\"",
-    "vivaldi.10" => "Enter \"https://metager.de\" into the field \"Start page\"",
-];
+    ];
diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php
index af7c83a1200c3351bd66c73e61131d2c9f163bad..f1968e6af73debed4fd1ae0e8eb7b1765e4a3a2d 100644
--- a/resources/lang/en/settings.php
+++ b/resources/lang/en/settings.php
@@ -6,6 +6,7 @@ return [
 
     "hint.header" => "Note",
     "hint.text" => "To save your search settings, we use non-personally identifiable cookies. These are saved in clear text in your browser. You can see an <a href=\":link\">overview</a> of all the settings and cookies you have made.",
+    'hint.loadSettings' => 'Here is a link you can use as startpage or bookmark to keep your current settings. The URL sets your settings as cookies.',
 
     "header.2" => "Used Search Engines",
     "text.2" => "Below are all the search engines available for this focus. With a click on the name they can be switched on / off. Used search engines are shown in green. Not used ones in red or gray.",
@@ -14,9 +15,16 @@ return [
     "header.3" => "Search Filters",
     "text.3" => "At this point you can set search filters permanently. With the selection of a search filter, only search engines are available that support this filter. Conversely, only search filters are displayed which are supported by the current search engine selection.",
 
+    'header.4' => 'Black list',
+    'text.4' => 'Here you can add domains to exclude when searching. If you want to exclude all subdomains start with "*.".',
+    'address' => 'Address',
+
     "save" => "Save",
     "reset" => "Delete all settings",
     "back" => "Back to the last page",
+    'add' => 'Add',
+    'clear' => 'Clear black list',
+    'copy' => 'Copy',
 
     // Translations from the settings overview
     'noSettings' => "Currently no settings are set!",
@@ -29,5 +37,6 @@ return [
     'engineDisabled' => "The search engine :engine will not be queried in focus :focus.",
     'inFocus' => "in focus",
     'key' => "Your key to the ad-free search",
+    'blentry' => 'Black list entry',
     'removeCookie' => "Remove this cookie",
 ];
diff --git a/resources/lang/en/tor.php b/resources/lang/en/tor.php
index fa32eac9675a5eeb80f586813c9a25f18a51684f..f568a62a0b682aa2b9eba039a42ad309d8205a36 100644
--- a/resources/lang/en/tor.php
+++ b/resources/lang/en/tor.php
@@ -3,4 +3,5 @@
 return [
     'description' => "Below you will find the link to MetaGer's hidden service. Attention: This link can only be reached via the Tor network. Your browser produces an error message if it is not connected to it.",
     "torbutton" => "Open TOR-hidden service",
+    'torurl' => 'http://metagerv65pwclop2rsfzg4jwowpavpwd6grhhlvdgsswvo6ii4akgyd.onion/en/',
 ];
diff --git a/resources/lang/es/app.php b/resources/lang/es/app.php
new file mode 100644
index 0000000000000000000000000000000000000000..0c5f4101f444d7432596715af367417fb88bc770
--- /dev/null
+++ b/resources/lang/es/app.php
@@ -0,0 +1,24 @@
+<?php
+
+return [
+    "head.1"	=>	"Aplicaciones MetaGer",
+    "disclaimer.1"	=>	"Actualmente solo podemos proporcionar nuestras aplicaciones para dispositivos Android. Desafortunadamente, Apple nos lo pone demasiado difícil. Rogamos su comprensión.",
+    "head.2"	=>	"Aplicación MetaGer",
+    "metager.1"	=>	"Con esta aplicación, obtiene toda la potencia de nuestro motor de búsqueda en su smartphone.\r\nBusque en Internet con solo deslizar un dedo mientras que mantiene su privacidad.",
+    "metager.2"	=>	"Puede instalar la aplicación para nuestra búsqueda a través de Google Playstore o instalarla manualmente desde nuestro servidor en su smartphone, protegida de datos.",
+    "metager.playstore"	=>	"Google Playstore",
+    "metager.manuell"	=>	"Instalación manual",
+    "head.3"	=>	"Aplicación Maps MetaGer",
+    "maps.playstore"	=>	"Google Playstore",
+    "maps.1"	=>	"Esta aplicación ofrece una integración nativa de <a href=\"https://maps.metager.de\" target=\"_blank\">  MetaGer Maps</a>(con tecnología de <a href = \"https: //www.openstreetmap.de/\" target =\" _ blank\"> Openstreetmap</a>) en su dispositivo móvil Android.",
+    "maps.2"	=>	"De este modo el servicio de mapas y navegación también funciona de manera óptima y rápida en su smartphone. La aplicación aumenta el rendimiento en comparación con el uso en el navegador móvil y ofrece algunas otras ventajas. ¡Intentalo!",
+    "maps.3"	=>	"Después del primer inicio, la aplicación solicita los siguientes permisos:",
+    "maps.list.1"	=>	"Acceso a datos de posición => Si el GPS está activado en su teléfono móvil, podemos mejorar sus resultados de búsqueda. Además habilita la función de navegación paso a paso.<b>Por supuesto, estos datos no se almacenan en ningún lugar y ciertamente no se transmiten a terceros.</b>",
+    "maps.list.2"	=>	"Acceso a fotos, medios y archivos en el dispositivo => Esta autorización es necesaria para que esta aplicación pueda actualizarse sola. Si hay una nueva versión de la aplicación disponible, puede guardarla en su directorio de descarga y luego instalarla automáticamente desde allí. Si no desea otorgar este permiso, deberá reinstalar manualmente la aplicación cada vez que haya una actualización disponible.",
+    "head.4"	=>	"Instalación",
+    "installation.1"	=>	"Si desea instalar nuestra aplicación directamente desde Google Playstore, no necesita considerar nada más. Simplemente haga clic en el enlace \"Google Playstore\" para ser redirigido al App Store y haga clic en \"Instalar\".",
+    "installation.2"	=>	"Si desea instalar nuestra aplicación manualmente (sin App Store), proceda de la siguiente manera:",
+    "list.1"	=>	"Abra el menú de configuración para permitir la instalación: Configuración => Sistema => Seguridad. Marque la casilla junto a \"Fuentes desconocidas\".",
+    "list.2"	=>	"Seleccione el enlace \"Instalación manual\" en esta página para descargar el archivo de instalación en su dispositivo móvil.",
+    "list.3"	=>	"Abra el archivo descargado en su dispositivo móvil. Esto iniciará el proceso de instalación."
+];
diff --git a/resources/lang/es/plugin-page.php b/resources/lang/es/plugin-page.php
index 7ed5dd103b0461ab728d64a85749df553bb2434b..ad1e386e4490d9824fd12ea9b28d231ab10d5564 100644
--- a/resources/lang/es/plugin-page.php
+++ b/resources/lang/es/plugin-page.php
@@ -8,48 +8,8 @@ return [
     "head.4" => "Añadir MetaGer a Internet Explorer",
     "head.5" => "Añadir MetaGer a Microsoft Edge",
     "head.6" => "Añadir MetaGer a Safari",
-    "firefox.1" => 'En su navegador, haga clic en "<i class =" fa fa-ellipsis-h "> </i>" en la esquina superior derecha de la barra de direcciones para abrir el menú de acción de la página y luego haga clic en "Agregar motor de búsqueda" ( ver foto)',
-    "firefox.2" => 'Abre la configuración de Firefox. Para esto, ingrese "about:preferences#search" en la barra de direcciones. En la sección "Motor de búsqueda predeterminado", seleccione MetaGer (ver imagen).',
-    "firefox.3" => "Instalar MetaGer como página de inico en el :browser",
-    "firefox.4" => "Hacer click arriba a la derecha en los tres barras horizontales en su navegador (Menú) y abre \"Preferencias\"",
-    "firefox.5" => "Introducir en el campo \"Pagina de inicio\" \"https:\\/\\/metager.de\"",
-    "chrome.1" => "Haga click en su Chrome arriba a la derecha <i class=\"fa fa-ellipsis-v\"></i> y en el subsecuente menú en \"Preferencias\", para abrir las preferencias de su Chrome.",
-    "chrome.2" => "In la área de la búsqueda hacer click en administrar motores de búsqueda ...",
-    "chrome.3" => "En la lista que se ve ahora, busca la entrada \"MetaGer\". Cloquease con el ratón sobre la entrada \"Establecer como predeterminado\"",
-    "chrome.4" => "Definir MetaGer como pagina de inicio en el :browser ",
-    "chrome.5" => "Hacer click arriba a la derecha en su navegador en <i class=\"fa fa-ellipsis-v\"></i> y abre  \"Configuración\"",
-    "chrome.6" => "En la sección  \"Al abrir el navegador ... \" seleccionar  \"Abrir una página especifica\" y haga click en \"Establecer páginas\"  ",
-    "chrome.7" => "Introduzca \"https:\\/\\/metager.de\" como URL en el campo \"Añadir una nueva página\" ",
-    "chrome.8" => "Nota: Todos los sitios web visibles aquí se abren ahora cuando inicia el navegador. Usted puede borrarlos, poniéndose con el ratón encima y hacer click en la \"x\" al lado derecha.",
-    "opera.1" => "Haga click <a href=\"/\" target=\"_blank\" rel=\"noopener\">a</a> para abrir MetaGer en una nueva pestaña.",
-    "opera.2" => "En la nueva pestaña haga click en la barra de la búsqueda con el botón derecha del ratón.",
-    "opera.3" => "Elige en el menú de contexto \"editar buscadores\" ",
-    "opera.4" => "En la ventana popup hacer click en \"Añadir buscador\"",
-    "opera.5" => "(Desafortunadamente ya no es posible en Opera poner buscadores nuevos como estandard, pero <a href=\"https://www.mozilla.org/de/firefox/new/\" target=\"_blank\" rel=\"noopener\">aquí</a>puede instalar un navegador de código abierto que soporta esto.)",
-    "opera.6" => "Hacer MetaGer la página de inicio en :browser",
-    "opera.7" => "Hacer click en el menú del navegador en \"Editar\"->\"Configuración\"",
-    "opera.8" => "En la sección  \"Inicio\" seleccione \"Abrir una página especifica\" y después  \"Definir página\"",
-    "opera.9" => "En el campo \"Introducir URL\" ponga \"https://metager.de\" y confirma con introducir",
-    "opera.10" => "Haga click en \"Confirmar\"",
-    "IE.1" => "Haga click en  <a href=\"javascript:window.external.addSearchProvider($('link[rel=search]').attr('href'));\"></a>, para añadir MetaGer como búscador",
-    "IE.4" => "Haga click en su navegador arriba derecha en Extras",
-    "IE.5" => "Escoge el punto del menú \"Administrar extensiones\"",
-    "IE.6" => "Busca Tipos de Extensiones y haga click en \"Máquinas de búsqueda\" y después al lado derecho click en \"MetaGer\"",
-    "IE.7" => "Escoge el botón \"Definir como predeterminado\"",
-    "IE.8" => "Definir MetaGer como página de inicio en :browser ",
-    "IE.9" => "Haga click arriba derecha en <i class=\"fa fa-cog\"></i> y abre \"Opciones de internet\"",
-    "IE.10" => "Si quiere definir MetaGer como única página de inicio, marca todo el texto en el campo del texto y reemplázalo por \"https://metager.de\"",
-    "IE.11" => "Haga click en \"Aceptar\"",
-    "edge.1" => "Haga click en su navegador arriba derecha en Extras (",
-    "edge.2" => ") y selecciona \"Configuración\"",
-    "edge.3" => "Haga scroll hacia abajo y haga click en \"Mostrar configuración avanzada\"",
-    "edge.4" => "Haga scroll de nuevo hacia abajo llegando al \"Buscar en la barra de direcciones con\" y haga click en  \"Cambiar\"",
-    "edge.5" => "Selecciona \"MetaGer: Sicher suchen & finden...\" y clickea en  \"Definir com predeterminado\"",
-    "edge.6" => "Hacer MetaGer la página de inicio en :browser",
-    "edge.7" => "Haga click arriba derecha en el navegador en <i class=\"fa fa-ellipsis-h\"></i> y abre  \"Configuraciones\"",
-    "edge.8" => "Selecciona en la sección \"Abrir con\" el ítem \"Página específica\"",
-    "edge.9" => "En el menú de cascada selecciona \"Definido por el usuario\"",
-    "edge.10" => "En la área abajo ponga \"https://metager.de\" en el campo \"Introducir URL\" y haga click en el símbolo \"+\"",
-    "edge.11" => "Borra todas las entradas, que no quiere abrir al inicio (p.ej. about:start), haciendo click en el pequeño \"x\" a la derecha.",
-    "safari.1" => "No pueden añadir otras motores de busqueda alternativas en Safari. \"OpenSearch for Safari\" y \"Glims\" soy terminado.",
+    "head.7" => "Añadir MetaGer a Vivaldi",
+    "head.8" => "Añadir MetaGer a Firefox Klar",
+    "head.9" => "Añadir MetaGer a UCBrowser",
+    "head.10" => "Añadir MetaGer a Samsung Internet",
 ];
diff --git a/resources/lang/es/results.php b/resources/lang/es/results.php
index 19b9de885ef3fdfe83e4878c863afcbac5f44072..3a8aac86f2f197c4a12e2c0e1823e634eb9b7c9a 100644
--- a/resources/lang/es/results.php
+++ b/resources/lang/es/results.php
@@ -1,9 +1,13 @@
 <?php
 
 return [
-    "redirect"       => "(con desviar)",
-    "weiter"         => "Continuar",
-    "zurueck"        => "Atrás",
-    "filter"         => "Resultados filtraban:  <strong>[:filter]</strong>. <a href=\":link\" target=\"_blank\">Desactivar filtro.</a>",
-    "filter.default" => "Recibís el interfaz del usuario en <strong>:langName</strong>, pero resultados en <strong>TODOS</strong> idiomas. Usan  <a href=\"/settings\" target=\"_blank\">adjustar</a> para seleccionar una idioma para los resultados.",
+    "redirect"	=>	"(con desviar)",
+    "weiter"	=>	"Continuar",
+    "zurueck"	=>	"Atrás",
+    "backtotop"	=>	"Volver al principio de la página",
+    "filter"	=>	"Los resultados de la búsqueda se filtraron: <strong>[:filter]</strong>. <a href=\":link\" target=\"_blank\">desactiva filtro.</a>",
+    "filter.default"	=>	"Obtiene la interfaz de usuario en <strong>: langName </strong>, pero los resultados en <strong> TODOS </strong> los idiomas. Para obtener resultados solo en alemán, puede ajustar \"Seleccionar idioma\" en <a href=\"/settings\" target=\"_blank\"> </a>.\r\n",
+    "produktanzeigen"	=>	"Anuncios de productos:",
+    "query.alteration"	=>	"Contiene resultados para <a href=\":link\">:alteration <i class=\"fa fa-search\"></i></a>",
+    "query.alteration.original"	=>	"En su lugar, busque <a href=\":link\">:original <i class=\"fa fa-search\"></i></a>"
 ];
diff --git a/resources/lang/es/tor.php b/resources/lang/es/tor.php
index 6223da8f87d279c5d68955470260373eb66ecc32..6a677951af0c1375f01864d4667b518d60a66c5c 100644
--- a/resources/lang/es/tor.php
+++ b/resources/lang/es/tor.php
@@ -3,4 +3,5 @@
 return [
     'description' => 'A continuación, encontrará el enlace al servicio oculto de MetaGer. Atención: Solo se puede acceder a este enlace a través de la red Tor. Su navegador genera un mensaje de error si no está conectado a él.',
     "torbutton" => "Usar Tor",
+    'torurl' => 'http://metagerv65pwclop2rsfzg4jwowpavpwd6grhhlvdgsswvo6ii4akgyd.onion/es/',
 ];
diff --git a/resources/lang/fr/plugin-page.php b/resources/lang/fr/plugin-page.php
index 5db072d7d2ac3d8ecc1998cb3fff1231b8760fa2..3a756324c5963ddd082f11cdc7743ee07b9cc9f0 100644
--- a/resources/lang/fr/plugin-page.php
+++ b/resources/lang/fr/plugin-page.php
@@ -7,7 +7,8 @@ return [
     "head.4"    => "Ajouter MetaGer à Internet Explorer",
     "head.5"    => "Ajouter MetaGer à Microsoft Edge",
     "head.6"    => "Ajouter MetaGer à Vivaldi",
-    "opera.10"  => "Cliquer sur \"ok\"",
-    "IE.11"     => "Cliquer sur \"ok\"",
-    "vivaldi.7" => "Cliquer sur \"ajouter\"",
+    "head.7"    => "Ajouter MetaGer à Vivaldi",
+    "head.8"    => "Ajouter MetaGer à Firefox Klar",
+    "head.9"    => "Ajouter MetaGer à UCBrowser",
+    "head.10"    => "Ajouter MetaGer à Samsung Internet",
 ];
diff --git a/resources/less/metager/pages/plugin.less b/resources/less/metager/pages/plugin.less
new file mode 100644
index 0000000000000000000000000000000000000000..67db3aaece9136eaf48848cc83255c94bd8d5cdf
--- /dev/null
+++ b/resources/less/metager/pages/plugin.less
@@ -0,0 +1,4 @@
+#search{
+    color: orangered;
+    background-color:white;
+}
\ No newline at end of file
diff --git a/resources/less/metager/pages/resultpage.less b/resources/less/metager/pages/resultpage.less
index a2a703ea1965582827ae6a5a7ecdf2f0dc31a7ca..a7b8077d7c9338de645c5531361d6c94c52380fb 100644
--- a/resources/less/metager/pages/resultpage.less
+++ b/resources/less/metager/pages/resultpage.less
@@ -1,5 +1,6 @@
 @import "./resultpage/result-page.less";
 @import "./resultpage/result.less";
+@import "./resultpage/quicktips.less";
 @import "./resultpage/product.less";
 @import "./resultpage/result-saver.less";
 @import "./resultpage/keyboard-nav.less";
\ No newline at end of file
diff --git a/resources/less/metager/pages/resultpage/quicktips.less b/resources/less/metager/pages/resultpage/quicktips.less
index f7f3eb879083fa2a4d5f19dcd3a29e7936e60c2d..1627559d9565e280897db335b0fd4c8e5ac7325b 100644
--- a/resources/less/metager/pages/resultpage/quicktips.less
+++ b/resources/less/metager/pages/resultpage/quicktips.less
@@ -1,7 +1,7 @@
 /* Quicktips */
-@import "../../variables.less";
-@import "../../general/cards.less";
-@import "../../general/general.less";
+// @import "../../variables.less";
+// @import "../../general/cards.less";
+// @import "../../general/general.less";
 @quicktip-font-large: @result-font-large;
 @quicktip-font-medium: @result-font-medium;
 @quicktip-font-small: @result-font-small;
diff --git a/resources/less/metager/pages/settings.less b/resources/less/metager/pages/settings.less
index 2d61c26fc0d9f0f7342fafc00827d15aa9d32add..8c5bc3d7e4c6be3389568cf8b5670f9105ef7252 100644
--- a/resources/less/metager/pages/settings.less
+++ b/resources/less/metager/pages/settings.less
@@ -48,4 +48,49 @@
     #no-settings {
         text-align: center;
     }
+
+    #newentry{
+        #create{
+            display:flex;
+            align-items:left;
+            margin-bottom:10px;
+            #blacklist{
+                flex-grow:1;
+                width:100%;
+            }
+            button{
+                width:200px;
+            }
+        }
+    }
+    #deleteentry{
+        table{
+            border:1px solid lightgray;
+            flex-grow:1;
+            width:100%;
+        }
+        tr:nth-child(odd){
+            background-color:rgb(240, 240, 240);
+        }
+        tr:nth-child(even){
+            background-color:rgb(255, 215, 200);
+        }
+        td{
+            padding:10px 0px;
+        }
+        td:first-child{
+            padding-left:5px;
+        }
+        td:last-child{
+            width:20px;
+        }
+    }
+    #cookieLink{
+        display:flex;
+        align-items:left;
+        #loadSettings{
+            flex-grow:1;
+            width:100%;
+        }
+    }
 }
\ No newline at end of file
diff --git a/resources/views/hilfe.blade.php b/resources/views/hilfe.blade.php
index 3cfe835b45524b3cb9bdbb13434a329f9c4481ed..2878b3ee9f5d70fc56dd6fb634f3e78a0b456e20 100644
--- a/resources/views/hilfe.blade.php
+++ b/resources/views/hilfe.blade.php
@@ -6,8 +6,10 @@
 	<div class="alert alert-warning" role="alert">{!! trans('hilfe.achtung') !!}</div>
 	<h1 class="page-title">{!! trans('hilfe.title') !!}</h1>
 
-	<section>
+	<section id="startpage">
 		<h2>{!! trans('hilfe.title.2') !!}</h2>
+		<h3>{!! trans('hilfe.startpage.title') !!}</h3>
+		<p>{!! trans('hilfe.startpage.info') !!}</p>
 		<h3>{!! trans('hilfe.searchfield.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.searchfield.info') !!}</p>
@@ -30,7 +32,7 @@
 			</ul>
 		</div>
 	</section>
-	<section>
+	<section id="results">
 		<h3>{!! trans('hilfe.result.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.result.info.1') !!}</p>
@@ -58,7 +60,7 @@
 			</ul>
 		</div>
 	</section>
-	<section>
+	<section id="severalwords">
 		<h3>{!! trans('hilfe.mehrwortsuche.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.mehrwortsuche.1') !!}</p>
@@ -72,7 +74,7 @@
 		</div>
 	</section>
 
-	<section>
+	<section id="capitalizationrules">
 		<h3>{!! trans('hilfe.grossklein.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.grossklein.1') !!}</p>
@@ -108,7 +110,7 @@
 	</section>
 	<h2 id="dienste">{!! trans('hilfe.dienste') !!}</h2>
 	<h3><i class="fa fa-angle-double-right"></i> {!! trans('hilfe.dienste.kostenlos') !!}</h3>
-	<section>
+	<section id="app">
 		<div id="mg-app" style="margin-top: -100px"></div>
 		<div style="margin-top: 100px"></div>
 		<h3>{!! trans('hilfe.app.title') !!}</h3>
@@ -116,13 +118,13 @@
 			<p>{!! trans('hilfe.app.1') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="plugin">
 		<h3>{!! trans('hilfe.plugin.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.plugin.1') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="asso">
 		<h3>{!! trans('hilfe.suchwortassoziator.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.suchwortassoziator.1') !!}</p>
@@ -130,49 +132,49 @@
 			<p>{!! trans('hilfe.suchwortassoziator.3') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="widget">
 		<h3>{!! trans('hilfe.widget.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.widget.1') !!}</p>
 		</div>
 	</section>
 	<h2>{!! trans('hilfe.datenschutz.title') !!}</h2>
-	<section>
+	<section id="factcheck">
 		<h3>{!! trans('hilfe.datenschutz.faktencheck.heading') !!}</h3>
 		<div>
 			<p>@lang('hilfe.datenschutz.faktencheck.body.1')</p>
 			<p>@lang('hilfe.datenschutz.faktencheck.body.2')</p>
 		</div>
 	</section>
-	<section>
+	<section id="tracking">
 		<h3>{!! trans('hilfe.datenschutz.1') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.datenschutz.2') !!}</p>
 			<p>{!! trans('hilfe.datenschutz.3') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="torhidden">
 		<h3>{!! trans('hilfe.tor.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.tor.1') !!}</p>
 			<p>{!! trans('hilfe.tor.2') !!}</p>
 		</div>
 	</section>
-	<section>
+	<section id="proxy">
 		<h3>{!! trans('hilfe.proxy.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.proxy.1') !!}</p>
 		</div>
 	</section>
 
-	<section>
+	<section id="maps">
 		<h3>{!! trans('hilfe.maps.title') !!}</h3>
 		<div>
 			<p>{!! trans('hilfe.maps.1') !!}</p>
 			<p>{!! trans('hilfe.maps.2') !!}</p>
 			<p>{!! trans('hilfe.maps.3') !!}</p>
 		</div>
-	</section>
+	</section id="faq">
 	<h2>{!! trans('hilfe.faq.title') !!}</h2>
 	<section>
 		<h3>{!! trans('hilfe.metager.title') !!}</h3>
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index fe90db69edee374bcda816a9d8f2c9efd9252b8e..99e99d5898235f58ba77619f111273cce8462733 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -13,7 +13,11 @@
   <input type="hidden" name="key" value="{{ Request::input('key','') }}" form="searchForm">
   @endif
 	<div id="plugin-btn-div">
+		@if($agent->isMobile() && ($agent->browser() === "Chrome" || $agent->browser() === "Edge"))
+		<button type="submit" id="plugin-btn" form="searchForm" title="{{ trans('index.plugin-title') }}" name="chrome-plugin" value="true"><i class="fa fa-plug" aria-hidden="true"></i> {{ trans('index.plugin') }}</a>
+		@else
 		<a id="plugin-btn" href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/plugin") }}" title="{{ trans('index.plugin-title') }}"><i class="fa fa-plug" aria-hidden="true"></i> {{ trans('index.plugin') }}</a>
+		@endif
 	</div>
 		<div id="about-us">
 			<div class="m-row">
diff --git a/resources/views/layouts/researchandtabs.blade.php b/resources/views/layouts/researchandtabs.blade.php
index 17a26ccd3eae3913021bea12859c68c075c6baac..b0c59b3a9de4ad8caeeb4b02d96dfe43085ec044 100644
--- a/resources/views/layouts/researchandtabs.blade.php
+++ b/resources/views/layouts/researchandtabs.blade.php
@@ -34,11 +34,11 @@
 	</div>
 	<div id="additions-container">
 		@include('layouts.keyboardNavBox')
+		<div id="quicktips">
 		@if( $metager->showQuicktips() )
-			<div id="quicktips">
-				<iframe src="{{ $quicktips }}" frameborder="0"></iframe>
-			</div>
+			@include('quicktips', ['quicktips', $quicktips])
 		@endif
+		</div>
 	</div>
 	@include('parts.footer', ['type' => 'resultpage', 'id' => 'resultPageFooter'])
 </div>
diff --git a/resources/views/layouts/staticPages.blade.php b/resources/views/layouts/staticPages.blade.php
index 9378e209571412a182a834e7ab5d6f65dc4cb73c..16e63d5957f11711d1c100340a03c2b48b6cc0aa 100644
--- a/resources/views/layouts/staticPages.blade.php
+++ b/resources/views/layouts/staticPages.blade.php
@@ -36,11 +36,9 @@
 		<script src="{{ mix('js/utility.js') }}"></script>
 		@if (isset($css))
 			@if(is_array($css))
-				@foreach($css as $el)
-					<link href="/css/{{ $el }}" rel="stylesheet" />
+				@foreach($css as $cssFile)
+		<link href="{{ $cssFile }}" rel="stylesheet" />
 				@endforeach
-			@else
-				<link href="/css/{{ $css }}" rel="stylesheet" />
 			@endif
 		@endif
 	</head>
diff --git a/resources/views/parts/searchbar.blade.php b/resources/views/parts/searchbar.blade.php
index af89e43e96135a9399b113e1817861ac815fb7b6..a04e14c38de8a5ace2e35aa627655edb7b074bbf 100644
--- a/resources/views/parts/searchbar.blade.php
+++ b/resources/views/parts/searchbar.blade.php
@@ -8,7 +8,7 @@
 					</a>
 				</div>
 				<div class="search-input">
-					<input type="search" name="eingabe" value="@if(isset($eingabe)){{$eingabe}}@endif" required=""  @if(\Request::is('/') && !\Request::filled('mgapp')) autofocus @endif autocomplete="off" class="form-control" placeholder="{{ trans('index.placeholder') }}" tabindex="0">
+					<input type="search" name="eingabe" value="@if(isset($eingabe)){{$eingabe}}@endif" @if(\Request::is('/') && !\Request::filled('mgapp')) autofocus @endif autocomplete="off" class="form-control" placeholder="{{ trans('index.placeholder') }}" tabindex="0">
 					<button id="search-delete-btn" name="delete-search-input" type="button" tabindex="-1">
 						&#xd7;
 					</button>
diff --git a/resources/views/plugin-page.blade.php b/resources/views/plugin-page.blade.php
index 61e51fce94b3c04f1ca5ef1965bcacba8c0f6680..f262fb346375e14fd7ec16e462b7c8eb23fb8b72 100644
--- a/resources/views/plugin-page.blade.php
+++ b/resources/views/plugin-page.blade.php
@@ -4,7 +4,8 @@
 
 @section('navbarFocus.tips', 'class="active"')
 
-@section('content')<div role="dialog">
+@section('content')
+<div role="dialog">
 	<h1 class="page-title">
 		@if ($browser === 'Firefox' || $browser === 'Mozilla')
 			{{ trans('plugin-page.head.1') }}
@@ -18,159 +19,117 @@
 			{{ trans('plugin-page.head.5') }}
 		@elseif ($browser === 'Safari')
 			{{ trans('plugin-page.head.6') }}
-		@elseif ($browser === 'Vivaldi')
-			{{ trans('plugin-page.head.7') }}
+		@elseif ($browser === 'UCBrowser')
+			{{ trans('plugin-page.head.9') }}
 		@else
-			$(".seperator").addClass("hidden");
+			{{ trans('plugin-page.head.0') }}
 		@endif
 	</h1>
-	@if ($browser === 'Firefox' || $browser === 'Mozilla')
-		<div class="card-medium">
-			<h3>{!! trans('plugin-page.firefox.plugin') !!}</h3>
-		</div>
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.default-search', ['browser' => $browser]) !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.firefox.1') !!}
-					@if(LaravelLocalization::getCurrentLocale() == "de")
-					<img src="/img/Firefox.png" width="100%" />
-					@elseif(LaravelLocalization::getCurrentLocale() == "es")
-					<img src="/img/FirefoxEs.png" width="100%" />
-					@else
-					<img src="/img/FirefoxEn.png" width="100%" />
-					@endif
-				</li>
-				<li>{!! trans('plugin-page.firefox.2') !!}
-					@if(LaravelLocalization::getCurrentLocale() == "de")
-					<img src="/img/Firefox_Standard.png" width="100%" />
-					@elseif(LaravelLocalization::getCurrentLocale() == "es")
-					<img src="/img/FirefoxEs_Standard.png" width="100%" />
-					@else
-					<img src="/img/FirefoxEn_Standard.png" width="100%" />
-					@endif
-				</li>
-			</ol>
-		</div>
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.firefox.3', ['browser' => $browser]) !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.firefox.4') !!}</li>
-				<li>{!! trans('plugin-page.firefox.5') !!}</li>
-			</ol>
-		</div>
-		<div class="card-heavy">
-			<h4>{{ trans('plugin-page.head.8') }}</h4>
-			<ol>
-				<li>{!! trans('plugin-page.firefox-klar.1') !!}</li>
-				<li>{{ trans('plugin-page.firefox-klar.2')}}</li>
-				<li>{{ trans('plugin-page.firefox-klar.3') }}</li>
-				<li>{{ trans('plugin-page.firefox-klar.4') }}</li>
-			</ol>
-		</div>
-	@elseif ($browser === 'Chrome')
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.default-search') !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.chrome.1') !!}</li>
-				<li>{!! trans('plugin-page.chrome.2') !!}</li>
-				<li>{{ trans('plugin-page.chrome.3') }}</li>
-			</ol>
-		</div>
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.chrome.4', ['browser' => $browser]) !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.chrome.5') !!}</li>
-				<li>{!! trans('plugin-page.chrome.6') !!}</li>
-				<li>{!! trans('plugin-page.chrome.7') !!}</li>
-				<li>{!! trans('plugin-page.chrome.8') !!}</li>
-			</ol>
-		</div>
-	@elseif ($browser === 'Opera')
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.default-search') !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.opera.1') !!}</li>
-				<li>{!! trans('plugin-page.opera.2') !!}</li>
-				<li>{!! trans('plugin-page.opera.3') !!}</li>
-				<li>{!! trans('plugin-page.opera.4') !!}</li>
-				<li><small>{!! trans('plugin-page.opera.5') !!}</small>
-			</ol>
-		</div>
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.opera.6', ['browser' => $browser]) !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.opera.7') !!}</li>
-				<li>{!! trans('plugin-page.opera.8') !!}</li>
-				<li>{!! trans('plugin-page.opera.9') !!}</li>
-				<li>{!! trans('plugin-page.opera.10') !!}</li>
-			</ol>
-		</div>
-	@elseif ($browser === 'IE')
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.default-search') !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.IE.1') !!}</li>
-				<li>{!! trans('plugin-page.IE.4') !!} (<i class="fa fa-cog" aria-hidden="true"></i>)</li>
-				<li>{!! trans('plugin-page.IE.5') !!}</li>
-				<li>{!! trans('plugin-page.IE.6') !!}</li>
-				<li>{!! trans('plugin-page.IE.7') !!}</li>
-			</ol>
-		</div>
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.IE.8', ['browser' => $browser]) !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.IE.9') !!}</li>
-				<li>{!! trans('plugin-page.IE.10') !!}</li>
-				<li>{!! trans('plugin-page.IE.11') !!}</li>
-			</ol>
-		</div>
-	@elseif ($browser === 'Edge')
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.default-search') !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.edge.1') !!}<i class="fa fa-ellipsis-h" aria-hidden="true"></i>{!! trans('plugin-page.edge.2') !!}</li>
-				<li>{!! trans('plugin-page.edge.3') !!}</li>
-				<li>{!! trans('plugin-page.edge.4') !!}</li>
-				<li>{!! trans('plugin-page.edge.5') !!}</li>
-			</ol>
-		</div>
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.edge.6', ['browser' => $browser]) !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.edge.7') !!}</li>
-				<li>{!! trans('plugin-page.edge.8') !!}</li>
-				<li>{!! trans('plugin-page.edge.9') !!}</li>
-				<li>{!! trans('plugin-page.edge.10') !!}</li>
-				<li>{!! trans('plugin-page.edge.11') !!}</li>
-			</ol>
-		</div>
-	@elseif ($browser === 'Safari')
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.default-search') !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.safari.1') !!}</li>
-			</ol>
-		</div>
-	@elseif ($browser === 'Vivaldi')
-		<div class="card-heavy">
-			<h3>{!! trans('plugin-page.default-search') !!}</h3>
-			<ol>
-				<li>{!! trans('plugin-page.vivaldi.1') !!}</li>
-				<li>{!! trans('plugin-page.vivaldi.2') !!}</li>
-				<li>{!! trans('plugin-page.vivaldi.3') !!}</li>
-				<li>{!! trans('plugin-page.vivaldi.4') !!}</li>
-				<li>{!! trans('plugin-page.vivaldi.5') !!}</li>
-				<li>{!! trans('plugin-page.vivaldi.6') !!}</li>
-				<li>{!! trans('plugin-page.vivaldi.7') !!}</li>
-			</ol>
-		</div>
-		<div class="card-heavy">
-			<h4>{!! trans('plugin-page.vivaldi.8', ['browser' => $browser]) !!}</h4>
-			<ol>
-				<li>{!! trans('plugin-page.vivaldi.9') !!}</li>
-				<li>{!! trans('plugin-page.vivaldi.10') !!}</li>
-			</ol>
-		</div>
+	@if ($agent->isDesktop())
+		@if ($browser === 'Firefox' || $browser === 'Mozilla')
+			@if (version_compare($agent->version($browser), '61.', '>='))
+				@include ('plugin/desktop/firefox/v61')
+			@elseif (version_compare($agent->version($browser), '57.', '>='))
+				@include ('plugin/desktop/firefox/v57')
+			@else
+				@include ('plugin/desktop/firefox/v52')
+			@endif
+
+		@elseif ($browser === 'Chrome')
+		@if (version_compare($agent->version($browser), '59.', '>='))
+				@include ('plugin/desktop/chrome/v59')
+				@include ('plugin/desktop/vivaldi/v3-3')
+			@elseif (version_compare($agent->version($browser), '53.', '>='))
+				@include ('plugin/desktop/chrome/v53')
+			@else
+				@include ('plugin/desktop/chrome/v49')
+			@endif
+
+		@elseif ($browser === 'Opera')
+			@include ('plugin/desktop/opera/v36')
+
+		@elseif ($browser === 'IE')
+			@if (version_compare($agent->version($browser), '11.', '>='))
+				@include('plugin/desktop/ie/v11')
+			@else
+				@include('plugin/desktop/ie/v9')
+			@endif
+
+		@elseif ($browser === 'Edge')
+			@if (version_compare($agent->version($browser), '80.', '>='))
+				@include('plugin/desktop/edge/v80')
+			@elseif (version_compare($agent->version($browser), '18.', '>='))
+				@include('plugin/desktop/edge/v18')
+			@elseif (version_compare($agent->version($browser), '15.', '>='))
+				@include('plugin/desktop/edge/v15')
+			@endif
+
+		@elseif ($browser === 'Safari')
+			@include ('plugin/desktop/safari/v10')
+
+		@else
+		
+			@section('content')
+
+			<div class="card-heavy">
+	    		<h3>{{ trans('plugin-page.browser-download') }}</h3>
+				<ol>
+					<li style="list-style:none;"><small>{!! trans('plugin-page.desktop-unlisted.php') !!}</small></li>
+				</ol>
+			</div>
+			@include ('plugin/desktop/firefox/v61')
+
+			@endsection
+
+		@endif
+
+	@elseif ($agent->isPhone())
+		@if ($browser === 'Firefox')
+			@if (version_compare($agent->version($agent->browser()), '80.') >= 0))
+				@include ('plugin/mobile/firefox/v80')
+				@include ('plugin/mobile/firefox-klar/v8-8')
+			@else
+				@include ('plugin/mobile/firefox/vlt80')
+			@endif
+
+		@elseif ($browser === 'Chrome')
+			@include('plugin/mobile/chrome/v83')
+
+		@elseif ($browser === 'Opera')
+			@include ('plugin/mobile/opera/v60')
+
+		@elseif ($browser === 'Edge')
+			@include ('plugin/mobile/edge/v45')
+		
+		@elseif ($browser === 'Safari' || $browser === 'UCBrowser')
+			
+			@section('content')
+
+    			<div class="card-heavy">
+	    			<h3>{!! trans('plugin-page.browser-download') !!}</h3>
+					<ol>
+						<li style="list-style:none;"><small>{!! trans('plugin-page.mobile-unable') !!}</small></li>
+					</ol>
+				</div>
+				@include ('plugin/desktop/firefox/v61')
+
+			@endsection
+
+		@else
+
+			@section('content')
+
+				<div class="card-heavy">
+		    		<h3>{{ trans('plugin-page.browser-download') }}</h3>
+					<ol>
+						<li>{!! trans('plugin-page.desktop-unlisted.php') !!}</li>
+					</ol>
+				</div>
+				@include ('plugin/desktop/firefox/v61')
+
+			@endsection
+
+		@endif
 	@endif
 
-@endsection
+	@endsection
diff --git a/resources/views/plugin/desktop/chrome/v49.blade.php b/resources/views/plugin/desktop/chrome/v49.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..72b0c4b33bcd5dbacf0cac799e6c23367bb0c17f
--- /dev/null
+++ b/resources/views/plugin/desktop/chrome/v49.blade.php
@@ -0,0 +1,17 @@
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-chrome.default-search-v49.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-search-v49.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-search-v49.3') }}</li>
+	</ol>
+</div>
+<div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-chrome.default-page-v49.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.3', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.4') }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/chrome/v53.blade.php b/resources/views/plugin/desktop/chrome/v53.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..0a1afacb294deec71e373096f20a40e179b9324c
--- /dev/null
+++ b/resources/views/plugin/desktop/chrome/v53.blade.php
@@ -0,0 +1,17 @@
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-chrome.default-search-v53.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-search-v53.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-search-v53.3') }}</li>
+	</ol>
+</div>
+   <div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-chrome.default-page-v49.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.3', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.4') }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/chrome/v59.blade.php b/resources/views/plugin/desktop/chrome/v59.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..c14b0267b2c12cb7083763afbe141a91f7b23052
--- /dev/null
+++ b/resources/views/plugin/desktop/chrome/v59.blade.php
@@ -0,0 +1,17 @@
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-chrome.default-search-v59.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-search-v59.2') }}</li>
+		<li>{!! trans('plugin-desktop/desktop-chrome.default-search-v59.3') !!}</li>
+	</ol>
+</div>
+   <div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-chrome.default-page-v49.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.3', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+		<li>{{ trans('plugin-desktop/desktop-chrome.default-page-v49.4') }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/edge/v15.blade.php b/resources/views/plugin/desktop/edge/v15.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..b5815db7337f1b791cf0a11d67c46b7457c5598a
--- /dev/null
+++ b/resources/views/plugin/desktop/edge/v15.blade.php
@@ -0,0 +1,17 @@
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-edge.default-search-v15.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-edge.default-search-v15.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-edge.default-search-v15.3') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-edge.default-search-v15.4') }}</li>
+	</ol>
+</div>
+<div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-edge.default-page-v15.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-edge.default-page-v15.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+		<li>{!!trans('plugin-desktop/desktop-edge.default-page-v15.3') !!}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/edge/v18.blade.php b/resources/views/plugin/desktop/edge/v18.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..f7a4fe0b3114e418bafe4e8854b22c5d71aa7ee6
--- /dev/null
+++ b/resources/views/plugin/desktop/edge/v18.blade.php
@@ -0,0 +1,17 @@
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-edge.default-search-v18.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-edge.default-search-v18.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-edge.default-search-v18.3') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-edge.default-search-v18.4') }}</li>
+	</ol>
+</div>
+<div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-edge.default-page-v15.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-edge.default-page-v15.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+		<li>{!! trans('plugin-desktop/desktop-edge.default-page-v15.3') !!}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/edge/v80.blade.php b/resources/views/plugin/desktop/edge/v80.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..06b40124b0af0b2eb361584fa1f6fa6ff9cb974f
--- /dev/null
+++ b/resources/views/plugin/desktop/edge/v80.blade.php
@@ -0,0 +1,15 @@
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-edge.default-search-v80.1') !!}</li>
+		<li>{!! trans('plugin-desktop/desktop-edge.default-search-v80.2') !!}</li>
+	</ol>
+</div>
+<div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-edge.default-page-v80.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-edge.default-page-v80.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+		<li>{!! trans('plugin-desktop/desktop-edge.default-page-v80.3') !!}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/firefox/v52.blade.php b/resources/views/plugin/desktop/firefox/v52.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..926a0ceaf132d52e39e91866b3359c5a0e1ab79a
--- /dev/null
+++ b/resources/views/plugin/desktop/firefox/v52.blade.php
@@ -0,0 +1,16 @@
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+	<ol>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-search-v52.1') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-search-v52.2') }}</li>
+		<li>{!! trans('plugin-desktop/desktop-firefox.default-search-v52.3') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-search-v52.4') }}</li>
+	</ol>
+</div>
+   <div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-firefox.default-page-v52.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-page-v52.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/firefox/v57.blade.php b/resources/views/plugin/desktop/firefox/v57.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..73199c84e20d34b6f01f575f97e3bdf8baee985c
--- /dev/null
+++ b/resources/views/plugin/desktop/firefox/v57.blade.php
@@ -0,0 +1,17 @@
+   <div class="card-heavy">
+    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-firefox.default-search-v57.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-search-v57.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-search-v57.3') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-search-v57.4') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-search-v57.5') }}</li>
+	</ol>
+</div>
+   <div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-firefox.default-page-v52.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-page-v52.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/firefox/v61.blade.php b/resources/views/plugin/desktop/firefox/v61.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..eb5265cd0447c21ea430faaba917e57e853cb23e
--- /dev/null
+++ b/resources/views/plugin/desktop/firefox/v61.blade.php
@@ -0,0 +1,22 @@
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.firefox-plugin') !!}</h3>
+	<ol>
+		<li style="list-style:none;">{!! trans('plugin-desktop/desktop-firefox.plugin') !!}</li>
+	</ol>
+</div>
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.firefox-default-search') !!}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-firefox.default-search-v61.1') !!}</li>
+		<li>{!! trans('plugin-desktop/desktop-firefox.default-search-v61.2') !!}</li>
+	</ol>
+</div>
+<div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-firefox.default-page-v61.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-page-v61.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-page-v61.3') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-firefox.default-page-v61.4', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/ie/v11.blade.php b/resources/views/plugin/desktop/ie/v11.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..a895a62a24295f9d74a53e688d9631006110c9f6
--- /dev/null
+++ b/resources/views/plugin/desktop/ie/v11.blade.php
@@ -0,0 +1,18 @@
+<div class="card-heavy">
+    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-ie.default-search-v11.1') !!}</li>
+		<li>{!! trans('plugin-desktop/desktop-ie.default-search-v11.2') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-ie.default-search-v11.3') }}</li>
+        <li>{{ trans('plugin-desktop/desktop-ie.default-search-v11.4') }}</li>
+        <li>{{ trans('plugin-desktop/desktop-ie.default-search-v11.5') }}</li>
+	</ol>
+</div>
+<div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-ie.default-page-v9.1') !!}</li>
+		<li>{!! trans('plugin-desktop/desktop-ie.default-page-v9.2') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-ie.default-page-v9.3') }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/ie/v9.blade.php b/resources/views/plugin/desktop/ie/v9.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..137c4b16bdf6d5368f4ebba28b982ece6ec85871
--- /dev/null
+++ b/resources/views/plugin/desktop/ie/v9.blade.php
@@ -0,0 +1,15 @@
+<div class="card-heavy">
+    <h3>{{ trans('plugin-page.default-search') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-ie.default-search-v9.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-ie.default-search-v9.2') }}</li>
+	</ol>
+</div>
+<div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-ie.default-page-v9.1') !!}</li>
+		<li>{!! trans('plugin-desktop/desktop-ie.default-page-v9.2') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-ie.default-page-v9.3') }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/opera/v36.blade.php b/resources/views/plugin/desktop/opera/v36.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..b6c5344c364632817134ba94330174d1a11e3922
--- /dev/null
+++ b/resources/views/plugin/desktop/opera/v36.blade.php
@@ -0,0 +1,19 @@
+<div class="card-heavy">
+    <h3>{{ trans('plugin-page.default-search') }}</h3>
+	<ol>
+		<li>{{ trans('plugin-desktop/desktop-opera.default-search-v36.1') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-opera.default-search-v36.2') }}</li>
+        <li>{{ trans('plugin-desktop/desktop-opera.default-search-v36.3') }}</li>
+		<li style="list-style:none;"><small>{!! trans('plugin-page.desktop-unable') !!}</small></li>
+	</ol>
+	@include('parts.searchbar', ['class' => 'startpage-searchbar'])
+</div>
+<div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{{ trans('plugin-desktop/desktop-opera.default-page-v36.1') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-opera.default-page-v36.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-opera.default-page-v36.3', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+		<li>{!! trans('plugin-desktop/desktop-opera.default-page-v36.3') !!}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/safari/v10.blade.php b/resources/views/plugin/desktop/safari/v10.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..fbfa5bcb76f28f7422368cf3a01455379c62c14e
--- /dev/null
+++ b/resources/views/plugin/desktop/safari/v10.blade.php
@@ -0,0 +1,14 @@
+   <div class="card-heavy">
+    <h3>{{ trans('plugin-page.default-search') }}</h3>
+	<ol>
+		<li style="list-style:none;">{!! trans('plugin-page.desktop-unable') !!}</li>
+	</ol>
+</div>
+   <div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-page') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-safari.default-page-v10.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-safari.default-page-v10.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-safari.default-page-v10.3') }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/desktop/vivaldi/v3-3.blade.php b/resources/views/plugin/desktop/vivaldi/v3-3.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..2c2c4ac449e31823d8debbb336e94ea75f303728
--- /dev/null
+++ b/resources/views/plugin/desktop/vivaldi/v3-3.blade.php
@@ -0,0 +1,17 @@
+<h1 class="page-title">{{ trans('plugin-page.head.7') }}</h1>
+<div class="card-heavy">
+	<h3>{{ trans('plugin-page.default-search') }}</h3>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-vivaldi.default-search-v3-3.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-vivaldi.default-search-v3-3.2') }}</li>
+		<li>{{ trans('plugin-desktop/desktop-vivaldi.default-search-v3-3.3') }}</li>
+	</ol>
+	@include('parts.searchbar', ['class' => 'startpage-searchbar'])
+</div>
+<div class="card-heavy">
+	<h4>{{ trans('plugin-page.default-page') }}</h4>
+	<ol>
+		<li>{!! trans('plugin-desktop/desktop-vivaldi.default-page-v3-3.1') !!}</li>
+		<li>{{ trans('plugin-desktop/desktop-vivaldi.default-page-v3-3.2', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+	</ol>
+</div>
\ No newline at end of file
diff --git a/resources/views/plugin/mobile/chrome/v83.blade.php b/resources/views/plugin/mobile/chrome/v83.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..be03be2c202b937db8f16accc4dab9a2e8a55468
--- /dev/null
+++ b/resources/views/plugin/mobile/chrome/v83.blade.php
@@ -0,0 +1,26 @@
+@section('content')
+
+<div role="dialog">
+	<h1 class="page-title">{{ trans('plugin-page.head.2') }}</h1>
+    <div class="card-heavy">
+	    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+		<ol>
+			<li>{!! trans('plugin-mobile/mobile-chrome.default-search-v83.1') !!}</li>
+			<li>{{ trans('plugin-mobile/mobile-chrome.default-search-v83.2') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-chrome.default-search-v83.3') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-chrome.default-search-v83.4') }}</li>
+			<li><small>{{ trans('plugin-mobile/mobile-chrome.default-search-v83.5') }}</small></li>
+		</ol>
+		@include('parts.searchbar', ['class' => 'startpage-searchbar'])
+	</div>
+    <div class="card-heavy">
+		<h3>{{ trans('plugin-page.default-page') }}</h3>
+		<ol>
+			<li>{!! trans('plugin-mobile/mobile-chrome.default-page-v83.1') !!}</li>
+			<li>{{ trans('plugin-mobile/mobile-chrome.default-page-v83.2') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-chrome.default-page-v83.3') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-chrome.default-page-v83.4', ['link' => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/")]) }}</li>
+		</ol>
+	</div>
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/plugin/mobile/edge/v45.blade.php b/resources/views/plugin/mobile/edge/v45.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..1e9897e11464c05df6e07508ae54915ed2fe449b
--- /dev/null
+++ b/resources/views/plugin/mobile/edge/v45.blade.php
@@ -0,0 +1,26 @@
+@section('content')
+
+<div role="dialog">
+	<h1 class="page-title">{{ trans('plugin-page.head.5') }}</h1>
+    <div class="card-heavy">
+	    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+		<ol>
+			<li>{!! trans('plugin-mobile/mobile-edge.default-search-v45.1') !!}</li>
+			<li>{{ trans('plugin-mobile/mobile-edge.default-search-v45.2') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-edge.default-search-v45.3') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-edge.default-search-v45.4') }}</li>
+			<li><small>{{ trans('plugin-mobile/mobile-edge.default-search-v45.5') }}</small></li>
+		</ol>
+		@include('parts.searchbar', ['class' => 'startpage-searchbar'])
+	</div>
+    <div class="card-heavy">
+		<h3>{{ trans('plugin-page.default-page') }}</h3>
+		<ol>
+			<li>{!! trans('plugin-mobile/mobile-edge.default-page-v45.1') !!}</li>
+			<li>{!! trans('plugin-mobile/mobile-edge.default-page-v45.2') !!}</li>
+			<li>{{ trans('plugin-mobile/mobile-edge.default-page-v45.3') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-edge.default-page-v45.4') }}</li>
+		</ol>
+	</div>
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/plugin/mobile/firefox-klar/v8-8.blade.php b/resources/views/plugin/mobile/firefox-klar/v8-8.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..cece8c735ec9e14757d26bf23675464954135c76
--- /dev/null
+++ b/resources/views/plugin/mobile/firefox-klar/v8-8.blade.php
@@ -0,0 +1,17 @@
+@section('content')
+
+<div role="dialog">
+	<h1 class="page-title">{{ trans('plugin-page.head.8') }}</h1>
+    <div class="card-heavy">
+	    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+		<ol>
+			<li>{!! trans('plugin-mobile/mobile-firefox-klar.default-search-v8-8.1') !!}</li>
+			<li>{{ trans('plugin-mobile/mobile-firefox-klar.default-search-v8-8.2') }}</li>
+            <li>{{ trans('plugin-mobile/mobile-firefox-klar.default-search-v8-8.3') }}</li>
+            <li>{{ trans('plugin-mobile/mobile-firefox-klar.default-search-v8-8.4') }}</li>
+			<li style="list-style:none;">{{ trans('plugin-mobile/mobile-firefox.search-string') }}</li>
+			<code>{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route("resultpage", ["eingabe" => ""])) }}%s</code>
+		</ol>
+	</div>
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/plugin/mobile/firefox/v80.blade.php b/resources/views/plugin/mobile/firefox/v80.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..2cd112ad379c5f28a818d2af8dfac0a8a1952647
--- /dev/null
+++ b/resources/views/plugin/mobile/firefox/v80.blade.php
@@ -0,0 +1,18 @@
+@section('content')
+
+<div role="dialog">
+	<h1 class="page-title">{{ trans('plugin-page.head.1') }}</h1>
+    <div class="card-heavy">
+	    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+		<ol>
+			<li>{!! trans('plugin-mobile/mobile-firefox.default-search-v80.1') !!}</li>
+			<li>{{ trans('plugin-mobile/mobile-firefox.default-search-v80.2') }}</li>
+            <li>{{ trans('plugin-mobile/mobile-firefox.default-search-v80.3') }}</li>
+            <li>{{ trans('plugin-mobile/mobile-firefox.default-search-v80.4') }}</li>
+            <li>{!! trans('plugin-mobile/mobile-firefox.default-search-v80.5') !!}</li>
+			<li style="list-style:none;">{{ trans('plugin-mobile/mobile-firefox.search-string') }}</li>
+			<code>{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route("resultpage", ["eingabe" => ""])) }}%s</code>
+		</ol>
+	</div>
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/plugin/mobile/firefox/vlt80.blade.php b/resources/views/plugin/mobile/firefox/vlt80.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..02c916094d240e948dc7c39341f20053d7e8d438
--- /dev/null
+++ b/resources/views/plugin/mobile/firefox/vlt80.blade.php
@@ -0,0 +1,15 @@
+@section('content')
+
+<div role="dialog">
+	<h1 class="page-title">{{ trans('plugin-page.head.1') }}</h1>
+    <div class="card-heavy">
+	    <h3>{!! trans('plugin-page.default-search') !!}</h3>
+		<ol>
+			<li>{{ trans('plugin-mobile/mobile-firefox.default-search-vlt80.1') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-firefox.default-search-vlt80.2') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-firefox.default-search-vlt80.3') }}</li>
+		</ol>
+		@include('parts.searchbar', ['class' => 'startpage-searchbar'])
+	</div>
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/plugin/mobile/opera/v60.blade.php b/resources/views/plugin/mobile/opera/v60.blade.php
new file mode 100644
index 0000000000000000000000000000000000000000..f05e270e85205c55672f2951f491e8ac770ae9e4
--- /dev/null
+++ b/resources/views/plugin/mobile/opera/v60.blade.php
@@ -0,0 +1,23 @@
+@section('content')
+
+<div role="dialog">
+	<h1 class="search-title">{{ trans('plugin-page.head.3') }}</h1>
+    <div class="card-heavy">
+	    <h3>{{ trans('plugin-page.default-page') }}</h3>
+		<ol>
+			<li>{!! trans('plugin-page/mobile-unable.php') !!}</li>
+		</ol>
+	</div>
+    <div class="card-heavy">
+	    <h3>{!! trans('plugin-page.default-page') !!}</h3>
+		<ol>
+			<li>{{ trans('plugin-mobile/mobile-opera.default-search-v60.1') }}</li>
+			<li>{{ trans('plugin-mobile/mobile-opera.default-search-v60.2') }}</li>
+            <li>{{ trans('plugin-mobile/mobile-opera.default-search-v60.3') }}</li>
+            <li>{{ trans('plugin-mobile/mobile-opera.default-search-v60.4') }}</li>
+			<li><small>{{ trans('plugin-page.mobile-unable') }}</small></li>
+			@include('parts.searchbar', ['class' => 'startpage-searchbar'])
+		</ol>
+	</div>
+
+@endsection
\ No newline at end of file
diff --git a/resources/views/quicktips.blade.php b/resources/views/quicktips.blade.php
index 6fa679cf65fd25ab3e02af788260f55783900250..f354bda8b7ff7dadefffc7704e3bf4325b39b28b 100644
--- a/resources/views/quicktips.blade.php
+++ b/resources/views/quicktips.blade.php
@@ -1,19 +1,5 @@
-<!DOCTYPE html>
-<html lang="{{ LaravelLocalization::getCurrentLocale() }}">
-<head>
-  <meta charset="UTF-8">
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <title>{{ $search }} - MetaGer Quicktips</title>
-  <link type="text/css" rel="stylesheet" href="{{ mix('css/quicktips.css') }}" />
-  <link href="/fonts/liberationsans/stylesheet.css" rel="stylesheet">
-	<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome.css') }}" />
-	<link type="text/css" rel="stylesheet" href="{{ mix('css/fontawesome-solid.css') }}" />
-</head>
-<body id="quicktips">
 @foreach($quicktips as $quicktip)
   <div class="quicktip" type="{{ $quicktip->type }}">
     @include('parts.quicktip', ['quicktip' => $quicktip])
   </div>
-@endforeach
-</body>
-</html>
+@endforeach
\ No newline at end of file
diff --git a/resources/views/settings/allSettings.blade.php b/resources/views/settings/allSettings.blade.php
index 1e278278357a3f05bbf8f1e1afc1e90901ec0efc..263ae46e4e720c35fc9abe16ef8e93df9adbe341 100644
--- a/resources/views/settings/allSettings.blade.php
+++ b/resources/views/settings/allSettings.blade.php
@@ -32,6 +32,8 @@
                             @endforeach
                         @elseif($key === "key")
                         @lang('settings.key')
+                        @elseif(strpos($key, "_blpage"))
+                        @lang('settings.blentry')
                         @endif
                         </td>
                         <td>
diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php
index dab66c36343b7f6fb6f6dc84a14f93a83e97e172..e673165a34a4710b3e0f794881524cc4d7a91fdb 100644
--- a/resources/views/settings/index.blade.php
+++ b/resources/views/settings/index.blade.php
@@ -11,6 +11,11 @@
     <div class="card-light">
         <h2>@lang('settings.hint.header')</h2>
         <p>@lang('settings.hint.text', ["link" => LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('showAllSettings', ['url' => url()->full()])) ])</p>
+        <p>@lang('settings.hint.loadSettings')</p>
+        <div id="cookieLink">
+            <input id="loadSettings" type="text" value="{{$cookieLink}}">
+            <button class="js-only btn btn-default" onclick="var copyText = document.getElementById('loadSettings');copyText.select();copyText.setSelectionRange(0, 99999);document.execCommand('copy');">@lang('settings.copy')</button>
+        </div>
     </div>
     <div class="card-light">
         <h2>@lang('settings.header.2')</h2>
@@ -82,24 +87,57 @@
             </div>
             <button type="submit" class="btn btn-default">@lang('settings.save')</button>
         </form>
+    </div>
 
+    <div class="card-light" id="blacklist">
+        <h2>@lang('settings.header.4')</h2>
+        <p>@lang('settings.text.4')</p>
+        <form id="newentry" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('newBlacklist', ["fokus" => $fokus, "url" => $url])) }}" method="post">
+            <input type="hidden" name="url" value="{{ $url }}">
+            <input type="hidden" name="fokus" value="{{ $fokus }}">
+            <label for="blacklist">@lang('settings.address')</label>
+            <div id="create">
+                <input id="blacklist" name="blacklist" type="text" placeholder="example.com">
+                <button type="submit" class="btn btn-default">@lang('settings.add')</button>
+            </div>
+        </form>
+        @if(!empty($blacklist))
+            <form id="deleteentry" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('deleteBlacklist', ["fokus" => $fokus, "url" => $url])) }}" method="post">
+                <table>
+                @foreach($blacklist as $key => $value)
+                    <tr>
+                        <td>
+                            {{ $value }}
+                        </td>
+                        <td>
+                            <button type="submit" name="cookieKey" value="{{ $key }}"><i class="fas fa-trash-alt"></i></button>
+                        </td>
+                    </tr>
+                @endforeach
+                </table>
+            </form>
+            <form id="clearlist" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('clearBlacklist', ["fokus" => $fokus, "url" => $url])) }}" method="post">
+                <button type="submit" name="clear" value="1">@lang('settings.clear')</button>
+            </form>
+        @endif
     </div>
+
     @if(LaravelLocalization::getCurrentLocale() === "de")
-    <div class="card-light">
-    <h2>Weitere Einstellungen</h2>
-    <form id="setting-form" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('enableSetting')) }}" method="post" class="form">
-        <input type="hidden" name="fokus" value="{{ $fokus }}">
-        <input type="hidden" name="url" value="{{ $url }}">
-        <div class="form-group">
-            <label for="zitate">Zitate</label>
-            <select name="zitate" id="zitate" class="form-control">
-                <option value="on" @if(Cookie::get($fokus . "_setting_zitate") === null)disabled selected @endif>Anzeigen</option>
-                <option value="off" {{ Cookie::get($fokus . "_setting_zitate") === "off" ? "disabled selected" : "" }}>Nicht Anzeigen</option>
-            </select>
+        <div class="card-light">
+            <h2>Weitere Einstellungen</h2>
+            <form id="setting-form" action="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), route('enableSetting')) }}" method="post" class="form">
+                <input type="hidden" name="fokus" value="{{ $fokus }}">
+                <input type="hidden" name="url" value="{{ $url }}">
+                <div class="form-group">
+                    <label for="zitate">Zitate</label>
+                    <select name="zitate" id="zitate" class="form-control">
+                        <option value="on" @if(Cookie::get($fokus . "_setting_zitate") === null)disabled selected @endif>Anzeigen</option>
+                        <option value="off" {{ Cookie::get($fokus . "_setting_zitate") === "off" ? "disabled selected" : "" }}>Nicht Anzeigen</option>
+                    </select>
+                </div>
+                <button type="submit" class="btn btn-default">@lang('settings.save')</button>
+            </form>
         </div>
-        <button type="submit" class="btn btn-default">@lang('settings.save')</button>
-    </form>
-    </div>
     @endif
     <div class="card-light" id="actions">
         @if($settingActive)
diff --git a/resources/views/tor.blade.php b/resources/views/tor.blade.php
index fba63f18a0aaf93f57b7170f54097fad8da78e07..8d6de367c73f9a82d070b914794b7ecb635a444c 100644
--- a/resources/views/tor.blade.php
+++ b/resources/views/tor.blade.php
@@ -5,5 +5,5 @@
 @section('content')
 	<h1>MetaGer hidden service</h1>
 	<p>@lang('tor.description')</p>
-	<a class="btn btn-primary" href="http://metagerv65pwclop2rsfzg4jwowpavpwd6grhhlvdgsswvo6ii4akgyd.onion/" role="button">{{trans('tor.torbutton')}}</a>
+	<a class="btn btn-primary" href="{{trans('tor.torurl')}}" role="button">{{trans('tor.torbutton')}}</a>
 @endsection
diff --git a/routes/cookie.php b/routes/cookie.php
index 8ad3a67810e7f6ddaf5d0547e6c2ffe2bc9238b4..515dd0ca82b6995d51ad7da0bdab21c300024fdd 100644
--- a/routes/cookie.php
+++ b/routes/cookie.php
@@ -20,12 +20,15 @@ Route::group(
                 Route::post('ef', 'SettingsController@enableFilter')->name('enableFilter');
                 Route::post('es', 'SettingsController@enableSetting')->name('enableSetting');
                 Route::post('ds', 'SettingsController@deleteSettings')->name('deleteSettings');
+                Route::post('nb', 'SettingsController@newBlacklist')->name('newBlacklist');
+                Route::post('db', 'SettingsController@deleteBlacklist')->name('deleteBlacklist');
+                Route::post('cb', 'SettingsController@clearBlacklist')->name('clearBlacklist');
 
                 # Route to show and delete all settings
                 Route::get('all-settings', 'SettingsController@allSettingsIndex')->name('showAllSettings');
                 Route::post('all-settings/removeOne', 'SettingsController@removeOneSetting')->name('removeOneSetting');
                 Route::post('all-settings/removeAll', 'SettingsController@removeAllSettings')->name('removeAllSettings');
-
+                Route::get('load-settings', 'SettingsController@loadSettings')->name('loadSettings');
             });
     }
 );
diff --git a/routes/web.php b/routes/web.php
index 77054986190b71d883c2e3c705a11dd07d74fc16..875b21d7f2f49d35c24081b0bb4bcf5ff88f289e 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -166,6 +166,7 @@ Route::group(
             return view('plugin-page')
                 ->with('title', trans('titles.plugin'))
                 ->with('navbarFocus', 'dienste')
+                ->with('agent', new Agent())
                 ->with('browser', (new Agent())->browser())
                 ->with('request', $this->input('request', 'GET'));
         });
diff --git a/tests/Browser/Pages/App.php b/tests/Browser/Pages/App.php
index c28c9a7039fed75cb5955bc0af2f1457df1e7a05..e1c50cf24d5f6200f5a56344e46d23a8e05b5b99 100644
--- a/tests/Browser/Pages/App.php
+++ b/tests/Browser/Pages/App.php
@@ -31,7 +31,7 @@ class App extends Page
             ->waitForText("This App brings the full Metager power to your smartphone.")
             ->assertTitle("Apps - MetaGer")
             ->switchLanguage("Español")
-            ->waitForText("Diese App bringt die volle Power unserer Suchmaschine auf ihr Smartphone.")
+            ->waitForText("Con esta aplicación, obtiene toda la potencia de nuestro motor de búsqueda en su smartphone.")
             ->assertTitle("Aplicaciones - MetaGer")
             ->switchLanguage("Deutsch");
 
diff --git a/tests/Browser/Pages/Plugin.php b/tests/Browser/Pages/Plugin.php
index e47cea91d3efb62ec460b346cb9ad3c45e9862a8..8e4810d0a29d79f958b0a3c94d74dd879822ac38 100644
--- a/tests/Browser/Pages/Plugin.php
+++ b/tests/Browser/Pages/Plugin.php
@@ -25,7 +25,7 @@ class Plugin extends Page
     public function assert(Browser $browser)
     {
         $browser->assertPathIs($this->url())
-            ->waitForText("MetaGer zum Firefox hinzufügen")
+            ->waitForText("MetaGer zu Firefox hinzufügen")
             ->assertTitle("Plugin - MetaGer")
             ->switchLanguage("English")
             ->waitForText("Add MetaGer to your Firefox")
diff --git a/webpack.mix.js b/webpack.mix.js
index 91565c2e243bffdfc366fe10fe028ee96cc9c072..30e9bbf50b657057402c542a335a9e3b89ef58f6 100644
--- a/webpack.mix.js
+++ b/webpack.mix.js
@@ -25,9 +25,6 @@ mix
   .less("resources/less/metager/metager-dark.less", "public/css/themes/metager-dark.css", {
     strictMath: true
   })
-  .less("resources/less/metager/pages/resultpage/quicktips.less", "public/css/quicktips.css", {
-    strictMath: true
-  })
   .less("resources/less/font-awesome/fontawesome.less", "public/css/fontawesome.css", {
     strictMath: true
   })