Commit 20fbdf72 authored by Dominik Hebeler's avatar Dominik Hebeler
Browse files

Merge branch...

Merge branch '219-wir-benotigen-ein-tool-mit-dem-das-ubersetzen-unsere-seiten-stark-vereinfacht-wird' into 'development'

Resolve "Wir benötigen ein Tool mit dem das Übersetzen unsere Seiten stark vereinfacht wird."

Closes #219

See merge request !384
parents d285b18b 81f54e44
...@@ -34,8 +34,9 @@ class LanguageController extends Controller ...@@ -34,8 +34,9 @@ class LanguageController extends Controller
$tmp = include $filename; $tmp = include $filename;
foreach ($tmp as $key => $value) { foreach ($tmp as $key => $value) {
$sum = array_merge($sum, $this->getValues([$key => $value], basename($filename))); $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 ...@@ -83,9 +84,10 @@ class LanguageController extends Controller
foreach ($tmp as $key => $value) { foreach ($tmp as $key => $value) {
$sum = array_merge($sum, $this->getValues([$key => $value], basename($filename))); $sum = array_merge($sum, $this->getValues([$key => $value], basename($filename)));
$texts[basename($filename)][$key][$dir] = $value; $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"))); $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 ...@@ -111,14 +113,24 @@ class LanguageController extends Controller
if ($has) { if ($has) {
continue; continue;
} }
while ($this->hasToMuchDimensions($text)) {
$text = $this->deMultidimensionalizeArray($text);
}
# Hier können wir später die bereits bearbeiteten Dateien ausschließen. # Hier können wir später die bereits bearbeiteten Dateien ausschließen.
foreach ($text as $textname => $languages) { foreach ($text as $textname => $languages) {
if ($languages === "") {
continue;
}
$complete = true;
foreach ($languages as $lang => $value) { foreach ($languages as $lang => $value) {
if ($lang !== $to) { if ($lang !== $to) {
$langs = array_add($langs, $lang, $lang); $langs = array_add($langs, $lang, $lang);
} }
if (!isset($languages[$to]) && isset($languages[$lang])) {
$complete = false;
}
} }
if (!isset($languages[$to])) { if (!isset($languages[$to])) {
...@@ -130,10 +142,7 @@ class LanguageController extends Controller ...@@ -130,10 +142,7 @@ class LanguageController extends Controller
} }
while ($this->hasToMuchDimensions($t)) { $t = $this->htmlEscape($t, $to);
$t = $this->deMultidimensionalizeArray($t);
}
$t = $this->createHints($t, $to); $t = $this->createHints($t, $to);
return view('languages.edit') return view('languages.edit')
...@@ -149,6 +158,20 @@ class LanguageController extends Controller ...@@ -149,6 +158,20 @@ class LanguageController extends Controller
->with('new', $ex["new"]); ->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) private function createHints($t, $to)
{ {
foreach ($t as $key => $langTexts) { foreach ($t as $key => $langTexts) {
...@@ -156,9 +179,11 @@ class LanguageController extends Controller ...@@ -156,9 +179,11 @@ class LanguageController extends Controller
foreach ($langTexts as $lang => $text) { foreach ($langTexts as $lang => $text) {
if ($lang !== $to) { if ($lang !== $to) {
if (preg_match("/\s:\S+/si", $text)) { 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); $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("/&lt;.*?&gt;/si", $text)) {
$t[$key][$lang] = preg_replace("/(&lt;.*?&gt;)/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);
}
} }
} }
......
...@@ -160,12 +160,12 @@ class MailController extends Controller ...@@ -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"; $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) { #Mail::send(['text' => 'kontakt.mail'], ['messageText' => $message], function ($message) use ($output, $filename) {
$message->subject('MetaGer - Sprachdatei'); # $message->subject('MetaGer - Sprachdatei');
$message->from('noreply@metager.de'); # $message->from('noreply@metager.de');
$message->to('office@suma-ev.de'); # $message->to('office@suma-ev.de');
$message->attachData($output, basename($filename)); # $message->attachData($output, basename($filename));
}); #});
# Wir haben nun eine Mail an uns geschickt, welche die entsprechende Datei beinhaltet. # 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: # Nun müssen wir den Nutzer eigentlich nur noch zurück leiten und die Letzte bearbeitete Datei ausschließen:
......
...@@ -668,10 +668,7 @@ class MetaGer ...@@ -668,10 +668,7 @@ class MetaGer
$this->url = $request->url(); $this->url = $request->url();
# Zunächst überprüfen wir die eingegebenen Einstellungen: # Zunächst überprüfen wir die eingegebenen Einstellungen:
# Fokus # Fokus
$this->fokus = trans('fokiNames.' . $request->input('focus', 'web')); $this->fokus = $request->input('focus', 'web');
if (strpos($this->fokus, ".")) {
$this->fokus = trans('fokiNames.web');
}
# Suma-File # Suma-File
if (App::isLocale("en")) { if (App::isLocale("en")) {
$this->sumaFile = config_path() . "/sumas.xml"; $this->sumaFile = config_path() . "/sumas.xml";
......
<?php
return [
'web' => "web",
'nachrichten' => "nachrichten",
'wissenschaft' => 'wissenschaft',
'produktsuche' => 'produktsuche',
'bilder' => 'bilder',
'angepasst' => 'angepasst'
];
\ No newline at end of file
...@@ -37,7 +37,7 @@ In der nächsten Spalte findest du entweder Texte der Sprache für die uns einig ...@@ -37,7 +37,7 @@ In der nächsten Spalte findest du entweder Texte der Sprache für die uns einig
@else @else
<tr> <tr>
<td class="name">{{preg_replace("/(\s*).*#(.*)$/si", "$1$2", $name)}}</td> <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) @foreach($langs as $lang => $value)
<td>{!! $langValues[$lang] or "" !!}</td> <td>{!! $langValues[$lang] or "" !!}</td>
@endforeach @endforeach
......
...@@ -19,7 +19,14 @@ ...@@ -19,7 +19,14 @@
<tr @if(floor(($values['textCount'] / count($sum)) * 100) < 100) class="danger" @else class="success" @endif> <tr @if(floor(($values['textCount'] / count($sum)) * 100) < 100) class="danger" @else class="success" @endif>
<td>{{$lang}}</td> <td>{{$lang}}</td>
<td>{{ $values['textCount'] . "/" . count($sum)}} Texten übersetzt. ({{ floor(($values['textCount'] / count($sum)) * 100) }} %)</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> </tr>
@endforeach @endforeach
</tbody> </tbody>
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment