feat: Add multi-language support (i18n)
Languages supported (8): - English (en) - 日本語 (ja) - Deutsch (de) - Français (fr) - Español (es) - 简体中文 (zh-CN) - 繁體中文 (zh-TW) - 한국어 (ko) Changes: - Add locale column to users table - Add SetLocale middleware for automatic locale detection - Add LocaleController for language switching - Create language files with translations for all UI elements - Add language selector to user profile page - Update all Blade views to use translation strings
This commit is contained in:
30
src/app/Http/Controllers/LocaleController.php
Normal file
30
src/app/Http/Controllers/LocaleController.php
Normal file
@@ -0,0 +1,30 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Middleware\SetLocale;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class LocaleController extends Controller
|
||||
{
|
||||
/**
|
||||
* Update the user's locale preference.
|
||||
*/
|
||||
public function update(Request $request)
|
||||
{
|
||||
$validated = $request->validate([
|
||||
'locale' => ['required', 'string', 'in:' . implode(',', array_keys(SetLocale::SUPPORTED_LOCALES))],
|
||||
]);
|
||||
|
||||
$locale = $validated['locale'];
|
||||
|
||||
// Save to user record
|
||||
Auth::user()->update(['locale' => $locale]);
|
||||
|
||||
// Also save to session for immediate effect
|
||||
$request->session()->put('locale', $locale);
|
||||
|
||||
return redirect()->route('profile.edit')->with('success', __('messages.settings.language_updated'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user