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ä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&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ü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