diff --git a/app/Http/Controllers/LanguageController.php b/app/Http/Controllers/LanguageController.php index 29fe795f41410921362ec5bb47174d68de1a3450..7e5f1dbd2b229d9767f65522b74df7277bbba386 100644 --- a/app/Http/Controllers/LanguageController.php +++ b/app/Http/Controllers/LanguageController.php @@ -34,8 +34,9 @@ class LanguageController extends Controller $tmp = include $filename; foreach ($tmp as $key => $value) { $sum = array_merge($sum, $this->getValues([$key => $value], basename($filename))); + $langTexts[$dir]["textCount"] += count($this->getValues([$key => $value])); } - $langTexts[$dir]["textCount"] += count($tmp); + } } @@ -83,9 +84,10 @@ class LanguageController extends Controller foreach ($tmp as $key => $value) { $sum = array_merge($sum, $this->getValues([$key => $value], basename($filename))); $texts[basename($filename)][$key][$dir] = $value; + $langTexts[$dir] += count($this->getValues([$key => $value])); } $filePath[basename($filename)] = preg_replace("/lang\/.*?\//si", "lang/$to/", substr($filename, strpos($filename, "lang"))); - $langTexts[$dir] += count($tmp); + } } @@ -111,14 +113,24 @@ class LanguageController extends Controller if ($has) { continue; } - + while ($this->hasToMuchDimensions($text)) { + $text = $this->deMultidimensionalizeArray($text); + } # Hier können wir später die bereits bearbeiteten Dateien ausschließen. foreach ($text as $textname => $languages) { + if ($languages === "") { + continue; + } + + $complete = true; foreach ($languages as $lang => $value) { if ($lang !== $to) { $langs = array_add($langs, $lang, $lang); } + if (!isset($languages[$to]) && isset($languages[$lang])) { + $complete = false; + } } if (!isset($languages[$to])) { @@ -130,10 +142,7 @@ class LanguageController extends Controller } - while ($this->hasToMuchDimensions($t)) { - $t = $this->deMultidimensionalizeArray($t); - } - + $t = $this->htmlEscape($t, $to); $t = $this->createHints($t, $to); return view('languages.edit') @@ -149,6 +158,20 @@ class LanguageController extends Controller ->with('new', $ex["new"]); } + private function htmlEscape($t, $to) + { + foreach ($t as $key => $langTexts) { + if ($langTexts !== "") { + foreach ($langTexts as $lang => $text) { + if ($lang !== $to) { + $t[$key][$lang] = htmlspecialchars($text); + } + } + } + } + return $t; + } + private function createHints($t, $to) { foreach ($t as $key => $langTexts) { @@ -156,9 +179,11 @@ class LanguageController extends Controller foreach ($langTexts as $lang => $text) { if ($lang !== $to) { if (preg_match("/\s:\S+/si", $text)) { - #die("test"); $t[$key][$lang] = preg_replace("/(\s)(:\S+)/si", "$1<a class=\"text-danger hint\" data-toggle=\"tooltip\" data-trigger=\"hover\" data-placement=\"auto\" title=\"Dies ist ein Variablenname. Er wird dort, wo der Text verwendet wird durch einen dynamischen Wert ersetzt. In der Übersetzung sollte dieser deshalb auch so wie er ist in den Satz integriert werden.\" data-container=\"body\" >$2</a>", $text); } + if (preg_match("/<.*?>/si", $text)) { + $t[$key][$lang] = preg_replace("/(<.*?>)/si", "<a class=\"text-danger hint\" data-toggle=\"tooltip\" data-trigger=\"hover\" data-placement=\"auto\" title=\"Dies ist ein sogenanntes HTML-Tag. Wenn Sie sich das zutrauen, bauen Sie diese HTML Tags gerne so wie sie sind in Ihre Übersetzung ein. Achten Sie hierbei darauf, dass der Text zwischen den Tags auch bei der Übersetzung an der logisch gleichen Stelle von den Tags umfasst ist.\" data-container=\"body\" >$1</a>", $text); + } } } diff --git a/app/Http/Controllers/MailController.php b/app/Http/Controllers/MailController.php index 44fbe0d143785fee4e2bec96db104773e5e2e512..aec7b0c92d70e63e62f4d5ff05404e6ccbf9e657 100644 --- a/app/Http/Controllers/MailController.php +++ b/app/Http/Controllers/MailController.php @@ -160,12 +160,12 @@ class MailController extends Controller $message = "Moin moin,\n\nein Benutzer hat eine Sprachdatei aktualisiert.\nSollten die Texte so in Ordnung sein, ersetzt, oder erstellt die Datei aus dem Anhang in folgendem Pfad:\n$filename\n\nFolgend zusätzlich der Inhalt der Datei:\n\n$output"; - Mail::send(['text' => 'kontakt.mail'], ['messageText' => $message], function ($message) use ($output, $filename) { - $message->subject('MetaGer - Sprachdatei'); - $message->from('noreply@metager.de'); - $message->to('office@suma-ev.de'); - $message->attachData($output, basename($filename)); - }); + #Mail::send(['text' => 'kontakt.mail'], ['messageText' => $message], function ($message) use ($output, $filename) { + # $message->subject('MetaGer - Sprachdatei'); + # $message->from('noreply@metager.de'); + # $message->to('office@suma-ev.de'); + # $message->attachData($output, basename($filename)); + #}); # Wir haben nun eine Mail an uns geschickt, welche die entsprechende Datei beinhaltet. # Nun müssen wir den Nutzer eigentlich nur noch zurück leiten und die Letzte bearbeitete Datei ausschließen: diff --git a/app/MetaGer.php b/app/MetaGer.php index e6bf18b2ed6405a9705053c632589951d2052956..5d2f8535f693bcd95059987405a61fda73902b4d 100644 --- a/app/MetaGer.php +++ b/app/MetaGer.php @@ -668,10 +668,7 @@ class MetaGer $this->url = $request->url(); # Zunächst überprüfen wir die eingegebenen Einstellungen: # Fokus - $this->fokus = trans('fokiNames.' . $request->input('focus', 'web')); - if (strpos($this->fokus, ".")) { - $this->fokus = trans('fokiNames.web'); - } + $this->fokus = $request->input('focus', 'web'); # Suma-File if (App::isLocale("en")) { $this->sumaFile = config_path() . "/sumas.xml"; diff --git a/resources/lang/de/fokiNames.php b/resources/lang/de/fokiNames.php deleted file mode 100644 index 26e98681ca88d7c263654fa4e5a9fd2d826bffb3..0000000000000000000000000000000000000000 --- a/resources/lang/de/fokiNames.php +++ /dev/null @@ -1,10 +0,0 @@ -<?php - -return [ - 'web' => "web", - 'nachrichten' => "nachrichten", - 'wissenschaft' => 'wissenschaft', - 'produktsuche' => 'produktsuche', - 'bilder' => 'bilder', - 'angepasst' => 'angepasst' -]; \ No newline at end of file diff --git a/resources/lang/en/fokiNames.php b/resources/lang/de/languages.php similarity index 95% rename from resources/lang/en/fokiNames.php rename to resources/lang/de/languages.php index ca5d8ed549df167f710c22f6f6f54ad203c93274..b62512838d61fcfb139998b7643eec0db85d6ede 100644 --- a/resources/lang/en/fokiNames.php +++ b/resources/lang/de/languages.php @@ -1,5 +1,4 @@ <?php return [ - ]; diff --git a/resources/views/languages/edit.blade.php b/resources/views/languages/edit.blade.php index 631daaf65c7a6e58ffab48a735b823793cc74728..efdd84ddf216e3913ed6fb51d11692a4aa151435 100644 --- a/resources/views/languages/edit.blade.php +++ b/resources/views/languages/edit.blade.php @@ -37,7 +37,7 @@ In der nächsten Spalte findest du entweder Texte der Sprache für die uns einig @else <tr> <td class="name">{{preg_replace("/(\s*).*#(.*)$/si", "$1$2", $name)}}</td> - <td>@if(isset($langValues[$to])) <input type="text" size="50" form="submit" name="_new_{{$name}}" value="{{$langValues[$to]}}" readonly /> @else <input type="text" size="50" form="submit" name="_new_{{$name}}" /> @endif</td> + <td>@if(isset($langValues[$to])) <input type="text" size="50" form="submit" name="{{$name}}" value="{{$langValues[$to]}}" readonly /> @else <input type="text" size="50" form="submit" name="_new_{{$name}}" /> @endif</td> @foreach($langs as $lang => $value) <td>{!! $langValues[$lang] or "" !!}</td> @endforeach diff --git a/resources/views/languages/overview.blade.php b/resources/views/languages/overview.blade.php index 89ab3ffbab2827d9dccbe20af87888bc29753b02..2a136ae4773b5b5db9286050427e83ab77274574 100644 --- a/resources/views/languages/overview.blade.php +++ b/resources/views/languages/overview.blade.php @@ -19,7 +19,14 @@ <tr @if(floor(($values['textCount'] / count($sum)) * 100) < 100) class="danger" @else class="success" @endif> <td>{{$lang}}</td> <td>{{ $values['textCount'] . "/" . count($sum)}} Texten übersetzt. ({{ floor(($values['textCount'] / count($sum)) * 100) }} %)</td> - <td><a href="{{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), url("/languages/edit", ['from'=>'all', 'to'=>'de'])) }}" class="btn btn-default @if(!$deComplete && $lang !== "de" || floor(($values['textCount'] / count($sum)) * 100) === 100) disabled @endif">Texte für "{{ $lang }}" ergänzen</a></td> + <td><a href=" + @if( $lang === "de" && floor(($values['textCount'] / count($sum)) * 100) < 100) + {{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), url("/languages/edit", ['from'=>'all', 'to'=>'de'])) }} + @elseif($lang !== "de" && floor(($values['textCount'] / count($sum)) * 100) < 100) + {{ LaravelLocalization::getLocalizedURL(LaravelLocalization::getCurrentLocale(), url("/languages/edit", ['from'=>'de', 'to'=>$lang])) }} + @else + # + @endif " class="btn btn-default @if((!$deComplete && $lang !== "de") || floor(($values['textCount'] / count($sum)) * 100) >= 100) disabled @endif">Texte für "{{ $lang }}" ergänzen</a></td> </tr> @endforeach </tbody>