Skip to content
Snippets Groups Projects
Commit 792c903d authored by Aria Givi's avatar Aria Givi
Browse files

Daten werden an Template übergeben, parsen der Daten fehlt

parent ded98f90
No related branches found
No related tags found
2 merge requests!912Development,!904Resolve "Arbeit am Übersetzungstool"
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
namespace App\Http\Controllers; namespace App\Http\Controllers;
use Illuminate\Http\Request; use Illuminate\Http\Request;
use App\Models\LanguageData; use App\Models\LanguageObject;
use RecursiveDirectoryIterator; use RecursiveDirectoryIterator;
use RecursiveIteratorIterator; use RecursiveIteratorIterator;
...@@ -100,8 +100,6 @@ class LanguageController extends Controller ...@@ -100,8 +100,6 @@ class LanguageController extends Controller
if ($exclude !== "") { if ($exclude !== "") {
try { try {
$ex = unserialize(base64_decode($exclude)); $ex = unserialize(base64_decode($exclude));
// var_dump($ex);
// die();
} catch (\ErrorException $e) { } catch (\ErrorException $e) {
$ex = ['files' => [], 'new' => 0]; $ex = ['files' => [], 'new' => 0];
} }
...@@ -122,7 +120,6 @@ class LanguageController extends Controller ...@@ -122,7 +120,6 @@ class LanguageController extends Controller
} }
# 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 === "") { if ($languages === "") {
continue; continue;
} }
...@@ -140,12 +137,10 @@ class LanguageController extends Controller ...@@ -140,12 +137,10 @@ class LanguageController extends Controller
if (!isset($languages[$to])) { if (!isset($languages[$to])) {
$fn = $filePath[$filename]; $fn = $filePath[$filename];
$t = $text; $t = $text;
break; break 2;
} }
} }
} }
//die();
$t = $this->htmlEscape($t, $to); $t = $this->htmlEscape($t, $to);
$t = $this->createHints($t, $to); $t = $this->createHints($t, $to);
...@@ -166,29 +161,31 @@ class LanguageController extends Controller ...@@ -166,29 +161,31 @@ class LanguageController extends Controller
$languageFilePath = resource_path() . "/lang/"; $languageFilePath = resource_path() . "/lang/";
$languageFolders = scandir($languageFilePath); $languageFolders = scandir($languageFilePath);
#Enthält zu jeder Sprache ein Objekt mit allen Daten #Enthält zu jeder Sprache ein Objekt mit allen Daten
$languageFiles = []; $languageObjects = [];
$to = [];
#Erstelle LanguageData-Objekte #Instanziiere LanguageObject
foreach ($languageFolders as $folder) { foreach ($languageFolders as $folder) {
if (is_dir($languageFilePath . $folder) && $folder !== "." && $folder !== "..") { if (is_dir($languageFilePath . $folder) && $folder !== "." && $folder !== "..") {
$languageFiles[$folder] = new LanguageData($folder, $languageFilePath.$folder); $languageObjects[$folder] = new LanguageObject($folder, $languageFilePath.$folder);
} }
} }
#Speichere Daten in LanguageData-Objekten #Speichere Daten in LanguageObject
foreach ($languageFiles as $folder => $languageData) { foreach ($languageObjects as $folder => $languageObject) {
$di = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($languageData->filePath)); $to[] = $folder;
$di = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($languageObject->filePath));
foreach($di as $filename => $file) { foreach($di as $filename => $file) {
if(!$this->endsWith($filename, ".")) { if(!$this->endsWith($filename, ".")) {
$tmp = include $filename; $tmp = include $filename;
foreach ($tmp as $key => $value) { foreach ($tmp as $key => $value) {
$languageData->saveData(basename($filename), $key, $value); $languageObject->saveData(basename($filename), $key, $value);
} }
} }
} }
} }
#Dekodieren ausgeschlossener Dateien anhand des URL-Parameters
$ex = ['files' => [], 'new' => 0]; $ex = ['files' => [], 'new' => 0];
if ($exclude !== "") { if ($exclude !== "") {
try { try {
...@@ -197,64 +194,46 @@ class LanguageController extends Controller ...@@ -197,64 +194,46 @@ class LanguageController extends Controller
$ex = ['files' => [], 'new' => 0]; $ex = ['files' => [], 'new' => 0];
} }
} }
die();
/*
return view('languages.edit')
->with('texts', $t) //Array mit
->with('filename', $fn) //Pfad zur angezeigten Datei
->with('title', trans('titles.languages.edit'))
->with('langs', $langs) //Ausgangssprache (1 Element)
->with('to', $to) //zu bearbeitende Sprache
->with('langTexts', $langTexts) //Anzahl der vorhandenen Übersetzungen
->with('sum', $sum) //Alle vorhandenen Texte in beiden Sprachen in einem Array
->with('new', $ex["new"]) //
->with('email', $email); //Email-Adresse des Benutzers
*/
/*
foreach ($texts as $filename => $text) {
$has = false;
foreach ($ex['files'] as $file) {
if ($file === $filename) {
$has = true;
}
}
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 === "") { $t = [];
continue; $fn = "";
}
#Wähle die erste Datei aus, welche nicht ausgeschlossen worden ist
$complete = true; foreach($languageObjects as $folder => $languageObject) {
foreach ($languages as $lang => $value) { foreach($languageObject->stringMap as $languageFileName => $languageFile) {
if ($lang !== $to) { if(isset($ex[$languageFileName])) {
$langs = array_add($langs, $lang, $lang); continue 2;
} } else {
if (!isset($languages[$to]) && isset($languages[$lang])) { $fn = $languageFileName;
$complete = false; break 2;
} }
}
} }
if (!isset($languages[$to])) {
$fn = $filePath[$filename]; #Speichere den Inhalt der ausgewählten Datei in Array $t ab
$t = $text; foreach($languageObjects as $folder => $languageObject) {
break; foreach($languageObject->stringMap as $languageFileName => $languageFile) {
if($languageFileName === $fn) {
$t[$languageObject->language] = $languageFile;
continue 2;
} }
} }
} }
$t = $this->htmlEscape($t, $to); foreach($t as $language => $text) {
$t = $this->createHints($t, $to); // foreach($text as $key => $value) {
*/ echo("<p>");
var_dump($text);
echo("</p>");
//}
}
die();
return view('languages.synoptic'); return view('languages.synoptic')
->with('to', $to) #Alle vorhandenen Sprachen
->with('texts', $t) #Array mit Sprachsnippets
->with('filename', $fn) #Name der Datei
->with('title', trans('titles.languages.edit'));
} }
private function htmlEscape($t, $to) private function htmlEscape($t, $to)
......
...@@ -5,13 +5,14 @@ namespace App\Models; ...@@ -5,13 +5,14 @@ namespace App\Models;
/* /*
* Beinhaltet zu je einer Sprache Angaben zum Pfad der jeweiligen Datei, sowie die vorhandenen Übersetzungen * Beinhaltet zu je einer Sprache Angaben zum Pfad der jeweiligen Datei, sowie die vorhandenen Übersetzungen
*/ */
class LanguageData class LanguageObject
{ {
public $language = ""; public $language = "";
public $filePath = ""; public $filePath = "";
public $stringMap = [[]]; #2D-Array der Form [$filename][$key]
public $stringMap;
public function __construct($lang, $path) public function __construct($lang, $path)
{ {
...@@ -19,6 +20,7 @@ class LanguageData ...@@ -19,6 +20,7 @@ class LanguageData
$this->filePath = $path; $this->filePath = $path;
} }
#Speichert Daten in $stringMap, entdimensionalisiert ggbf. $value
public function saveData($filename, $key, $value) public function saveData($filename, $key, $value)
{ {
if(is_array($value)) { if(is_array($value)) {
......
...@@ -3,17 +3,17 @@ ...@@ -3,17 +3,17 @@
@section('title', $title ) @section('title', $title )
@section('content') @section('content')
<h1>{{ trans('languages.header') }}</h1> <h1>Übersicht</h1>
<p>{{ trans('languages.beschreibung.1') }}</p> <?php /*
<p>{{ trans('languages.beschreibung.2') }}</p>
<!-- <!--
<div class="progress"> <div class="progress">
<div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="{{ round(100 * (($langTexts[$to]+$new) / count($sum))) }}" aria-valuemin="0" aria-valuemax="100" style="width: {{ round(100 * (($langTexts[$to]+$new) / count($sum))) }}%"> <div class="progress-bar progress-bar-success progress-bar-striped" role="progressbar" aria-valuenow="{{ round(100 * (($langTexts[$to]+$new) / count($sum))) }}" aria-valuemin="0" aria-valuemax="100" style="width: {{ round(100 * (($langTexts[$to]+$new) / count($sum))) }}%">
{{ trans('languages.progress', ['uebersetzteTexte'=> ($langTexts[$to]+$new), 'textCount'=>count($sum), 'percentage'=>round(100 * (($langTexts[$to]+$new) / count($sum)))]) }} {{ trans('languages.progress', ['uebersetzteTexte'=> ($langTexts[$to]+$new), 'textCount'=>count($sum), 'percentage'=>round(100 * (($langTexts[$to]+$new) / count($sum)))]) }}
</div> </div>
</div> </div>
--> -->
<h1>{{$filename}}</h1> */?>
<h2>{{$filename}}</h2>
<form id="submit" method="POST"> <form id="submit" method="POST">
<input type="hidden" name="filename" value="{{$filename}}" /> <input type="hidden" name="filename" value="{{$filename}}" />
</form> </form>
...@@ -21,13 +21,12 @@ ...@@ -21,13 +21,12 @@
<thead> <thead>
<tr> <tr>
<th>#ID</th> <th>#ID</th>
<th>{{$to}}</th> @foreach($to as $t)
@foreach($langs as $lang => $value) <th>{{$t}}</th>
<th>{{$lang}}</th> @endforeach
@endforeach
</tr> </tr>
</thead> </thead>
<tbody> <?php /*<tbody>
@foreach($texts as $name => $langValues) @foreach($texts as $name => $langValues)
@if($langValues === "") @if($langValues === "")
<tr> <tr>
...@@ -51,7 +50,8 @@ ...@@ -51,7 +50,8 @@
</tr> </tr>
@endif @endif
@endforeach @endforeach
</tbody> </tbody> */
?>
</table> </table>
<!-- <!--
<p>{{ trans('languages.hinweis.1') }}</p> <p>{{ trans('languages.hinweis.1') }}</p>
...@@ -59,7 +59,6 @@ ...@@ -59,7 +59,6 @@
<p>{!! trans('languages.hinweis.3') !!}</p> <p>{!! trans('languages.hinweis.3') !!}</p>
<p>{!! trans('languages.email') !!}</p> <p>{!! trans('languages.email') !!}</p>
--> -->
<p><input type="email" name="email" form="submit" value="{{$email}}"/></p>
<button class="btn btn-success" type="submit" form="submit">Daten übermitteln</button> <button class="btn btn-success" type="submit" form="submit">Daten übermitteln</button>
<script type="text/javascript" src="{{ elixir('js/lib.js') }}"></script> <script type="text/javascript" src="{{ elixir('js/lib.js') }}"></script>
<script type="text/javascript" src="{{ elixir('js/editLanguage.js') }}"></script> <script type="text/javascript" src="{{ elixir('js/editLanguage.js') }}"></script>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment