Laravel yerelleştirmesi, geliştiricilerin çok dilli web siteleri oluşturmasına olanak tanıyan güçlü bir yerelleştirmedir. Laravel projelerinizde web yerelleştirmesini uygulayarak , farklı dil geçmişine sahip ziyaretçiler için kişiselleştirilmiş bir kullanıcı deneyimi sunabilir, sonuçta erişiminizi genişletebilir ve kullanıcı katılımını artırabilirsiniz.
Laravel uygulamanızda yerelleştirmeyi uygulama konusunda size yol göstereceğiz ve sizi yerelleştirme çabalarınızı basitleştirip geliştirebilecek bir araçla tanıştıracağız!
Neden Laravel web sitesini yerelleştirmelisiniz?
Laravel web sitenizi yerelleştirmeniz için bazı önemli nedenleri burada bulabilirsiniz.
- Küresel bir hedef kitleye ulaşın: Laravel yerelleştirerek uygulamanızın erişimini uluslararası bir hedef kitleye genişletebilirsiniz. Bu, farklı ülkelerden ve farklı dillerden kullanıcıların içeriğinizi anlamasına ve onunla etkileşime geçmesine olanak tanır.
- Kullanıcı deneyimini iyileştirir: Yerelleştirme, kullanıcıların uygulamayla kendi ana dillerinde etkileşime girmesine olanak tanır ve bu da kullanıcı deneyimini önemli ölçüde artırır. 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, uygulamaların birden fazla dilde sunulması, rakiplere 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 dilde yapılan aramalarda arama motorlarında daha iyi sıralamaya sahip olma eğilimindedir. Bu, blog trafiğinizi ve çeşitli pazarlardaki çevrimiçi görünürlüğünüzü artırabilir.
Çok dilli Laravel yerelleştirmesi için gereksinimler
Laravel çok dilli yerelleştirmeyi uygularken dikkate alınması gereken birkaç gereksinim ve adım vardır.
- En son yerelleştirme özelliklerini almak için Laravel en son sürümünü (örn. sürüm 10.x) kullandığınızdan emin olun.
- PHP ve Laravel çerçevesine ilişkin temel bir anlayış, uygulama sürecinde yardımcı olacaktır.
- Bir web sunucusu ve veritabanı da dahil olmak üzere Laravel destekleyen bir yerel geliştirme ortamı veya sunucusu kurun.
- Uygulamanızın destekleyeceği dilleri baştan belirleyin.
Basit Laravel çevirileri
Bir Laravel uygulamasını veya web'i çevirmeden ö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. Daha sonra 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 kodun içine yazılıyor. web sitelerinin farklı dillere çevrilmesini (uluslararasılaştırma) zorlaştırır
Yukarıdaki metni farklı dillere kolayca uyarlanabilmesi için 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örüntüleyecek ve kullanıcı İngilizce dışında bir dil seçerse çeviriye bakacaktır. Bu durumda, uygulamanın varsayılan dili olarak İngilizce kullanılacaktır.
Laravel çok dilli bir ağda yerel ayarları ayarlama
Peki Laravel mevcut dili nasıl belirliyor veya uygulamada hangi dillerin mevcut olduğunu nasıl biliyor? 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',
Tuşların üzerindeki açıklama açık olmalıdır. Özetle, yerel ayar anahtarı uygulamanız için varsayılan yerel ayarı tutar (kodda başka bir yerel ayar belirtilmemişse). Uygulamanızda var olmayan bir yerel ayar istenirse fallback_locale 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'in İngilizce, İtalyanca ve Fransızca olmak üzere üç dili desteklemesini denedik.
Laravel çeviri dosyalarına genel bakış
Diğer birçok çerçevede olduğu gibi Laravel de farklı dillere yönelik ç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, Resources/lang/{fr.json, it.json} gibi JSON dosyalarını kullanır. Bu makale daha yeni yönteme odaklanacaktır; ancak çeviri anahtarlarının nasıl adlandırıldığı ve bunlara nasıl erişildiği konusundaki farklılıklar bir yana, ilkeler eski yöntem için benzerdir.
Bölgesel farklılıklar gösteren diller için dil dizinlerini veya dosyalarını ISO 15897 standardına göre adlandırmalısınız. Örneğin, İngiliz İngilizcesi en-gb yerine en_GB olarak adlandırılacaktır.
Genel bilgi
Laravel birçok çerçevede olduğu gibi farklı dillere yönelik çeviriler ayrı dosyalarda saklanır. Laravel çeviri dosyalarını düzenlemek için iki temel yöntem vardır.
- Eski yaklaşım, dosyaların şu yol altında depolanmasını 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 odaklanacak, ancak ilkeler her ikisine de uygulanabilir (çeviri anahtarlarının nasıl adlandırıldığı ve bunlara nasıl erişildiği konusunda farklılıklar vardır).
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ö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.
Resources/lang dizini içinde JSON formatında yeni yerelleştirme dosyaları oluşturarak başlayalım. Öncelikle bir Resources/lang/it.json dosyası oluşturacağız ve onu uygun çevirilerle dolduracağız.
{
"Welcome to Linguise website!": "Benvenuti nel sito web di Linguise!"
}
Daha sonra bir Resources/lang/fr.json dosyası ekleyin.
{
"Welcome to Linguise website!": "Bienvenue sur le site de Linguise"
}
Gördüğünüz gibi, sürekli olarak hoş geldiniz.blade.php dosyasındaki varsayılan mesaja atıfta bulunuyoruz ({{ __(' Linguise web sitesine hoş geldiniz!') }}). Laravel varsayılan mesajların İngilizce olduğunu otomatik olarak tanıdığından en.json dosyası oluşturmanıza gerek yoktur.
Laravel çok dilli bir uygulamada dil değiştiriciyi ayarlama
Ayrıca, Laravel henüz yerel dili geçersiz kılacak şekilde kurulmadığından şimdilik çeviriyi doğrudan rota içerisinde gerçekleştireceğiz. Routes/web.php dosyasındaki varsayılan karşılama rotasını şu ş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 ayar GET parametresi yakalıyoruz ve geçerli yerel ayarı buna göre ayarlıyoruz (istenen yerel ayar destekleniyorsa).
Artık web sitenizi ziyaret edebilir ve desteklenen dillerden herhangi birini URL'deki ilk segment olarak ekleyebilirsiniz. Örneğin, localhost/it veya localhost/fr'ye gitmek, yerelleştirilmiş içeriği görüntüleyecektir. Bir yerel ayar belirtmezseniz veya desteklenmeyen bir yerel ayar seçmezseniz, Laravel varsayılan olarak İngilizce'yi (en) kullanacaktır.
Laravel için yerelleştirme ara yazılımı
Yerel ayarın her URL'ye dahil edilmesi ideal olmayabilir ve sitenin görsel çekiciliğini bozabilir. Bu sorunu çö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. app/Http/Middleware/Localization.php dosyasında yeni ara katman yazılımı oluşturabilir veya bunu artisan make:middleware Localization komutunu çalıştırarak oluşturabilirsiniz.
Daha sonra içerisine aşağıdaki kodu ekleyin.
Bu ara katman yazılımı, eğer bu seçenek oturumda mevcutsa, Laravel kullanıcı tarafından seçilen konumu kullanmaya yönlendirecektir.
İşlemin her istekte çalıştırılmasına ihtiyacımız olduğundan, bunu web ara yazılım grubu için app/Http/Kernel.php dosyasındaki varsayılan ara katman 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
Daha sonra,routes/web.php dosyasındaki yerel ayarı değiştirmek için bir rota tanımlayın. Burada bir kapatma rotası kullanıyoruz, ancak isterseniz aynı kodu bir denetleyicinin içine yerleştirebilirsiniz.
Route::get('language/{locale}', function ($locale) {
app()->setLocale($locale);
session()->put('locale', $locale);
return redirect()->back();
});
Ayrıca, daha önce varsayılan karşılama yoluna eklenen yerel ayar değiştirmeyi de kaldırın. Kök rotanız artık şu şekilde görünmelidir.
Route::get('/', function () {
return view('welcome');
});
Bu yapıldıktan sonra kullanıcı yalnızca localhost/language/{locale} adresini ziyaret ederek aktif dili değiştirebilir. Seçilen yerel ayar oturuma kaydedilecek ve kullanıcılar önceki sayfalarına yönlendirilecek (Yerelleştirme ara yazılımı tarafından işlendiği şekilde).
Test etmek için localhost/language/it adresine gidin (oturum çerezinin tarayıcınızda etkin olduğunu varsayarak) ve çevrilmiş içeriği görmelisiniz. Sitede gezinebilir veya sayfayı yenileyebilirsiniz; seçilen dil geçerli kalacaktır.
Dil değiştirici uygulaması
yerel ayar kodlarını URL'ye manuel olarak girmelerini gerektirmek yerine, Laravel web dil değiştiricisini değiştirmesi 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 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 “hoş geldiniz” görünümüne dahil etmek için, aşağıdaki satırı, değiştiricinin görünmesini istediğiniz yere hoş geldiniz.blade.php dosyanıza eklemeniz yeterlidir.
@include('partials/language_switcher')
{{ __('Welcome to our website!') }}
app/Providers/AppServiceProvider.php dosyasını açın ve dil değiştirici kullanıldığında geçerli yerel ayarı tüm görünümlerle 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'deki gelişmiş çeviri özellikleri
Bu tartışmada daha sonra tarih, sayı ve para birimi gibi diğer yerelleştirme bileşenlerini ele alacağız. İşte adımlar.
Laravel yerelleştirilmiş tarihler
Yerelleştirme sürecinde tarih ve saatlerin işlenmesi çok önemlidir. Laravel tarihleri ve saatleri yönetmek için Carbon'u kullanır. Yerelleştirilmiş bir tarihi görüntülemek için Carbon'u nasıl kullanabileceğinizi burada bulabilirsiniz.
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 geçerli yerel ayarına göre 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ı ü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ızda bu varyasyonlara uyum sağlamak için NumberFormatter'ı kullanabilirsiniz.
Ayrıca sayıları belirli bir dilde de yazabilirsiniz.
İşte para birimleri. Fransız yerel ayarında (`fr`), para birimi euro (€) cinsinden görüntülenirken, ABD yerel ayarında (`en_US`), ABD doları ($) cinsinden gösterilir.
Linguise ile alternatif çözüm Laravel yerelleştirmesi
Laravel yerelleştirme adımlarını makalede anlatıldığı gibi anladıktan sonra bu süreç, kullanıcıların Laravel program kodunu derinlemesine anlamasını gerektiren birçok adımı içerir.
Bu durum, uygulamalarını yerelleştirmek isteyen acemi kullanıcılar için kesinlikle işi zorlaştırabilir. 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 . Linguise derinlemesine kodlama bilgisine ihtiyaç duymadan Laravel yerelleştirmesine daha kolay ve daha verimli bir yaklaşım sunar. Linguise temel özellikleri şunları içerir:
- Laravel ile kolay entegrasyon
- Dil değiştiriciyi kodlamadan ö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
- Çoklu dil versiyonları için SEO optimizasyonu
Linguise Laravel web sitelerine kurma adımları da kolaylıkla yapılabilir. İşte kısa bir açıklama.
- Linguise hesabı oluşturun (30 günlük ücretsiz deneme sürümünü ücretsiz kullanın)
- Laravel web alanınızı kaydedin ve bazı bilgileri girin. Bir API anahtarı alacaksınız.
- Linguise çeviri komut dosyasını sahip olduğunuz 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 üzerinde görünecek ve içerik otomatik olarak çevrilebilecektir.
Nasıl? Linguise ile yalnızca kaydolmanız ve etkinleştirmeniz yeterlidir; dil değiştirici görünecektir. Bundan sonra, örneğin canlı düzenleyici, çeviri medyası, görseller vb. aracılığıyla yerelleştirme yapmakta özgürsünüz.
Çözüm
Laravel yerelleştirmesi, geliştiricilerin çok dilli web siteleri ve uygulamalar oluşturmasına olanak tanıyan güçlü bir özelliktir. Gördüğümüz gibi yerleşik Laravel yerelleştirme süreci birden fazla adımı içerir ve çerçevenin iyi anlaşılmasını gerektirir. Yeni başlayanlar veya daha hızlı çözüm arayanlar için zorlayıcı olabilir.
Linguise gibi araçlar, daha akıcı bir yaklaşım arayanlar için yenilikçi bir alternatif sunuyor. 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 Laravel yerelleştirme özelliğimizin keyfini çıkarın !