chore(i18n): add ImportDeLanguageSeeder and run seeder on container start
This commit is contained in:
parent
96b5fa0091
commit
df9287d36e
52
database/seeders/ImportDeLanguageSeeder.php
Normal file
52
database/seeders/ImportDeLanguageSeeder.php
Normal file
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Modules\Language\Models\Language;
|
||||
use Modules\Language\Models\LanguageProperty;
|
||||
|
||||
class ImportDeLanguageSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* Run the database seeds.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$langCode = 'de';
|
||||
|
||||
$language = Language::firstOrCreate(
|
||||
['code' => $langCode],
|
||||
[
|
||||
'name' => 'German',
|
||||
'nativeName' => 'Deutsch',
|
||||
'is_active' => true,
|
||||
'is_default' => false,
|
||||
]
|
||||
);
|
||||
|
||||
$groupsDir = storage_path('app/lang/groups/de');
|
||||
if (!is_dir($groupsDir)) {
|
||||
$this->command->info("No groups directory found at $groupsDir — skipping import.");
|
||||
return;
|
||||
}
|
||||
|
||||
$files = glob($groupsDir.'/*.php');
|
||||
foreach ($files as $file) {
|
||||
$groupKey = basename($file, '.php');
|
||||
$entries = require $file;
|
||||
if (!is_array($entries)) continue;
|
||||
|
||||
foreach ($entries as $entry) {
|
||||
if (!isset($entry['slug'])) continue;
|
||||
|
||||
LanguageProperty::updateOrCreate(
|
||||
['slug' => $entry['slug'], 'language_id' => $language->id],
|
||||
array_merge($entry, ['group' => $groupKey, 'language_id' => $language->id])
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$this->command->info('ImportDeLanguageSeeder: import complete.');
|
||||
}
|
||||
}
|
||||
@ -6,4 +6,5 @@ services:
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
APP_ENV: production
|
||||
APP_DEBUG: "true"
|
||||
APP_DEBUG: "true"
|
||||
command: sh -lc "php artisan migrate --force && php artisan db:seed --class=ImportDeLanguageSeeder && php-fpm"
|
||||
Loading…
Reference in New Issue
Block a user