> $siteData */ protected function seedSiteTranslations(array $siteData): void { foreach ($siteData as $key => $translations) { $record = SiteTranslation::firstOrNew(['hash' => md5($key)]); $existing = $record->translations ?? []; $merged = array_merge($existing, [ 'tr' => $translations['tr'] ?? $existing['tr'] ?? $key, ], array_filter( $translations, fn ($value, $lang) => $value !== '' && $lang !== 'tr', ARRAY_FILTER_USE_BOTH )); SiteTranslation::updateOrCreate( ['hash' => md5($key)], [ 'key' => $key, 'translations' => $merged, ] ); } } /** * @param array>> $pagesData */ protected function seedPageTranslations(array $pagesData): void { foreach ($pagesData as $pageKey => $fields) { $page = is_numeric($pageKey) ? Page::query()->whereKey((int) $pageKey)->first() : Page::query()->where('slug', (string) $pageKey)->first(); if (! $page) { continue; } foreach ($fields as $fieldName => $translations) { foreach ($translations as $languageCode => $value) { if ($value === '') { continue; } $page->setTranslation($fieldName, $languageCode, $value, 'published', 1); } if (! isset($translations['tr'])) { $page->setTranslation($fieldName, 'tr', $page->{$fieldName}, 'published', 1); } } } } protected function flushTranslationCache(): void { Cache::flush(); } }