make(Illuminate\Contracts\Console\Kernel::class)->bootstrap(); use App\Models\Translation; $trTranslations = Translation::where('language_code', 'tr')->get(); $untranslated = []; function hasTurkish($text) { if (empty($text) || is_numeric($text)) return false; return preg_match('/[ğüşıöçĞÜŞİÖÇ]/u', $text) || preg_match('/(ve|bir|bu|ne|de|da|icin|ile|o|en|ki|ile|ise|mi|mu|sonra|olarak|gibi|daha|hakkinda)/i', $text); } foreach ($trTranslations as $t) { $trVal = trim($t->field_value); if ($trVal === '' || $trVal === '

' || $trVal === 'null') { continue; } $en = Translation::where('translatable_type', $t->translatable_type) ->where('translatable_id', $t->translatable_id) ->where('field_name', $t->field_name) ->where('language_code', 'en') ->first(); $enVal = $en ? trim($en->field_value) : ''; $needsTranslation = false; if (empty($enVal) || $enVal === '

') { $needsTranslation = true; } else if ($enVal === $trVal && hasTurkish($trVal)) { $needsTranslation = true; } if ($needsTranslation) { $untranslated[] = [ 'type' => $t->translatable_type, 'id' => $t->translatable_id, 'field' => $t->field_name, 'tr' => $trVal, 'en' => $enVal ]; } } file_put_contents(__DIR__.'/untranslated_dynamic_filtered.json', json_encode($untranslated, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); echo "Found " . count($untranslated) . " real untranslated dynamic model translations.\n";