Laravel Laravel projelerinizde web yerelleştirmeyi uygulayarak , farklı dilsel geçmişe sahip ziyaretçiler için kişiselleştirilmiş bir kullanıcı deneyimi sağlayabilir, nihayetinde erişiminizi genişletebilir ve kullanıcı etkileşimini artırabilirsiniz.
Laravel uygulamanızda yerelleştirmeyi nasıl uygulayacağınızı adım adım anlatacağız ve yerelleştirme çalışmalarınızı basitleştirip geliştirebilecek bir araçla tanıştıracağız!
Laravel web sitesini neden yerelleştirmelisiniz?

İşte Laravel web sitenizi yerelleştirmeniz için bazı önemli nedenler.
- Küresel bir kitleye ulaşın: Laravel yerelleştirerek , uygulamanızın erişimini uluslararası bir kitleye genişletebilirsiniz. Bu, farklı ülkelerden ve dil geçmişine sahip kullanıcıların içeriğinizi anlamasına ve onunla etkileşim kurmasına olanak tanır.
- Kullanıcı deneyimini iyileştirir: Yerelleştirme, kullanıcıların uygulamayla kendi ana dillerinde etkileşim kurmasına olanak tanır ve bu da kullanıcı deneyimini önemli ölçüde geliştirir. Bu, etkileşim oranlarını artırabilir, hemen çıkma oranlarını azaltabilir ve dönüşümleri artırabilir.
- Rekabet avantajı: Rekabetçi küresel pazarda, uygulamaları birden fazla dilde sunmak rakiplerinize karşı önemli bir avantaj sağlayabilir. Uluslararası pazarlara olan bağlılığınızı gösterir ve yeni pazarlara daha etkili bir şekilde girmenize yardımcı olabilir.
- SEO'yu İyileştirir: İyi yerelleştirilmiş web siteleri, belirli bir dildeki aramalar için arama motorlarında daha iyi sıralanma eğilimindedir. Bu, çok dilli çeviri ile çeşitli pazarlarda blog trafiğinizi ve çevrimiçi görünürlüğünüzü artırabilir
Çok dilli Laravel yerelleştirmesi için gereksinimler

Laravelçok dilli yerelleştirme uygularken dikkate alınması gereken birkaç gereksinim ve adım vardır.
- En yeni yerelleştirme özelliklerinden yararlanmak için Laravel en son sürümünü (örneğin, 10.x sürümü) kullandığınızdan emin olun.
- PHP ve Laravel framework'ü hakkında temel bir anlayışa sahip olmak, uygulama sürecinde faydalı olacaktır.
- Laraveldestekleyen bir web sunucusu ve veritabanı da dahil olmak üzere yerel bir geliştirme ortamı veya sunucu kurun.
- Uygulamanızın destekleyeceği dilleri baştan belirleyin.
Basit Laravel çevirileri

Laravel uygulaması veya web sitesinin çevirisine başlamadan önce hangi gereksinimlerin karşılanması gerektiğini anladıktan sonra, Laravel basit bir şekilde ç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, body etiketini aşağıdaki kodla değiştirin.
Welcome to Linguise website!
web sitelerinin farklı dillere çevrilmesini (uluslararasılaştırmayı) zorlaştırıyor
Yukarıdaki metni farklı dillere kolayca uyarlanabilecek şekilde daha esnek hale getireceğiz. Laravel bunun için çok faydalı bir özellik sunuyor: yerelleştirme sistemi. İlk adım olarak, mevcut metni aşağıdaki kodla değiştirin.
{{ __('Welcome to Linguise website!') }}
Laravel varsayılan olarak yukarıdaki metni gösterecek ve kullanıcı İngilizce dışında bir dil seçerse çevirisini arayacaktır. Bu durumda, uygulamanın varsayılan dili İngilizce olacaktır.
Laravel çok dilli web uygulamasında yerel ayarların oluşturulması

Peki Laravel mevcut dili nasıl belirliyor veya uygulamada hangi dillerin kullanılabildiğini nasıl biliyor? config/app.php dosyasındaki yerel ayarları 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 yerel ayarı içerir (kodda başka bir yerel ayar belirtilmemişse). `fallback_locale` ise uygulamanızda mevcut olmayan bir yerel ayar talep edilirse 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',
],
Şu an itibariyle, Laravel web'i İngilizce, İtalyanca ve Fransızca olmak üzere üç dili destekleyecek şekilde denedik.
Laravel çeviri dosyalarına genel bakış

Laravel, diğer birçok framework'te 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ı şu yapıda saklar: resources/lang/{en,fr,it}/{myfile.php}. Yeni yöntem ise resources/lang/{fr.json, it.json} gibi JSON dosyaları kullanır. Bu makale, çeviri anahtarlarının adlandırılma ve erişim şekillerindeki farklılıklar dışında, eski yöntemle de benzer prensiplere sahip olsa da, yeni yönteme odaklanacaktır.
Bölgesel farklılıkları olan diller için, dil dizinlerini veya dosyalarını ISO 15897 standardına göre adlandırmanız gerekir. Örneğin, İngiliz İngilizcesi en-gb yerine en_GB olarak adlandırılmalıdır.
Genel bilgi
Laravel, birçok framework'te olduğu gibi, farklı diller için çeviriler ayrı dosyalarda saklanır. Laravel çeviri dosyalarını düzenlemenin iki temel yöntemi vardır.
- Geleneksel yaklaşım, dosyaları şu yolda saklamayı içerir: resources/lang/{en,fr,it}/{myfile.php}.
- Modern yaklaşım resources/lang/{fr.json, it.json} dosyalarını kullanır.
Bu makale, prensipleri her iki yöntem için de geçerli olsa da (çeviri anahtarlarının adlandırılma ve erişim şekillerindeki farklılıklarla birlikte), ikinci yönteme odaklanacaktır.
Bölgeye göre değişiklik gösteren 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 belirtilmelidir.
Laravel çeviri dosyaları oluşturma
Uygulamamız için yerel ayarları yapılandırdıktan sonra, varsayılan karşılama mesajımızı çevirmeye geçebiliriz.
Öncelikle resources/lang dizini içinde JSON formatında yeni yerelleştirme dosyaları oluşturarak başlayalım. İlk olarak, resources/lang/it.json dosyasını oluşturup içine uygun çevirileri ekleyeceğiz.
{
"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ördüğünüz gibi, sürekli olarak welcome.blade.php dosyasındaki varsayılan mesajı ({{ __(' Linguise web sitesine hoş geldiniz!') }}) referans alıyoruz. Laravel , varsayılan mesajların İngilizce olduğunu otomatik olarak tanıdığı için en.json dosyası oluşturmaya gerek yok.
Laravel çok dilli uygulamada dil değiştirici ayarı

Ayrıca, Laravel henüz yerel dili geçersiz kılacak şekilde yapılandırılmamıştır, bu nedenle şimdilik çeviriyi doğrudan rota içinde ele alacağız. routes/web.php dosyasındaki varsayılan karşılama rotasını aşağıdaki gibi 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 ayar GET parametresini yakalıyoruz ve (istenilen yerel ayar destekleniyorsa) geçerli yerel ayarı buna göre ayarlıyoruz.
Artık web sitenizi ziyaret edebilir ve URL'nin ilk bölümüne desteklenen dillerden herhangi birini ekleyebilirsiniz. Örneğin, localhost/it veya localhost/fr adresine gitmek yerelleştirilmiş içeriği gösterecektir. Bir dil belirtmezseniz veya desteklenmeyen bir dil seçerseniz, Laravel varsayılan olarak İngilizce'yi (en) kullanacaktır.
Laravel için yerelleştirme ara yazılımı
Her URL'ye yerel ayar eklemek ideal olmayabilir ve sitenin görsel çekiciliğini bozabilir. Bunu çözmek için bir dil değiştirici kuracağız ve çevrilmiş içeriği görüntülemek için kullanıcı oturumunu kullanacağız. Yeni bir ara yazılım oluşturmak için app/Http/Middleware/Localization.php dosyasını kullanabilir veya artisan make:middleware Localization komutunu çalıştırarak oluşturabilirsiniz.
Ardından, aşağıdaki kodu ekleyin.
Bu ara yazılım, oturumda bu seçenek mevcutsa, Laravel kullanıcı tarafından seçilen konumu kullanmasını sağlayacaktır.
Bu işlemin her istekte çalışması gerektiğinden, onu app/Http/Kernel.php dosyasındaki web ara katman grubu için varsayılan ara katman 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 closure rotası kullanıyoruz, ancak isterseniz aynı kodu bir controller içine de yerleştirebilirsiniz.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Ayrıca, varsayılan karşılama rotasına daha önce eklenen yerel ayar değiştirme özelliğini kaldırın. Kök rotanız artık şöyle görünmelidir.
Route::get('/', function () {
return view('welcome');
});
Bu işlem tamamlandıktan sonra, kullanıcı yalnızca localhost/language/{locale} adresini ziyaret ederek aktif dili değiştirebilir. Seçilen dil oturumda kaydedilecek ve kullanıcılar (Yerelleştirme ara yazılımı tarafından ele alındığı gibi) önceki sayfalarına geri yönlendirilecektir.
Bunu test etmek için localhost/language/it adresine gidin (tarayıcınızda oturum çerezinin etkin olduğunu varsayarak) ve çevrilmiş içeriği görmelisiniz. Sitede gezinebilir veya sayfayı yenileyebilirsiniz ve seçilen dil geçerli kalacaktır.
Dil değiştirici uygulaması
Laravel web sitesinde dil değiştirme için tıklanabilir bir seçenek sunmamız gerekiyor . Bunu başarmak için basit bir dil değiştirici oluşturun. resources/views/partials/language_switcher.blade.php adresine yeni bir dosya ekleyin ve aşağıdaki kodu içine yerleştirin.
@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 "hoş geldiniz" ekranına dahil etmek için, değiştiricinin görünmesini istediğiniz welcome.blade.php dosyasına aşağıdaki satırı eklemeniz yeterlidir.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
app/Providers/AppServiceProvider.php dosyasını açın ve boot() metoduna aşağıdaki kodu ekleyerek, dil değiştirici kullanıldığında geçerli yerel ayarı tüm görünümlerle paylaşın
* 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 bölümde, tarih, sayı ve para birimi gibi diğer yerelleştirme bileşenlerini ele alacağız. İşte adımlar:.
Laravel yerelleştirilmiş tarihler
Tarih ve saatlerin yönetimi, yerelleştirme sürecinde çok önemlidir. Laravel tarih ve saatleri yönetmek için Carbon'u kullanır. İşte Carbon'u kullanarak yerelleştirilmiş bir tarihi nasıl görüntüleyebileceğ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, uygulamanın geçerli yerel ayarına göre Carbon yerel ayarını belirler ve tarihi buna göre biçimlendirir.
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ın ve para birimlerinin biçimlendirilmesi
Farklı ülkelerde sayıları biçimlendirmenin çeşitli yolları vardı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.
Ayrıca sayıları belirli bir dilde de yazabilirsiniz.
İşte para birimleri. Fransızca yerel ayarı (`fr`) için para birimi euro (€) cinsinden, ABD yerel ayarı (`en_US`) için ise ABD doları ($) cinsinden gösterilecektir.
Alternatif çözüm: Linguise ile Laravel yerelleştirme

Makalede açıklanan 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 durum, uygulamalarını yerelleştirmek isteyen acemi kullanıcılar için kesinlikle zorluk yaratabilir. Bu nedenle, hızlı çeviri yapabilen, yerelleştirmeyi destekleyen ve uygulanması için yalnızca birkaç basit adım gerektiren daha yenilikçi bir çözüme ihtiyaç duyulmaktadır.
Umut vadeden çözümlerden biri Linguise. Linguise derinlemesine kodlama bilgisine ihtiyaç duymadan Laravel yerelleştirmesine daha kolay ve verimli bir yaklaşım sunar. Linguise temel özellikleri şunlardır:.
- Laravel ile kolay entegrasyon
- Kod yazmadan dil değiştiriciyi özelleştirin
- Resim çevirisi
- Çevirileri yerel bağlama göre özelleştirmek için canlı düzenleyici
- Dinamik olarak oluşturulan içerik için dinamik çeviri
- Çok dilli sürümler için SEO optimizasyonu
Laravel tabanlı web sitelerine Linguise kurulumu gerçekleştirilebilir . İşte kısa bir açıklama.
- Linguise hesabı oluşturun (30 günlük ücretsiz deneme sürümünü kullanabilirsiniz)
- Laravel web alan adınızı kaydedin ve bazı bilgileri girin. Bir API anahtarı alacaksınız.
- Linguise çeviri betiğini indirdiğiniz Laravel klasörüne yükleyin ve bağlayın.
- htaccess dosyasında dil URL'lerini ayarlayın.
- Dil değiştirme kodunu HTML dosyanızın <head> bölümüne ekleyin.
- Dil değiştirme özelliğini ihtiyacınıza göre özelleştirin
- Dil değiştirme özelliği Laravel web sitesinde görünecek ve içerik otomatik olarak çevrilebilecek.
Nasıl mı? Linguiseile sadece kayıt olup etkinleştirmeniz yeterli, dil değiştirici otomatik olarak görünecektir. Bundan sonra, örneğin canlı editör aracılığıyla yerelleştirme yapabilir, medya, resim vb. çevirebilirsiniz.
Çözüm
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, Laravel yerleşik yerelleştirme süreci birden fazla adım içerir ve çerçeveyi iyi anlamayı gerektirir. Bu, yeni başlayanlar veya daha hızlı bir çözüm arayanlar için zorlayıcı olabilir.
Linguise gibi araçlar , daha sade 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 resim çevirisi gibi kullanıcı dostu özellikler sunar. Şimdi Linguise hesabınızı oluşturun Laravel uygulamalarınızı yerelleştirme özelliğimizin keyfini çıkarın !



