, * filament_locales: list, * content_i18n: bool * } */ public function getInfoProperty(): array { return [ 'locale' => app()->getLocale(), 'fallback' => (string) config('app.fallback_locale'), 'faker' => (string) config('app.faker_locale'), 'app_files' => $this->appLanguageFiles(), 'filament_locales' => $this->filamentLocales(), 'content_i18n' => false, ]; } /** * @return list */ private function appLanguageFiles(): array { $found = []; foreach (File::glob(lang_path('*.json')) as $file) { $found[] = basename((string) $file, '.json'); } foreach (File::directories(lang_path()) as $directory) { $name = basename($directory); if ($name === 'vendor') { continue; } $found[] = $name; } $found = array_values(array_unique($found)); sort($found); return $found; } /** * @return list */ private function filamentLocales(): array { $path = lang_path('vendor/filament'); if (! File::isDirectory($path)) { return []; } $locales = array_map( static fn (string $directory): string => basename($directory), File::directories($path) ); sort($locales); return $locales; } }