update 20.10.2025
This commit is contained in:
parent
8c11130b5d
commit
a939cd51ef
616 changed files with 84821 additions and 4121 deletions
259
dev/app-bak/Http/Controllers/TranslationController.php
Executable file
259
dev/app-bak/Http/Controllers/TranslationController.php
Executable file
|
|
@ -0,0 +1,259 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Category;
|
||||
use Request;
|
||||
use App\Models\Product;
|
||||
use App\Models\Ingredient;
|
||||
use App\Models\Shipping;
|
||||
use App\Models\TransCategory;
|
||||
use App\Models\TransProduct;
|
||||
use App\Models\TransIngredient;
|
||||
use App\Models\TransShipping;
|
||||
use App\Models\TransUserLevel;
|
||||
use App\Models\UserLevel;
|
||||
use Illuminate\Support\Collection;
|
||||
use JoeDixon\Translation\Language;
|
||||
|
||||
|
||||
class TranslationController extends Controller
|
||||
{
|
||||
|
||||
|
||||
protected $sourceLanguage;
|
||||
protected $selectLanguage;
|
||||
protected $selectKey;
|
||||
protected $keys;
|
||||
protected $model;
|
||||
|
||||
|
||||
/**
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->sourceLanguage = 'de';
|
||||
$this->selectLanguage = 'en';
|
||||
$this->keys = [];
|
||||
$this->model = "";
|
||||
}
|
||||
/**
|
||||
*/
|
||||
public function index($model, $lang=null)
|
||||
{
|
||||
//Request::get('key')
|
||||
//Request::get('language')
|
||||
$this->initByModel($model);
|
||||
$languages = $this->allLanguages();
|
||||
$languages->forget('de');
|
||||
|
||||
$translations = $this->getTranslationsFormModel();
|
||||
|
||||
$data = [
|
||||
'keys' => $this->keys,
|
||||
'languages' => $languages,
|
||||
'model' => $this->model,
|
||||
'select_language' => $this->selectLanguage,
|
||||
'source_language' => $this->sourceLanguage,
|
||||
'translations' => $translations,
|
||||
'select_key' => $this->selectKey
|
||||
];
|
||||
return view('translation::languages.translations.custom', $data);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public function initByModel($model)
|
||||
{
|
||||
if($model === 'products'){
|
||||
$this->model = $model;
|
||||
$this->keys = [
|
||||
'name'=>'Produktname',
|
||||
'copy'=>'Produktbeschreibung',
|
||||
'description'=>'Beschreibung',
|
||||
'usage'=>'Anwendung',
|
||||
'ingredients'=>'Hinweise',
|
||||
];
|
||||
$this->selectKey = 'name';
|
||||
}
|
||||
|
||||
if($model === 'ingredients'){
|
||||
$this->model = $model;
|
||||
$this->keys = [
|
||||
'name'=>'Name',
|
||||
'inci'=>'INCI',
|
||||
'effect'=>'Wirkung',
|
||||
];
|
||||
$this->selectKey = 'name';
|
||||
}
|
||||
|
||||
if($model === 'user_levels'){
|
||||
$this->model = $model;
|
||||
$this->keys = [
|
||||
'name'=>'Name',
|
||||
];
|
||||
$this->selectKey = 'name';
|
||||
}
|
||||
|
||||
if($model === 'shippings'){
|
||||
$this->model = $model;
|
||||
$this->keys = [
|
||||
'name'=>'Name',
|
||||
];
|
||||
$this->selectKey = 'name';
|
||||
}
|
||||
|
||||
if($model === 'categories'){
|
||||
$this->model = $model;
|
||||
$this->keys = [
|
||||
'name'=>'Name',
|
||||
'headline'=>'Headline',
|
||||
];
|
||||
$this->selectKey = 'name';
|
||||
}
|
||||
|
||||
if(Request::get('key')){
|
||||
$this->selectKey = Request::get('key');
|
||||
}
|
||||
if(Request::get('language')){
|
||||
$this->selectLanguage = Request::get('language');
|
||||
}
|
||||
//Request::get('language')
|
||||
}
|
||||
|
||||
public function getTranslationsFormModel(){
|
||||
|
||||
if($this->model === 'products'){
|
||||
return Product::all()->mapWithKeys(function ($value) {
|
||||
return [$value->id => [
|
||||
'master' => $value->name,
|
||||
'source' => $value->{$this->selectKey},
|
||||
'trans' => $value->getTrans($this->selectKey, $this->selectLanguage),
|
||||
]
|
||||
];
|
||||
});
|
||||
}
|
||||
if($this->model === 'ingredients'){
|
||||
return Ingredient::all()->mapWithKeys(function ($value) {
|
||||
return [$value->id => [
|
||||
'master' => $value->name,
|
||||
'source' => $value->{$this->selectKey},
|
||||
'trans' => $value->getTrans($this->selectKey, $this->selectLanguage),
|
||||
]
|
||||
];
|
||||
});
|
||||
}
|
||||
if($this->model === 'user_levels'){
|
||||
return UserLevel::all()->mapWithKeys(function ($value) {
|
||||
return [$value->id => [
|
||||
'master' => $value->name,
|
||||
'source' => $value->{$this->selectKey},
|
||||
'trans' => $value->getTrans($this->selectKey, $this->selectLanguage),
|
||||
]
|
||||
];
|
||||
});
|
||||
}
|
||||
if($this->model === 'shippings'){
|
||||
return Shipping::all()->mapWithKeys(function ($value) {
|
||||
return [$value->id => [
|
||||
'master' => $value->name,
|
||||
'source' => $value->{$this->selectKey},
|
||||
'trans' => $value->getTrans($this->selectKey, $this->selectLanguage),
|
||||
]
|
||||
];
|
||||
});
|
||||
}
|
||||
if($this->model === 'categories'){
|
||||
return Category::all()->mapWithKeys(function ($value) {
|
||||
return [$value->id => [
|
||||
'master' => $value->name,
|
||||
'source' => $value->{$this->selectKey},
|
||||
'trans' => $value->getTrans($this->selectKey, $this->selectLanguage),
|
||||
]
|
||||
];
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
public function update($model)
|
||||
{
|
||||
$id = Request::get('key'); //id
|
||||
$key = Request::get('group'); //key colum
|
||||
$language = Request::get('language'); //selectLanguage
|
||||
|
||||
$value = Request::get('value') ?: ''; //value
|
||||
|
||||
if($model === 'products'){
|
||||
TransProduct::updateOrCreate([
|
||||
'language' => $language,
|
||||
'product_id' => $id,
|
||||
'key' => $key,
|
||||
], [
|
||||
'key' => $key,
|
||||
'value' => $value,
|
||||
]);
|
||||
}
|
||||
|
||||
if($model === 'ingredients'){
|
||||
TransIngredient::updateOrCreate([
|
||||
'language' => $language,
|
||||
'ingredient_id' => $id,
|
||||
'key' => $key,
|
||||
], [
|
||||
'key' => $key,
|
||||
'value' => $value,
|
||||
]);
|
||||
}
|
||||
|
||||
if($model === 'user_levels'){
|
||||
TransUserLevel::updateOrCreate([
|
||||
'language' => $language,
|
||||
'user_level_id' => $id,
|
||||
'key' => $key,
|
||||
], [
|
||||
'key' => $key,
|
||||
'value' => $value,
|
||||
]);
|
||||
}
|
||||
|
||||
if($model === 'shippings'){
|
||||
TransShipping::updateOrCreate([
|
||||
'language' => $language,
|
||||
'shipping_id' => $id,
|
||||
'key' => $key,
|
||||
], [
|
||||
'key' => $key,
|
||||
'value' => $value,
|
||||
]);
|
||||
}
|
||||
|
||||
if($model === 'categories'){
|
||||
TransCategory::updateOrCreate([
|
||||
'language' => $language,
|
||||
'categorie_id' => $id,
|
||||
'key' => $key,
|
||||
], [
|
||||
'key' => $key,
|
||||
'value' => $value,
|
||||
]);
|
||||
}
|
||||
|
||||
return ['success' => true];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all languages from the application.
|
||||
*
|
||||
* @return Collection
|
||||
*/
|
||||
|
||||
public function allLanguages()
|
||||
{
|
||||
return Language::all()->mapWithKeys(function ($language) {
|
||||
return [$language->language => $language->name ?: $language->language];
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue