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 çabaları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, bazı önemli nedenler burada.
- Küresel bir kitleye ulaşın: Laravel web sitenizi yerelleştirerek, uygulamanızın erişimini uluslararası bir kitleye genişletebilirsiniz. Bu, farklı ülkelerden ve dil arka planlarından kullanıcıların içeriğinizi anlamasına ve etkileşimde bulunmasına olanak tanır.
- Kullanıcı deneyimini geliştirir: Yerelleştirme, kullanıcıların uygulamayla ana dillerinde etkileşimde bulunmalarını sağlar, 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 bir küresel pazarda, birden fazla dilde uygulama 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.
- Arama motoru optimizasyonunu geliştirir: İyi yerelleştirilmiş web siteleri, belirli bir dildeki aramalarda arama motorlarında daha iyi sıralama 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ştirme gereksinimleri

Laravel'da çok dilli yerelleştirmeyi uygularken dikkate almanız gereken birkaç gereksinim ve adım vardır.
- En son yerelleştirme özelliklerini almak için Laravel 'ün en son sürümünü (örneğin, 10.x sürümü) kullandığınızdan emin olun.
- PHP ve Laravel çerçevesinin temel anlaşılması, uygulama sürecinde yardımcı olacaktır.
- Bir web sunucusu ve veritabanı dahil olmak üzere Laravel'yi destekleyen 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 gereksinimlerin karşılanması gerektiğini anladıktan sonra, Laravel 'ı basitçe ç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!
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 uyarlanabilecek şekilde daha esnek hale getireceğiz. Laravel bunun için çok yararlı bir özellik sağlar; 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örüntüleyecek ve kullanıcı İngilizce dışındaki bir dili seçerse çeviriye bakacaktır. Bu durumda, İngilizce uygulama için varsayılan dil olarak kullanılacaktır.
Laravel çok dilli web'de yerel ayarların yapılandırılması

Peki Laravel uygulama içinde hangi dilin geçerli olduğunu veya hangi dillerin mevcut olduğunu nasıl belirler? Config/app.php dosyasındaki yerel ayarları kontrol eder. 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 açık 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 bir 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 sitesini üç dili, yani İngilizce, İtalyanca ve Fransızca'yı destekleyecek şekilde denedim.
Laravel çeviri dosyalarına genel bakış

Laravel'de, 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ıya göre 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 ilkeler eski yöntem için de benzerdir, çeviri anahtarlarının adlandırılması ve erişimindeki farklılıklar hariç.
Bölgesel varyasyonları 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 bilgiler
Laravel'daki 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 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, ikinci yönteme odaklanacaktır, ancak ilkeler her ikisi için de geçerlidir (çeviri anahtarlarının adlandırılma ve erişilme şeklindeki varyasyonlarla birlikte).
Bölgeye göre değişen diller için, dil dizinlerini/dosyalarını ISO 15897 standartlarına göre adlandırmanız önerilir. Örneğin, İngiliz İngilizcesi en-gb yerine en_GB olarak gösterilir.
Laravel çeviri dosyaları oluşturma
Uygulamamız için yerel ayarları yapılandırdıktan sonra, varsayılan karşılama mesajımızı çevirmeye devam edebiliriz.
Kaynaklar/dil dizini içinde JSON biçiminde yeni yerelleştirme dosyaları oluşturarak başlayalım. İlk olarak, resources/lang/it.json dosyasını oluşturup 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 sürekli olarak referans alıyoruz ({{ __(‘ Linguise web sitesine hoş geldiniz!’) }}). en.json dosyası oluşturmaya gerek yok, çünkü Laravel varsayılan iletilerin İngilizce olduğunu otomatik olarak tanır.
Laravel çok dilli uygulamasında dil değiştiriciyi ayarlama

Ayrıca, Laravel yerel dili geçersiz kılmak için henüz yapılandırılmadı, bu nedenle şimdilik çeviriyi doğrudan rota içinde ele alacağız. routes/web.php dosyası içindeki varsayılan karşılama rotasını bu şekilde 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 buna dayalı olarak geçerli yerel ayarları belirliyoruz (istenen yerel ayar 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ı
Yerel ayarı her URL'de 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 yazılım oluşturabilir veya artisan make:middleware Localization komutunu çalıştırarak oluşturabilirsiniz.
Ardından, aşağıdaki kodu içeriye ekleyin.
Bu ara yazılım, eğer bu seçenek oturumda mevcutsa, Laravel 'nin kullanıcı tarafından seçilen konumu kullanmasını sağlar.
Bu işlemin her isteğe göre çalıştırılması gerektiğinden, app/Http/Kernel.php'deki varsayılan ara yazılım yığınına web ara yazılım grubu için 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 ayarları değiştirmek için bir rota tanımlayın. Burada bir closure rotası kullanıyoruz, ancak isterseniz aynı kodu bir denetleyici içinde de kullanabilirsiniz.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Ek olarak, daha önce varsayılan karşılama yoluna eklenen yerel ayarı değiştirme özelliğini kaldırın. Kök rotanız şimdi bö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ştirebilecektir. Seçilen yerel ayar oturumda kaydedilecek ve kullanıcılar önceki sayfalarına geri yönlendirilecektir (Localization ara yazılımı tarafından işlenir).
Bunu 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. Sitede gezinebilir veya sayfayı yenileyebilirsiniz, seçilen dil etkin kalacaktır.
Dil değiştirici uygulaması
Şimdi, kullanıcıya dil değiştiriciyi değiştirmek Laravel web kullanıcıların URL'ye manuel olarak yerel kodları girmelerini talep etmek yerine. 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, welcome.blade.php dosyasına aşağıdaki satırı ekleyin; dil değiştiricinin görünmesini istediğiniz yere 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'de Yerelleştirilmiş tarihler
Tarihler ve saatlerle ilgili işlemler, yerelleştirme sürecinde çok önemlidir. Laravel , tarihleri ve saatleri yönetmek için Carbon'u kullanır. İşte Carbon'u yerelleştirilmiş bir tarih 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.
Yerelleştirilmiş tarihi bir görünümde 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 telaffuz edebilirsiniz.
İşte para birimleri. Fransız bölgesi (`fr`) için para birimi euro (€) cinsinden gösterilirken, ABD bölgesi (`en_US`) için ABD dolar ($) cinsinden gösterilecektir.
Alternatif çözüm Laravel yerelleştirme Linguise ile

Makale de açıklandığı gibi Laravel yerelleştirme adımlarını anladıktan sonra, bu işlem kullanıcıların Laravel program kodunu derinlemesine anlamasını gerektiren birçok adım içerir.
Bu, uygulamalarını yerelleştirmek isteyen yeni başlayanlar için kesinlikle zor olabilir. 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ç vardır.
Umut verici bir çözüm Linguise'tir. Linguise , Laravel yerelleştirmeye daha kolay ve daha verimli bir yaklaşım sunar, derinlemesine kodlama bilgisine gerek kalmadan. Linguise 'in temel özellikleri arasında.
- 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
- Çoklu dil sürümleri için SEO optimizasyonu
LinguiseLaravel web sitelerine de kolayca yapılabilir. İşte kısa bir açıklama.
- Bir Linguise hesabı oluşturun (ücretsiz 30 günlük deneme süresini kullanın)
- 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ında dil URL'lerini ayarlayın.
- Dil değiştirme komut dosyasını HTML'nizin başına ekleyin.
- Dil değiştiriciyi gerektiği gibi özelleştirin
- Dil değiştirici Laravel web sitesinde görünecek ve içerik otomatik olarak çevrilecektir.
Nasıl? Linguiseile sadece kayıt olmanız ve etkinleştirmeniz gerekir, dil değiştirici görünecektir. Bundan sonra, örneğin canlı düzenleyici aracılığıyla yerelleştirmek, medya çevirmek, resimler vb. için özgürsünüz.
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 fazla adım içerir ve çerçevenin iyi anlaşılmasını 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 için özelliklerimizin keyfini çıkarın!



