Laravel yerelleştirme, geliştiricilerin çok dilli web siteleri oluşturmasını sağlayan güçlü bir özelliktir. Web yerelleştirmeyi Laravel projelerinizde uygulayarak, farklı dilsel geçmişlere sahip ziyaretçiler için kişiselleştirilmiş bir kullanıcı deneyimi sağlayabilir, sonuçta erişiminizi genişletebilir ve kullanıcı etkileşimini geliştirebilirsiniz.
Laravel uygulamanızda yerelleştirmeyi nasıl uygulayacağınızı adım adım anlatacağız ve yerelleştirme çalışmalarınızı basitleştirebilecek ve geliştirebilecek bir araçla tanıştıracağız!
Neden Laravel web sitesini yerelleştirmelisiniz?

Laravel web sitenizi neden yerelleştirmelisiniz, bunun bazı önemli nedenleri aşağıda verilmiştir.
- Küresel bir kitleye ulaşın: Laravel
- Kullanıcı deneyimini iyileştirir: Yerelleştirme, kullanıcıların uygulamayla ana dillerinde etkileşimde bulunmalarını sağlar, bu da kullanıcı deneyimini önemli ölçüde iyileştirir. Bu, etkileşim oranlarını artırabilir, sıçrama oranlarını azaltabilir ve dönüşümleri artırabilir.
- Rekabet avantajı: Rekabetçi bir küresel pazarda, uygulamaları birden fazla dilde sunmak, rakiplere karşı önemli bir avantaj sağlayabilir. Bu, uluslararası pazarlara olan bağlılığınızı gösterir ve yeni pazarlara daha etkili bir şekilde girmmenize yardımcı olabilir.
- SEO'yu iyileştirir: İyi yerelleştirilmiş web siteleri, belirli bir dildeki aramalarda arama motorlarında daha iyi sıralanma eğilimindedir. Bu, blog trafiğinizi artırabilir ve çok dilli çeviri ile çeşitli pazarlarda çevrimiçi görünürlüğünüzü artırabilir.
Çok dilli Laravel yerelleştirmesi için gereksinimler

Laravel'de çok dilli yerelleştirme uygularken dikkate alınması gereken birkaç gereksinim ve adım vardır.
- En son yerelleştirme özelliklerini almak için Laravel 'nin en son sürümünü (örneğin, 10.x sürümü) kullandığınızdan emin olun.
- Laravel çerçevesi ve PHP hakkında temel bir anlayış, uygulama sürecinde yardımcı olacaktır.
- Laraveldahil olmak üzere bir web sunucusu ve veritabanı içeren yerel bir geliştirme ortamı veya sunucu kurun.
- Uygulamanızın başlangıçtan itibaren destekleyeceği dilleri belirleyin.
Basit Laravel çevirileri

Bir Laravel uygulamasını veya web sitesini çevirmeden önce hangi gereksinimleri karşılaması gerektiğini anladıktan sonra, Laravel çevirmek için bazı adımlar sunacağız.
Bunu yapmak için, yerelleştirmek istediğiniz görünüm dosyasını açın, örneğin resources/views/welcome.blade.php. Ardından, gövde etiketini aşağıdaki kodla değiştirin.
Welcome to Linguise website!
Gördüğünüz gibi, yukarıdaki metin şu anda doğrudan kod içinde yazılmıştır. Bu daha az verimlidir ve web sitelerini farklı dillere çevirmeyi (uluslararasılaştırma) zorlaştırır.
Yukarıdaki metni farklı dillere kolayca uyarlayabilmek için daha esnek hale getireceğiz. Laravel bunun için çok yararlı bir özellik sunar; yerelleştirme sistemi. İlk adım olarak, mevcut metni aşağıdaki kod ile değiştirin.
{{ __('Welcome to Linguise website!') }}
Laravel varsayılan olarak yukarıdaki metni görüntüleyecek ve kullanıcı İngilizce dışındaki bir dili seçerse çeviriye bakacaktır. Bu durumda, İngilizce varsayılan dil olarak kullanılacaktır.
Laravel çok dilli bir web'de yerel ayarları yapılandırma

