From f6582d2f40aa8634d6a452c8bf05f083ff8020f9 Mon Sep 17 00:00:00 2001
From: Dominik Pfennig <dominik@suma-ev.de>
Date: Tue, 19 Jul 2016 15:27:37 +0200
Subject: [PATCH] =?UTF-8?q?Sprachschalter=20eingebaut=20und=20die=20englis?=
 =?UTF-8?q?che=20Suche=20optimiert.=20Sprachfilter=20=C3=BCberholt.=20Wir?=
 =?UTF-8?q?=20benutzen=20nun=20das=20Perl=20Paket=20Lingua::Identify?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/Http/Controllers/MetaGerSearch.php        |  3 +--
 app/Http/Controllers/StartpageController.php  |  2 +-
 app/MetaGer.php                               |  2 +-
 app/Models/Result.php                         | 18 ++++++++----------
 app/Models/lang.pl                            | 10 ++++++++++
 public/js/settings.js                         |  6 +++---
 resources/lang/de/settings.php                |  2 ++
 resources/lang/en/settings.php                |  2 ++
 resources/views/index.blade.php               | 11 +++++++----
 resources/views/layouts/staticPages.blade.php |  6 +++---
 resources/views/settings.blade.php            |  9 +++++----
 11 files changed, 43 insertions(+), 28 deletions(-)
 create mode 100755 app/Models/lang.pl

diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php
index 48a24e206..d1b179e30 100644
--- a/app/Http/Controllers/MetaGerSearch.php
+++ b/app/Http/Controllers/MetaGerSearch.php
@@ -32,8 +32,7 @@ class MetaGerSearch extends Controller
 
         # Ergebnisse der Suchmaschinen kombinieren:
         $metager->combineResults();
-
-        $metager->removeInvalids();
+        
         # Die Ausgabe erstellen:
         return $metager->createView();
     }
diff --git a/app/Http/Controllers/StartpageController.php b/app/Http/Controllers/StartpageController.php
index 59c9261a9..6a22e7a6f 100644
--- a/app/Http/Controllers/StartpageController.php
+++ b/app/Http/Controllers/StartpageController.php
@@ -110,7 +110,7 @@ class StartpageController extends Controller
     {
         $sumaFile = "";
         if(App::isLocale('en'))
-            $sumaFile = config_path() . "/sumasEn.xml";
+            $sumaFile = config_path() . "/sumas.xml";
         else
             $sumaFile = config_path() . "/sumas.xml";
 
diff --git a/app/MetaGer.php b/app/MetaGer.php
index aca8fed1a..f04aaa7ec 100644
--- a/app/MetaGer.php
+++ b/app/MetaGer.php
@@ -510,7 +510,7 @@ class MetaGer
 
         # SUMA-FILE
         if(App::isLocale("en")){
-            $this->sumaFile = config_path() . "/sumasEn.xml";
+            $this->sumaFile = config_path() . "/sumas.xml";
         }else{
             $this->sumaFile = config_path() . "/sumas.xml";
         }
diff --git a/app/Models/Result.php b/app/Models/Result.php
index 6ba3a0882..f14c22b6d 100644
--- a/app/Models/Result.php
+++ b/app/Models/Result.php
@@ -157,21 +157,19 @@ class Result
 			return false;
 		}
 
-		$text = $this->titel . " " . $this->descr;
-
-		if($metager->getLang() !== "all")
+		# Nun der Eventuelle Sprachfilter
+		if( $metager->getLang() !== "all" )
 		{
-			$result = $metager->getLanguageDetect()->detect($text, 1);
-			$lang = "";
-			foreach($result as $key => $value)
-			{
-				$lang = $key;
-			}
+			$text = $this->titel . " " . $this->descr;
+			$path = app_path() . "/Models/lang.pl";
+			$lang = exec("echo '$text' | $path");
 
-			if($lang !== "" && $lang !== $metager->getLang())
+			if( $metager->getLang() !== $lang )
 				return false;
 		}
 
+		
+
 		# Wir wenden die Stoppwortsuche an und schmeißen entsprechende Ergebnisse raus:
 		foreach($metager->getStopWords() as $stopWord)
 		{
diff --git a/app/Models/lang.pl b/app/Models/lang.pl
new file mode 100755
index 000000000..fe071d8a4
--- /dev/null
+++ b/app/Models/lang.pl
@@ -0,0 +1,10 @@
+#!/usr/bin/perl
+
+use Lingua::Identify qw(:language_identification);
+
+$text = <STDIN>;
+
+$a = langof($text);
+
+print $a;
+
diff --git a/public/js/settings.js b/public/js/settings.js
index eb7c6f1f3..05497e3db 100644
--- a/public/js/settings.js
+++ b/public/js/settings.js
@@ -14,11 +14,11 @@ $(document).ready(function(){
 			$("select").each(function(el){
 				localStorage.setItem($(this).attr("name"), $(this).val());
 			});
-			document.location.href="../";
+			document.location.href=$("#save").attr("data-href");
 		});
 		$("#reset").click(function(){
 			resetOptions();
-			document.location.href="../";
+			document.location.href=$("#save").attr("data-href");
 		});
 	}
 	$(".checker").click(function(){
@@ -33,7 +33,7 @@ $(document).ready(function(){
 		alert("Auf der folgenden Startseite sind Ihre Einstellungen nun einmalig gespeichert. Nach Ihrer ersten Suche sind diese wieder verloren. Wenn Sie diese speichern möchten, können Sie sich allerdings ein Lesezeichnen einrichten.");
 	});
 	$("#plugin").click(function(){
-		$("form").attr('action', '/#plugin-modal');
+		$("form").attr('action', $("#save").attr("data-href") + '#plugin-modal');
 		alert("Ihr Browserplugin mit den persönlichen Sucheinstellungen wurde generiert. Folgen Sie bitte der Anleitung auf der folgenden Seite um es zu installieren. Beachten Sie: Zuvor sollten Sie ein eventuell bereits installiertes MetaGer-Plugin entfernen.");
 	});
 });
diff --git a/resources/lang/de/settings.php b/resources/lang/de/settings.php
index edc340f77..01cc55cc5 100644
--- a/resources/lang/de/settings.php
+++ b/resources/lang/de/settings.php
@@ -12,6 +12,7 @@ return [
 	'allgemein.4' => 'Sprache ausw&auml;hlen',
 	'allgemein.5' => 'Alle Sprachen',
 	'allgemein.6' => 'Deutsch',
+	'allgemein.6_1' => 'Englisch',
 	'allgemein.7' => 'Anzahl der Ergebnisse pro Seite',
 	'allgemein.8' => 'Alle',
 	'allgemein.9' => 'Maximale Suchzeit',
@@ -38,4 +39,5 @@ return [
 	'speichern.1'		=>	'Startseite für einmalige Nutzung generieren',
 	'speichern.2'		=>	'Einstellungen dauerhaft speichern',
 	'speichern.3'		=>	'Plugin mit diesen Einstellungen generieren',
+	'speichern.4'		=>	'Einstellungen zurücksetzen',
 ];
\ No newline at end of file
diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php
index 1f78bed91..52efb9efc 100644
--- a/resources/lang/en/settings.php
+++ b/resources/lang/en/settings.php
@@ -12,6 +12,7 @@ return [
 	'allgemein.4' => 'select language',
 	'allgemein.5' => 'all languages',
 	'allgemein.6' => 'german',
+	'allgemein.6_1' => 'english',
 	'allgemein.7' => 'number of results per page',
 	'allgemein.8' => 'all',
 	'allgemein.9' => 'maximum search time',
@@ -38,4 +39,5 @@ return [
 	'speichern.1'		=>	'Create a startpage for one-time use',
 	'speichern.2'		=>	'Save settings permanently',
 	'speichern.3'		=>	'Generate plugin with these settings',
+	'speichern.4'		=>	'Reset saved settings',
 ];
diff --git a/resources/views/index.blade.php b/resources/views/index.blade.php
index f6ef4e0a1..d733b3972 100644
--- a/resources/views/index.blade.php
+++ b/resources/views/index.blade.php
@@ -166,7 +166,10 @@
                     @foreach ($focusPages as $fp)
                       <input type="hidden" name={{ $fp }} value="on">
                     @endforeach
-                  @else <input type="hidden" name="lang" value="all">
+                  @elseif( !App::isLocale('de') )
+                  <input type="hidden" name="lang" value="{{ App::getLocale() }}">
+                  @else
+                  <input type="hidden" name="lang" value="all">
                   @endif
                   <div class="input-group-addon">
                     <button type="submit">
@@ -213,13 +216,13 @@
             </div>
             <div class="col-md-6 col-sm-12">
               <h2>
-                <a href="/about/">{{ trans('index.about.title') }}</a>
+                <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "about") }}">{{ trans('index.about.title') }}</a>
               </h2>
               <ul>
                 <li>
