FILAMENT TRANSLATION PLUGIN - FILES TO COPY ============================================ To install this translation plugin in another Filament/Laravel project, copy these files: CORE FILES: ----------- 1. app/Models/Translation.php 2. app/Support/TranslationHelper.php 3. app/Http/Controllers/LanguageController.php VIEWS: ------ 4. resources/views/filament/components/language-switcher.blade.php MIGRATION: ---------- 5. database/migrations/2025_10_10_000001_create_translations_table.php (Note: Rename with current timestamp when copying) FILAMENT RESOURCE (Optional - for managing translations): --------------------------------------------------------- 6. app/Filament/Resources/TranslationResource.php 7. app/Filament/Resources/TranslationResource/Pages/ListTranslations.php 8. app/Filament/Resources/TranslationResource/Pages/CreateTranslation.php 9. app/Filament/Resources/TranslationResource/Pages/EditTranslation.php HELPER FUNCTIONS TO ADD: ------------------------ Add these to your app/Support/helpers.php: use App\Support\TranslationHelper; if (! function_exists('__t')) { function __t(string $text): string { return TranslationHelper::translate($text); } } if (! function_exists('__trans')) { function __trans(string $text): string { return TranslationHelper::translate($text); } } if (! function_exists('set_language')) { function set_language(string $language): void { TranslationHelper::setLanguage($language); } } if (! function_exists('get_language')) { function get_language(): string { return TranslationHelper::getCurrentLanguage(); } } NOTE: We use __t() instead of trans() to avoid conflicts with Laravel's built-in trans() function. ROUTE TO ADD: ------------- Add to routes/web.php: use App\Http\Controllers\LanguageController; Route::get('/language/{language}', [LanguageController::class, 'switch'])->name('language.switch'); PANEL PROVIDER UPDATE: ---------------------- Add to your AdminPanelProvider.php (or equivalent): use Filament\View\PanelsRenderHook; In the panel() method, add: ->renderHook( PanelsRenderHook::USER_MENU_BEFORE, fn () => view('filament.components.language-switcher') ) COMPOSER.JSON UPDATE: --------------------- Ensure helpers.php is autoloaded in composer.json: "autoload": { "files": [ "app/Support/helpers.php" ] } Then run: composer dump-autoload FINAL STEPS: ------------ 1. Run: php artisan migrate 2. Run: php artisan config:cache (in production) 3. Test the language switcher in the Filament header USAGE EXAMPLES: --------------- In Blade: {{ __t('Dashboard') }} {{ __trans('Welcome') }} In PHP/Filament: public static function getNavigationLabel(): string { return __t('Users'); } In Config/Menu Files: 'label' => __t('Dashboard'),