سلام وقتتون بخیر.
ما یه سایت فروشگاهی عظیم داریم با لاراول. حال میخوایم محتوای محصولاتمون رو به انگلیسی و عربی ترجمه کنیم. استفاده از سرویس های ترجمه آنلاین و آفلاین مدنظر ما نیست زیرا که میخوایم برای هر زبان مد نظر محتوای خاص خودش رو تولید و ذخیره کنیم. نظر شما اساتید در این رابطه چیست؟
درود از پکیج زیر استفاده کنید
https://spatie.be/docs/laravel-translatable/v6/introduction
@hosseinradvictor
نه دقت بفرمایید عرض کردم که نمیخوام سایت برای ما ترجمه کنه
بیشتر نیاز دارم به یه استراکچر دیتابیس برای چیدن اطلاعات هر زبان داخلش
دقیقا این پکیج هم برای این مورد طراحی شده و روند به صورت زیر میباشد که درون مودل مد نظر کد های زیر رو اضافه میکنید
use HasTranslations;
public $translatable = ['name'];
در ارایه $translatable نام فیلدهایی که قصد دارید چند زبانی بر روی انها صورت گیرد را معرفی میکنید
سپس به صورت زیر دیتا ها رو وارد میکنید برای هر فیلد و زبان مد نظر
$newsItem = new NewsItem(); // This is an Eloquent model
$newsItem
->setTranslation('name', 'en', 'Name in English')
->setTranslation('name', 'nl', 'Naam in het Nederlands')
->save();
یا
NewsItem::create([
'name' => [
'en' => 'Name in English',
'nl' => 'Naam in het Nederlands'
],
]);
قسمت اول نام فیلد مد نظر و قسمت دوم کلید زبان مد نظر و درقسمت اخر متنی و دیتای که به زبان مد نظر میخواید وارد کنید
برای نمایش هم بدین صورت
$newsItem->getTranslation('name', 'nl');
نام فیلد و زبان مورد نظر برای نمایش متناسب با زبان اپ لوکال سیستم به صورت زیر
app()->setLocale('nl');
$newsItem->name;
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