Laravel Localization Kullanımı

Laravel Localization Kullanımı

Hepinize merhaba dostlarım yine ben 😊. Haftaların hızlı geçmesi ve benim projelerimin arasında blog yazma günümün çok çabuk bir şekilde gelmesini ve bunlara konu bulma sürecimin peş peşe gelmesi çok ama çok mutlu ediyor ki sizleri de mutlu ettiğine eminim şahitlerim var 😅.

Bu hafta size global çapta bir proje geliştirme sürecinde peşinizi bırakmayacak işlemden yani "Localization" işleminden bahseeceğim. Şimdi içinizden diyorsunuz dostlarım ben taaa buralardan seziyorum düşüncelerinizi. 6. Hissim kuvvetlidir diyormuşum 😅

Ooooooo hocam çoklu dil yapıları için proje dili değiştirme işlemlerine mi geçtik 😀. Ağzınızdan bal damlıyor 😊

Estağfirullah dostlarım o kadar da abartıya kaçmayın utanıyorum 🙃. İşin genel olarak toparlayacak olursak dostlarım projenizde eğer ki bu global çapta hizmet verecek proje ise bizim kapımızı bu çoklu dile hitap edecek "localization" çalıyor.

O halde ne bekliyoruz dostlarım hızlıca proje dosyamızı kuralım ve işlemlerimize başlayalım.

Localization'u Yakından Tanıyalım

Eveeeet dostlarım artık proje ortamımızı kurduk. Blade üzerinde işlem yapacağımız için welcome.blade.php içerisini temizleyebiliriz orada işlem yapalım istiyorum ben 😀. Her zaman web.php içerisinde çalışmayalım farklılık olsun bu sefer de

Bu kısmı tamamladıysanız dostlarım gelelim asıl işlemimize. Config klasörü altındaki app.php dosyamızı açalım. İçerisinde

