PHP code example of abdiwaahid / language-switcher

1. Go to this page and download the library: Download abdiwaahid/language-switcher library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

abdiwaahid / language-switcher example snippets


return [
    // 'session' or 'cache'
    'driver' => 'session',

    // The guard to use for authenticated users.
    // If null, will use the default guard.
    'guard' => null,

    // The key used in the storage driver.
    'key' => 'locale_',

    'languages' => [
	    'so' => 'Somali',
        ....
    ],
];

'languages' => [
    'en' => 'English',
    'es' => 'Spanish',
    'fr' => 'French',
],

public function boot(): void
{
    LanguageSwitcher::configureLanguages([
        'en' => 'English',
        'es' => 'Spanish',
        'fr' => 'French',
    ]);
}

    ...
    ->withMiddleware(function (Middleware $middleware): void {
        $middleware->appendToGroup('web', [
            \Abdiwaahid\LanguageSwitcher\Http\Middleware\LanguageSwitcherMiddleware::class,
        ]);
    });

use Abdiwaahid\LanguageSwitcher\Facades\LanguageSwitcher;
use Filament\Facades\Filament;
use Filament\Support\Assets\Css;
use Filament\Support\Assets\Js;
use Filament\Support\Facades\FilamentAsset;
use Filament\View\PanelsRenderHook;

public function register(): void
{
    // Register the language switcher assets
    FilamentAsset::register([
        Css::make('language-switcher-css', asset('vendor/language-switcher/main.css')),
        Js::make('language-switcher-js', asset('vendor/language-switcher/index.js')),
    ], 'abdiwaahid/language-switcher');

    // Configure the languages you want to support
    LanguageSwitcher::configureLanguages([
        'so' => 'Somali',
        'en' => 'English',
        'ar' => 'Arabic',
    ]);

    // Render the component in the user menu
    Filament::registerRenderHook(
        PanelsRenderHook::USER_MENU_BEFORE,
        fn () => view('language-switcher::components.language-switcher')
    );
}

use Abdiwaahid\LanguageSwitcher\Facades\LanguageSwitcher;

LanguageSwitcher::set('fr');

$currentLocale = LanguageSwitcher::get(); // returns 'fr'

$languages = LanguageSwitcher::languages();

// config/language-switcher.php
'driver' => 'cache', // or 'session'
bash
php artisan vendor:publish --tag="language-switcher-config"
bash
php artisan vendor:publish --tag="language-switcher-views"
bash
php artisan vendor:publish --tag="language-switcher-translations"
bash
php artisan vendor:publish --tag="language-switcher-assets"
blade
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    ...
    @languageSwitcherStyles
</head>
<body>
    ...
    <header>
        <nav>
            {{-- Your navigation --}}
            <x-language-switcher::language-switcher />
        </nav>
    </header>
    ...
    @languageSwitcherScripts
</body>
</html>
bash
php artisan vendor:publish --tag="language-switcher-assets"
bash
php artisan language-switcher
bash
php artisan vendor:publish --tag="language-switcher-views"
bash
php artisan vendor:publish --tag="language-switcher-translations"