"Bir dil bir insan, iki dil iki insan" demişler. Peki ya uygulamanız 10 dil konuşsaydı? Laravel'in güçlü localization sistemiyle çok dilli uygulamalar geliştirmek sandığınızdan daha kolay! İşte adım adım rehberimiz:
Dil dosyalarınızı resources/lang
dizinine yerleştirin:
/resources /lang /en messages.php /tr messages.php /de messages.php
Örnek dil dosyası (messages.php):
// resources/lang/en/messages.php return [ 'welcome' => 'Welcome to our application!', 'greeting' => 'Hello, :name!', ];
Middleware ile dil ayarı:
// app/Http/Middleware/SetLocale.php public function handle($request, Closure $next) { if (session()->has('locale')) { app()->setLocale(session()->get('locale')); } return $next($request); }
Route tanımı:
Route::get('language/{locale}', function ($locale) { session()->put('locale', $locale); return redirect()->back(); })->name('language.switch');
Blade'de dil değiştirme butonları:
<a href="{{ route('language.switch', 'en') }}" class="flag-icon flag-icon-us"></a> <a href="{{ route('language.switch', 'tr') }}" class="flag-icon flag-icon-tr"></a>
Blade dosyalarında:
<h1>@lang('messages.welcome')</h1> <p>{{ __('messages.greeting', ['name' => 'Ahmet']) }}</p>
Controller'da:
$welcomeMessage = trans('messages.welcome');
JSON dosyalarıyla (Vue/React için):
// resources/lang/en.json { "Welcome": "Welcome to our app!" }
// resources/lang/en/messages.php return [ 'apples' => '{0} No apples|{1} One apple|[2,*] :count apples', ]; // Kullanım echo trans_choice('messages.apples', 10); // "10 apples"
php artisan lang:publish
// Özel Translation modeli kullanarak $translation = Translation::where('key', 'welcome') ->where('locale', app()->getLocale()) ->first();
Hreflang Etiketleri:
<link rel="alternate" hreflang="en" href="https://example.com/en" /> <link rel="alternate" hreflang="tr" href="https://example.com/tr" />
URL Yapısı:
// Dil prefix'li route'lar Route::prefix('{locale}')->group(function () { Route::get('/', [HomeController::class, 'index']); });
php artisan config:cache
@json
directive kullanınLaravel'in localization sistemi sayesinde çok dilli uygulamalar geliştirmek artık çocuk oyuncağı!
Hangi dilleri destekliyorsunuz? Yorumlarda paylaşın! 💬
Bir sonraki yazımız: 🚀 [Laravel'de API Versioning: Backward Compatibility] - API'nizi güncellerken eski istemcileri nasıl mutlu edersiniz?**
#Laravel #Localization #Multilingual #WebDevelopment #i18n