Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Uygulama yerel ayı değiştiğinde spatie çevirileri nasıl yönetiyor


Uygulama yerel ayı değiştiğinde spatie çevirileri nasıl yönetiyor


Spatie, Laravel'in yerelleştirme sistemi ile entegre ederek ve uygulamanın mevcut yerel ayarına göre çevirileri depolamak ve almak için esnek yollar sağlayarak Laravel uygulamalarındaki çevirileri yönetir.

Spatie, uygulama bölgesi değiştiğinde çevirileri nasıl ele alır?

1. Çeviri Depolama ve Alma

-Spatie, çevirileri yalnızca dil dosyaları yerine bir veritabanında depolamaya izin veren Laravel-Translation yükleyici adlı bir paket sunar. Bu paket, Laravel'in varsayılan çeviri servis sağlayıcısının Spatie'nin sağlayıcısıyla değiştirilerek, çevirilerin veritabanından dinamik olarak getirilmesini sağlayan [1].
- Çeviriler, her girişin bir grup ("doğrulama" gibi), bir anahtar ("gerekli" gibi) ve birden fazla yerel için çevirileri tutan bir JSON nesnesi içerdiği bir tabloda (genellikle `` dil_lines`) depolanır (örneğin, bu gerekli alandır ',' nl '=>' dit verplcht veld') [1].
- Laravel'in `__ ()` işlevini bir çeviri anahtarıyla dediğinizde, Spatie'nin yükleyici uygulamada ayarlanan geçerli yerel ayarın çevirisini getirir. Örneğin, uygulama yerel ayarı `` nl'`, __ ('validation.required') `ise, Hollanda çevirisini veritabanından döndürür [1].

2. Yerel ayar değiştirme

- Uygulama yerel ayarı, Laravelâ `` App ()-> setLocale ('locale_code') `yöntemi kullanılarak çalışma zamanında değiştirilebilir.
- Yerel değiştirildikten sonra, `__ ()` veya diğer çeviri işlevleri aracılığıyla sonraki tüm çeviri alma işlemleri yeni ayarlanmış yerel ayarda metni otomatik olarak döndürür.
- Veritabanındaki geçerli yerel ayar için bir çeviri eksikse, Laravel'in geri dönüş yerel ayar mekanizması, açıkça devre dışı bırakılmadıkça tercümeyi varsayılan yerel ayardan döndürebilir [1] [8].

3. JSON Depolama ile Model düzeyinde çeviriler

- Laravel-Translatable başka bir spatie paketi, nitelikleri çevrilebilir hale getirmesi için etkili modeller için tasarlanmıştır.
- Çeviriler, ekstra tablolara ihtiyaç duyulmadan, çevrilebilir öznitelik başına tek bir veritabanı sütununda JSON olarak saklanır [3].
- Uygulama yerel ayı değiştiğinde, modelde çevrilebilir bir özniteliğe erişmek, geçerli yerel ayarın değerini otomatik olarak döndürür. Örneğin, `$ newsisem-> name`, uygulamada ayarlanan mevcut yerel ayarın çevirisini döndürecektir [4].
- `` getTranslation (öznitelik, yerel ayar) 've `settranslation (öznitelik, yerel, değer)` [4] gibi yöntemleri kullanarak belirli yereller için açıkça çevirileri alabilir veya ayarlayabilirsiniz.

4. Yedek ve eksik çeviriler

- Spatie'nin çevrilebilir paketi, mevcut yerel ayar için bir çeviri eksikse, çeviriyi başka bir yerel ayardan (genellikle varsayılan) döndürebilir [8].
- Bu davranış, geri dönüşü devre dışı bırakmak ve çeviri eksikse boş bir dize almak için bir boole bayrağı geçirerek kontrol edilebilir [8].

Özet

Uygulama yerel ayar değiştiğinde, Spatie'nin çeviri paketleri, veritabanı saklı dil hatlarından veya JSON saklı model özelliklerinden uygun çeviriyi otomatik olarak sunarak Laravel'in yerel ayarından yararlanır. Bu kesintisiz entegrasyon, çeviri alma işlevlerinin geçerli uygulama yerel ayarına göre doğru yerelleştirilmiş dizeyi döndürmesini sağlar ve bir çeviri eksikse geri dönüş mekanizmaları mevcuttur.

Bu yaklaşım, çalışma zamanında dinamik yerel ayar geçişine izin verir ve kullanılan pakete bağlı olarak çevirilerin veritabanı tablolarında veya JSON sütunlarında esnek şekillerde saklanmasını destekler.

Kaynaklar: [1] [3] [4] [8]

Alıntılar:
[1] https://github.com/spatie/laravel-cranslation-loader
[2] https://spatie.be/docs/laravel-translatable/v6/introduction
[3] https://github.com/spatie/laravel-translatable
[4] https://spatie.be/docs/laravel-translatable/v6/basic-usage/getting-and-settings-ranslasyonlar
[5] https://filamentphp.com/plugins/filament
[6] https://github.com/filamentphp/filament/discussions/6913
[7] https://laraveldaily.com/lesson/multi-language-laravel/spatie-laravel-translation-loader
[8] https://stackoverflow.com/questions/65252615/spatie-laravel-translatable-hows-the-default-locale-when-i- tro-to-troieve-th