Peki Laravel geçerli dili nasıl belirliyor veya uygulama içinde hangi dillerin mevcut olduğunu nasıl biliyor? config/app.php dosyasındaki locale ayarlarını kontrol ediyor. Bu dosyayı açın ve aşağıdaki iki anahtarı arayın.
/*
|--------------------------------------------------------------------------
| Application Locale Configuration
|--------------------------------------------------------------------------
|
| The application locale determines the default locale that will be used
| by the translation service provider. You are free to set this value
| to any of the locales which will be supported by the application.
|
*/
'locale' => 'en',
/*
|--------------------------------------------------------------------------
| Application Fallback Locale
|--------------------------------------------------------------------------
|
| The fallback locale determines the locale to use when the current one
| is not available. You may change the value to correspond to any of
| the language folders that are provided through your application.
|
*/
'fallback_locale' => 'en',
Anahtarların üzerindeki açıklama net olmalıdır. Özetle, locale anahtarı uygulamanız için varsayılan dili tutar (kodda başka bir dil belirtilmemişse). fallback_locale, uygulamanızda var olmayan bir dil istendiğinde etkinleştirilir.
Şimdi, desteklenen tüm yerel ayarların listesini sağlamak için bu dosyaya yeni bir anahtar ekleyelim.
/*
|--------------------------------------------------------------------------
| Available locales
|--------------------------------------------------------------------------
|
| List all locales that your application works with
|
*/
'available_locales' => [
'English' => 'en',
'Italian' => 'it',
'French' => 'fr',
],
Bu noktada, Laravel web'i üç dili desteklemeye çalıştık, yani İngilizce, İtalyanca ve Fransızca.
Laravel çeviri dosyalarına genel bakış

Laravel'te, diğer birçok çerçevede olduğu gibi, farklı diller için çeviriler ayrı dosyalarda saklanır. Bu çeviri dosyalarını düzenlemek için iki yöntem kullanılır.
Eski yöntem, dosyaları aşağıdaki yapıda depolar: resources/lang/{en,fr,it}/{myfile.php}. Yeni yöntem, resources/lang/{fr.json, it.json} gibi JSON dosyaları kullanır. Bu makale, daha yeni yönteme odaklanacaktır, ancak çeviri anahtarlarının adlandırılması ve erişimindeki farklılıklar dışında, ilkeler benzerdir.
Bölgesel varyasyonları olan diller için, ISO 15897 standardına göre dil dizinlerini veya dosyalarını adlandırmalısınız. Örneğin, İngiliz İngilizcesi en-gb yerine en_GB olarak adlandırılacaktır.
Genel bilgiler
Laravel'te, birçok çerçevede olduğu gibi, farklı diller için çeviriler ayrı dosyalarda saklanır. Laravel çeviri dosyalarını düzenlemek için iki temel yöntem vardır.
- Eski yaklaşım, dosyaları şu yol altında depolamayı içerir: resources/lang/{en,fr,it}/{myfile.php}.
- Modern yaklaşım, resources/lang/{fr.json, it.json} dosyalarını kullanır.
Bu makale, ikinci yönteme odaklanacaktır, ancak ilkeler her ikisi için de geçerlidir (çeviri anahtarlarının adlandırılması ve erişilmesi konusundaki varyasyonlarla birlikte).
Bölgeye göre değişen diller için, dil dizinlerinin/dosyalarının ISO 15897 standartlarına göre adlandırılması önerilir. Örneğin, İngiliz İngilizcesi en-gb yerine en_GB olarak gösterilecektir.
Laravel çeviri dosyaları oluşturma
Uygulamamız için yerel ayarları yapılandırdıktan sonra, varsayılan karşılama mesajımızı çevirebiliriz.
Yeni yerelleştirme dosyaları JSON formatında resources/lang dizininde oluşturarak başlayalım. İlk olarak, resources/lang/it.json dosyasını oluşturacağız ve uygun çevirilerle dolduracağız.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
Ardından, resources/lang/fr.json dosyasını ekleyin.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
Gözlemleyebileceğiniz gibi, welcome.blade.php dosyasından varsayılan iletiyi ({{ __(‘ Linguise web sitesine hoş geldiniz!’) }}) sürekli olarak referans alıyoruz. en.json dosyası oluşturmaya gerek yoktur, çünkü Laravel varsayılan iletilerin İngilizce olduğunu otomatik olarak tanır.
Çok dilli bir Laravel uygulamasında dil değiştirici ayarlama