-                  <a href="/datenschutz/">{{ trans('index.about.1.1') }}</a>{{ trans('index.about.1.2') }}
+                  <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "datenschutz") }}">{{ trans('index.about.1.1') }}</a>{{ trans('index.about.1.2') }}
                 </li>
-                <li>{{ trans('index.about.2.1') }}<a href="/spende/">{{ trans('index.about.2.2') }}</a>
+                <li>{{ trans('index.about.2.1') }}<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "spende") }}">{{ trans('index.about.2.2') }}</a>
                 </li>
               </ul>
             </div>
diff --git a/resources/views/layouts/staticPages.blade.php b/resources/views/layouts/staticPages.blade.php
index 68c23951a..94c0d13d1 100644
--- a/resources/views/layouts/staticPages.blade.php
+++ b/resources/views/layouts/staticPages.blade.php
@@ -71,7 +71,7 @@
 									<li><a href="http://forum.suma-ev.de/viewtopic.php?f=3&amp;t=43" target="_blank">{{ trans('staticPages.nav14') }}</a></li>
 								</ul>
 							</li>
-							<!--<li class="dropdown">
+							<li class="dropdown">
 								<a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false" id="navigationSprache">{{ trans('staticPages.nav19') }}
 								<span class="caret"></span></a>
 								<ul class="dropdown-menu">
@@ -79,7 +79,7 @@
 										<li><a rel="alternate" hreflang="{{$localeCode}}" href="{{LaravelLocalization::getLocalizedURL($localeCode) }}">{{{ $properties['native'] }}}</a></li>
 									@endforeach
 								</ul>
-							</li>-->
+							</li>
 						</ul>
 					</div>
 				</div>
@@ -106,7 +106,7 @@
 					<li><a href="https://www.suma-ev.de/" target="_blank">
 						<img src="/img/suma_ev_logo-m1-greyscale.png" alt="SUMA-EV Logo"></a></li>
 					<li id="info">
-						<a href="/kontakt/">{{ trans('staticPages.nav5') }}</a> - <a href="/impressum/">{{ trans('staticPages.nav8') }}</a>
+						<a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "kontakt") }}">{{ trans('staticPages.nav5') }}</a> - <a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "impressum") }}">{{ trans('staticPages.nav8') }}</a>
 						{{ trans('staticPages.sumaev.1') }}<a href="https://www.suma-ev.de/" target="_blank" >{{ trans('staticPages.sumaev.2') }}</a></li>
 					<li><a href="https://www.uni-hannover.de/" target="_blank">
 						<img src="/img/luh_metager.png" alt="LUH Logo"></a></li>
diff --git a/resources/views/settings.blade.php b/resources/views/settings.blade.php
index f93be1389..850d74ebb 100644
--- a/resources/views/settings.blade.php
+++ b/resources/views/settings.blade.php
@@ -16,8 +16,9 @@
 		</div>
 		<label class="select-label">{{ trans('settings.allgemein.4') }}:</label>
 		<select class="form-control" name="param_lang">
-			<option value="all">{{ trans('settings.allgemein.5') }}</option>
-			<option value="de">{{ trans('settings.allgemein.6') }}</option></select>
+			<option value="all" @if(App::isLocale('de')) selected @endif >{{ trans('settings.allgemein.5') }}</option>
+			<option value="de">{{ trans('settings.allgemein.6') }}</option>
+			<option value="en" @if(App::isLocale('en')) selected @endif>{{ trans('settings.allgemein.6_1') }}</option></select>
 		<label class="select-label">{{ trans('settings.allgemein.7') }}:</label>
 		<select class="form-control" name="param_resultCount">
 			<option value="10">10</option>
@@ -56,8 +57,8 @@
 			</div>
 		@endforeach
 		<input id="unten" type="submit" class="btn btn-primary" value="{{ trans('settings.speichern.1') }}">
-		<input type="button" class="btn btn-primary hidden" id="save" value="{{ trans('settings.speichern.2') }}">
+		<input type="button" class="btn btn-primary hidden" id="save" data-href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), "/") }}" value="{{ trans('settings.speichern.2') }}">
 		<input id="plugin" type="submit" class="btn btn-primary" value="{{ trans('settings.speichern.3') }}">
-		<input type="button" class="btn btn-danger hidden" id="reset" value="Einstellungen Zur&uuml;cksetzen">
+		<input type="button" class="btn btn-danger hidden" id="reset" value="{{ trans('settings.speichern.4') }}">
 	</form>
 @endsection
\ No newline at end of file
-- 
GitLab