mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-24 09:50:39 +00:00
Refactoring
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace Domain\Localization\Actions;
|
||||
|
||||
|
||||
use DB;
|
||||
|
||||
class SeedDefaultLanguageTranslationsAction
|
||||
{
|
||||
public function __invoke(
|
||||
string $license,
|
||||
string $locale
|
||||
): void {
|
||||
$translations = [
|
||||
'extended' => collect([
|
||||
config('language-translations.extended'),
|
||||
config('language-translations.regular'),
|
||||
config('custom-language-translations'),
|
||||
])->collapse(),
|
||||
'regular' => collect([
|
||||
config('language-translations.regular'),
|
||||
config('custom-language-translations'),
|
||||
])->collapse(),
|
||||
];
|
||||
|
||||
$translations = $translations[strtolower($license)]
|
||||
->map(fn ($value, $key) => [
|
||||
'lang' => $locale,
|
||||
'value' => $value,
|
||||
'key' => $key,
|
||||
])->toArray();
|
||||
|
||||
$chunks = array_chunk($translations, 100);
|
||||
|
||||
foreach ($chunks as $chunk) {
|
||||
DB::table('language_translations')
|
||||
->insert($chunk);
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
-39
@@ -1,52 +1,20 @@
|
||||
<?php
|
||||
namespace Domain\Localization\Services;
|
||||
|
||||
|
||||
namespace Domain\Localization\Actions;
|
||||
|
||||
|
||||
use DB;
|
||||
use Domain\Localization\Models\Language;
|
||||
use Domain\Localization\Models\LanguageTranslation;
|
||||
|
||||
class LanguageService
|
||||
class UpgradeLanguageTranslationsAction
|
||||
{
|
||||
/**
|
||||
* @param $license
|
||||
* @param $locale
|
||||
*/
|
||||
public function create_default_language_translations($license, $locale)
|
||||
{
|
||||
$translations = [
|
||||
'extended' => collect([
|
||||
config('language-translations.extended'),
|
||||
config('language-translations.regular'),
|
||||
config('custom-language-translations'),
|
||||
])->collapse(),
|
||||
'regular' => collect([
|
||||
config('language-translations.regular'),
|
||||
config('custom-language-translations'),
|
||||
])->collapse(),
|
||||
];
|
||||
|
||||
$translations = $translations[strtolower($license)]
|
||||
->map(function ($value, $key) use ($locale) {
|
||||
return [
|
||||
'lang' => $locale,
|
||||
'value' => $value,
|
||||
'key' => $key,
|
||||
];
|
||||
})->toArray();
|
||||
|
||||
$chunks = array_chunk($translations, 100);
|
||||
|
||||
foreach ($chunks as $chunk) {
|
||||
DB::table('language_translations')
|
||||
->insert($chunk);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Find newly added translations in default language
|
||||
* translations file and insert it into database
|
||||
*/
|
||||
public function upgrade_language_translations()
|
||||
public function __invoke(): void
|
||||
{
|
||||
// Get all app locales
|
||||
$locales = Language::all()
|
||||
@@ -97,4 +65,4 @@ class LanguageService
|
||||
cache()->forget("language-translations-$locale");
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace Domain\Localization\Controllers;
|
||||
|
||||
use Domain\Localization\Actions\SeedDefaultLanguageTranslationsAction;
|
||||
use Illuminate\Http\Response;
|
||||
use Domain\Settings\Models\Setting;
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
<?php
|
||||
namespace Domain\Localization\Models;
|
||||
|
||||
use Domain\Localization\Actions\SeedDefaultLanguageTranslationsAction;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Kyslik\ColumnSortable\Sortable;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Domain\Localization\Services\LanguageService;
|
||||
|
||||
/**
|
||||
* @method static whereLocale(string $param)
|
||||
* @method static create(string[] $array)
|
||||
* @property string id
|
||||
* @property string name
|
||||
* @property string locale
|
||||
* @property string created_at
|
||||
* @property string updated_at
|
||||
*/
|
||||
class Language extends Model
|
||||
{
|
||||
@@ -28,7 +35,7 @@ class Language extends Model
|
||||
|
||||
public $incrementing = false;
|
||||
|
||||
public function languageTranslations()
|
||||
public function languageTranslations(): HasMany
|
||||
{
|
||||
return $this->hasMany(LanguageTranslation::class, 'lang', 'locale');
|
||||
}
|
||||
@@ -40,11 +47,10 @@ class Language extends Model
|
||||
static::creating(function ($language) {
|
||||
$language->id = Str::uuid();
|
||||
|
||||
resolve(LanguageService::class)
|
||||
->create_default_language_translations(
|
||||
get_setting('license') ?? 'extended',
|
||||
$language->locale
|
||||
);
|
||||
resolve(SeedDefaultLanguageTranslationsAction::class)(
|
||||
license: get_setting('license') ?? 'extended',
|
||||
locale: $language->locale
|
||||
);
|
||||
});
|
||||
|
||||
static::updating(function ($language) {
|
||||
|
||||
@@ -5,6 +5,10 @@ use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* @method static whereLang(string $string)
|
||||
* @property string key
|
||||
* @property string value
|
||||
* @property string lang
|
||||
|
||||
*/
|
||||
class LanguageTranslation extends Model
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user