Ayrıca, Laravel yerel dili geçersiz kılmak için henüz yapılandırılmamıştır, bu nedenle şimdilik çeviriyi doğrudan rota içinde ele alacağız. routes/web.php dosyası içindeki varsayılan karşılama rotasını buna göre değiştirin.
Route::get('/{locale?}', function ($locale = null) {
if (isset($locale) && in_array($locale, config('app.available_locales'))) {
app()->setLocale($locale);
}
return view('welcome');
});
Bu durumda, isteğe bağlı bir yerel GET parametresi yakalıyoruz ve geçerli yerel ayarı buna göre ayarlıyoruz (istenen yerel destekleniyorsa).
Artık web sitenizi ziyaret edebilir ve URL'deki ilk segment olarak desteklenen dillerden herhangi birini dahil edebilirsiniz. Örneğin, localhost/it veya localhost/fr adresine gidildiğinde yerelleştirilmiş içerik görüntülenir. Bir yerel ayar belirtmezseniz veya desteklenmeyen bir yerel ayar seçerseniz, Laravel varsayılan olarak İngilizce (en) olur.
Laravel için Yerelleştirme ara yazılımı
Her URL'de yerel ayarları dahil etmek ideal olmayabilir ve sitenin görsel çekiciliğini bozabilir. Bunu çözmek için, bir dil değiştirici kuracağız ve çevrilen içeriği görüntülemek için kullanıcı oturumunu kullanacağız. app/Http/Middleware/Localization.php dosyasında yeni bir ara katman oluşturabilir veya artisan make:middleware Localization komutunu çalıştırarak oluşturabilirsiniz.
Ardından, aşağıdaki kodu içeriye ekleyin.
Bu ara katman, eğer bu seçenek oturumda mevcutsa, Laravel 'in kullanıcı tarafından seçilen konumu kullanmasını sağlar.
Her istekte çalıştırma işlemine ihtiyacımız olduğundan, web ara yazılım grubu için app/Http/Kernel.php'deki varsayılan ara yazılım yığınına ekleyin.
/**
* The application's route middleware groups.
*
* @var array>
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
\App\Http\Middleware\Localization::class, // <--- add this
],
Rotaları değiştirme
Ardından, routes/web.php dosyasında yerel ayarı değiştirmek için bir rota tanımlayın. Burada bir kapatma rotası kullanıyoruz, ancak aynı kodu bir denetleyici içine de yerleştirebilirsiniz.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Ek olarak, daha önce varsayılan karşılama rotasına eklenen yerel ayar anahtarını kaldırın. Kök rotanız şimdi şöyle görünmelidir.
Route::get('/', function () {
return view('welcome');
});
Bu işlem yapıldıktan sonra, kullanıcı yalnızca localhost/language/{locale} adresini ziyaret ederek etkin dili değiştirebilir. Seçilen yerel ayar oturumda kaydedilecek ve kullanıcılar önceki sayfalarına yönlendirilecektir (Localization ara yazılımı tarafından işlenir).
Test etmek için localhost/language/it adresine gidin (tarayıcınızda oturum çerezinin etkin olduğunu varsayarak), çevrilmiş içeriği görmelisiniz. Siteyi gezebilir veya sayfayı yenileyebilirsiniz, seçilen dil etkin kalacaktır.
Dil değiştirici uygulaması
Şimdi, kullanıcıya dil değiştirme seçeneğini manuel olarak URL'ye locale kodlarını girmelerini gerektirmek yerine tıklanabilir bir seçenek sunmamız gerekiyor. Dil değiştirici Laravel web Bunu başarmak için basit bir dil değiştirici oluşturun. resources/views/partials/language_switcher.blade.php konumuna yeni bir dosya ekleyin ve aşağıdaki kodu ekleyin.
@foreach($available_locales as $locale_name => $available_locale)
@if($available_locale === $current_locale)
{{ $locale_name }}
@else
{{ $locale_name }}
@endif
@endforeach
Yeni oluşturulan dil değiştiriciyi “welcome” görünümüne dahil etmek için, değiştiricinin görünmesini istediğiniz yere welcome.blade.php dosyasına aşağıdaki satırı ekleyin.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
app/Providers/AppServiceProvider.php dosyasını açın ve dil değiştirici kullanıldığında tüm görünümlerle mevcut dili paylaşmak için boot() yöntemine aşağıdaki kodu ekleyin
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->composer('partials.language_switcher', function ($view) {
$view->with('current_locale', app()->getLocale());
$view->with('available_locales', config('app.available_locales'));
});
}
Laravel PHP'de gelişmiş çeviri özellikleri

Bu tartışmada, daha sonra diğer yerelleştirme bileşenlerini, yani tarih, sayı ve para birimini ele alacağız. İşte adımlar.
Laravel'da yerelleştirilmiş tarihler
Tarihleri ve saatleri yönetmek, yerelleştirme sürecinde çok önemlidir. Laravel , tarihleri ve saatleri yönetmek için Carbon'u kullanır. İşte Carbon'u yerelleştirilmiş bir tarihi görüntülemek için nasıl kullanabileceğiniz.
settings(
[
'locale' => app()->getLocale(),
]
);
// LL is macro placeholder for MMMM D, YYYY (you could write same as dddd, MMMM D, YYYY)
$dateMessage = $today->isoFormat('dddd, LL');
return view('welcome', [
'date_message' => $dateMessage
]);
});
Bu kod, Carbon yerel ayarını uygulamanın mevcut yerel ayarı temelinde ayarlar ve tarihi buna göre biçimlendirir.
Bir görünümde yerelleştirilmiş tarihi görüntülemek için:
{{ __('Welcome to our website, :Name', ['name' => ‘Johb’]) }}
{{ trans_choice('{0} There :form :count apples|{1} There :form just :count apple|[2,19] There :form :count apples', 1, ['form' => 'is']) }}
{{ $date_message }}
Sayıları ve para birimlerini biçimlendirme
Farklı ülkelerin sayıları biçimlendirme yöntemleri farklıdır. Örneğin,.
- Fransa → 123 123,12
- Almanya → 123.123,12
- Japonya → 123,123
Laravel uygulamanızdaki bu varyasyonları karşılamak için NumberFormatter'ı kullanabilirsiniz.
Sayıları belirli bir dilde de yazabilirsiniz.
İşte para birimleri. Fransız yerel ayarı (`fr`) için para birimi euro (€) olarak görüntülenirken, ABD yerel ayarı (`en_US`) için ABD doları ($) olarak gösterilecektir.
Alternatif çözüm Laravel yerelleştirme Linguise ile

Makalenin açıkladığı gibi Laravel yerelleştirme adımlarını anladıktan sonra, bu süreç kullanıcıların Laravel program kodunu derinlemesine anlamalarını gerektiren birçok adım içerir.
Bu kesinlikle uygulamalarını yerelleştirmek isteyen yeni başlayan kullanıcılar için zor olabilir. Bu nedenle, hızlı çeviri yapabilen, yerelleştirmeyi destekleyen ve uygulanması yalnızca birkaç basit adım gerektiren daha yenilikçi bir çözüme ihtiyaç vardır.
Umut verici bir çözüm Linguise'dir. Linguise , Laravel yerelleştirmeye daha kolay ve daha verimli bir yaklaşım sunar ve derinlemesine kodlama bilgisine ihtiyaç duymaz. Linguise 'in temel özellikleri.
- Laravel ile kolay entegrasyon
- Kodlama olmadan dil değiştiriciyi özelleştirin
- Görüntü çevirisi
- Çevirileri yerel bağlama uyarlamak için canlı düzenleyici
- Dinamik olarak oluşturulan içerik için dinamik çeviri
- Çok dilli sürümler için SEO optimizasyonu
Kurulum adımları Linguise, Laravel web sitelerine de kolayca yapılabilir. İşte kısa bir açıklama.
- Ücretsiz 30 günlük deneme süresini kullanarak bir Linguise hesabı oluşturun
- Laravel web alanınızı kaydedin ve bazı bilgileri girin. Bir API anahtarı alacaksınız.
- Linguise çeviri komut dosyasını aldığınız Laravel klasörüne yükleyin ve bağlayın.
- htaccess dosyasındaki dil URL'lerini ayarlayın.
- Dil değiştirici komut dosyasını HTML'nizin başına ekleyin.
- Dil değiştiriciyi gerektiği gibi özelleştirin
- Dil değiştirici Laravel web sitenizde görünecek ve içerik otomatik olarak çevrilecektir.
Nasıl? Linguiseile, yalnızca kaydolmanız ve etkinleştirmeniz yeterlidir, dil değiştirici görünecektir. Bundan sonra, örneğin canlı düzenleyici aracılığıyla, medya, resim vb. çevirileri yapabilirsiniz.
Sonuç
Laravel yerelleştirme, geliştiricilerin çok dilli web siteleri ve uygulamalar oluşturmasını sağlayan güçlü bir özelliktir. Gördüğümüz gibi, yerleşik Laravel yerelleştirme işlemi birden çok adım içerir ve çerçeve hakkında iyi bir anlayış gerektirir. Yeni başlayanlar veya daha hızlı bir çözüm arayanlar için zor olabilir.
Linguise gibi araçlar, daha akıcı bir yaklaşım arayanlar için yenilikçi bir alternatif sunar. Bu çözümler, hızlı çeviri yetenekleri, kolay entegrasyon ve özelleştirilebilir dil değiştiriciler ve görüntü çevirisi gibi kullanıcı dostu özellikler sunar. Şimdi, Linguise hesabınızı oluşturun ve Laravel