/*
    |--------------------------------------------------------------------------
    | 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',   // projemizin dili

    /*
    |--------------------------------------------------------------------------
    | 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',   // eğer dil dosyası bulunamamış ise bu otomatik olarak proje dili olacak
.
.
.
.
.

şeklinde kodlar görünecektir. Yorum satırlarında da bahsettiğim gibi birisi projemizin ana dili, diğeri ise dil dosyası bulunamadığında (harici olarak dil dosyası vs belirttiğimizde) projemiz üzerinde varsayılan olarak ayarlanacak dil olacaktır 😊. 

Şimdiiiii asıl sorun şu dostlarım ve sizin aklınızda da var

Hocam biz bu dil dosyalarını nasıl kullanabiliriz ?

Aradığım efsane soruları soruyorsunuz dostlarım. Cidden çok teşekkür ediyorum size. Şimdi şöyle açıklayalım 😊

Web sitenizde örnek veriyorum üst navbarda "Anasayfa", "Hakkımızda","İletişim" gibi menüler oluyor biliyorsunuz. İşte ama global olarak düşünürsek ve bu localization ayarını yaparsak her bir bölgede farklı olarak görünmesi sitenizle o bölgedekii ziyaretçilerin daha iyi iletişim kurmasını sağlamış oluyoruz. Pekiii bu değişimi nasıl yapıyoruz hemen hızlıca ona geçişimizi yapalım 😊

Öncelikle resources/lang/en olarak bize hazır gelen klasör içerisinde örnek bir dosya oluşturalım ve ismine de örnek olarak translate.php dosyası oluşturalım. Daha sonra içerisine

<?php
return [
    "karsila" => "Welcome Software Developer",  // parametresiz
    "karsila_isim" => "Welcome Software Developer :name"  // parametreli
];

şeklinde iki adet sadece İngilizce dilinde karşımıza çıkacak olan metni ayarladık. Hadi ek olarak da bunları Türkçe için yapalım. 

Bunun için hemen resources/lang klasörü altında tr klasörü oluşturalım ve içerisine translate.php dosyasını ekleyelim. Bunun içerisindeki metinleri de

<?php
return [
    "karsila" => "Hoşgeldin Yazılım Geliştirici",  // parametresiz
    "karsila_isim" => "Hoşgeldin Yazılım Geliştirici :name"  // parametreli
];

şeklinde kodlarımızı yazdık dostlarım.

Yazının başında demiştim ya welcome.blade.php dosyasını silelim diye hadi gelin o dosya üzerinde kodlarımızı yazmaya başlayalım

<p>
    <b>Parametresiz Kullanım: </b> @lang('translate.karsila')
</p>
<p>
    <b>Parametreli Kullanım: </b> @lang('translate.karsila_isim',["name" => "MFSoftware Blog"])
</p>

şeklinde kodlarımızı yazdık dostlarım. Terminalimize gelip

php artisan serve

kodlarımızı yazdığımızda ekranımıza gelecek olan çıktı

şeklinde olacaktır.

Dikkat ederseniz dostlarım biz bunları şu an en dil koduna göre yani İngilizce ye göre ayarladık. Bunu gelin Türkçe için yapalım. Nasıl diye merak ediyorsanız olay çok basit

config/app.php içerisinde

'locale' => 'tr',

 ayarını yapmamız gerekecektir 😊. Hemen ekranımzıa bakacak olursak dostlarım karşımıza gelecek olan çıktı

şeklinde olacaktır 😊. Şimdi sizin aklınızda şu sorular vardır ben seziyorum burdan

Hocam örnek olaraktan biz sürekli böyle dosyalar arasında gelip gidip dil değiştirme işlemi mi yapcaz ? Yok mu bir kısa yolu ? 😁

şeklinde sorularınız var ben seziyorum 😊. Olmaz mı yaa tabii ki var siz isteyin yeter dostlarım. Bunun için hemen locale kısmını eski haline alıyorum ve welcome.blade.php içerisinde sizler için kodları gerçekleştiriyorum

@php
    \Illuminate\Support\Facades\App::setLocale('tr'); // locale değiştirme komutu
    echo "Aktif Lokal: ".\Illuminate\Support\Facades\App::getLocale()."<br></br>";  // aktlif locale ekrana yazdırma komutu
@endphp

<p>
    <b>Parametresiz Kullanım: </b> @lang('translate.karsila')
</p>
<p>
    <b>Parametreli Kullanım: </b> @lang('translate.karsila_isim',["name" => "MFSoftware Blog"])
</p>

şeklinde kodlarımızı yazdık dostlarım. Ekranımıza baktığımızda ise karşımızda

şeklinde çıktı gelecektir dostlarım 😊. Bu sefer ufak bir uygulama yapalım dostlarım. Bu uygulama da bizi lokale göre selamlasın. Zaten 2 lokalimiz olduğu için çok bir zorlama olmayacak 😊 Hemen kodlama kısmımıza geçişimizi yapalım

@if(\Illuminate\Support\Facades\App::isLocale('tr'))
    <h4>
        Selam Dostum
    </h4>

    <p>
        <b>Parametresiz Kullanım: </b> @lang('translate.karsila')
    </p>
    <p>
        <b>Parametreli Kullanım: </b> @lang('translate.karsila_isim',["name" => "MFSoftware Blog"])
    </p>
@else
    <h4>
        Hi Bro
    </h4>

    <p>
        <b>Parametresiz Kullanım: </b> @lang('translate.karsila')
    </p>
    <p>
        <b>Parametreli Kullanım: </b> @lang('translate.karsila_isim',["name" => "MFSoftware Blog"])
    </p>
@endif

şeklinde kodlarımızı yazdık. Bu kısımda farklı olaraktan

App::isLocale('tr') 

komutunu kullandık. Bu komutun amacı koddan da anlayacağınız üzere dostlarım "Konum bu mu ?" diye sorgu yapmamıza yarıyor olay basit aslında zor bir yanı yok dostlarım 😊. Kodlarımızı yazdık ve ekranımıza gelip çalıştırdığımızda karşımıza gelecek olan çıktı

şeklinde sorunsuz bir şekilde çıktımız ekran basılacaktır dostlarım 😊

Eveeeeet dostlarım bu yazımda sizlere elimden geldiğince dilim döndüğünce "Laravel Localizatiton Kullanımı" konusunudan elimden geldiğince dilim döndüğünce bahsetmeye çalıştım. Umarım faydalı olmuşumdur. Konu başlarda biraz karmaşık veya zor gelebilir dostlarım anlıyorum. Öğrenme süreci içerisinde bu ve bunun gibi sorunlarla karşılaşmanız son derece doğaldır.  Bu durumda sizlerden yapmanızı istediğim tek şey her yazımda da dediğim gibi "İstikrarlı ve azimli olmalı, bolca pratik yapmalısınız 😊" olacaktır. Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır 😊

Aynı zamanda 25 Aralık 2022 de kurmuş olduğum seyyaryazilimci.com soru cevap sitesi üzerinde yazılımda takıldığınız konuları sorabilir, aynı durumda olan yazılımcı dostlarımıza yardımda bulunabilirsiniz. Sorular ve cevaplar belirli bir süre admin onayından geçerek sistem üzerinde yayınlanmaktadır dostlarım bilginize 😊

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıLaravel Collect Kullanımı -2-
Sonraki YazıLaravel Mail Gönderme İşlemi
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz