A package for database translations.
A package for database translations. This package is suitable for small to medium sized projects. For big projects I am planing a high performance version of this package using mongodb., (*1)
composer require tanmuhittin/laravel-easy-translate
, (*2)
php artisan migrate --path=vendor/tanmuhittin/laravel-easy-translate/database/migrations
, (*3)
You are ready to go., (*4)
Add this to your translatable models;, (*5)
use TanMuhittin\LaraTranslate\Traits\Translatable;
, (*6)
then define translatable fields, (*7)
public $translatable_columns = ['name','content'];
, (*8)
Now your models returns 2 additional fields; translatable, translated, (*9)
Edit the translatable object returned by your model and save it. Example translatable object:, (*10)
{ name:'Default Name', content:'Default Content', created_at:01.09.1993 09:09:09, "translatable": { "en": { "name": { "value": "enName" }, "content": { "value": "enContent" } }, "tr": { "name": { "value": "trName" }, "content": { "value": "trContent" } } } } . . .
Edited Version, (*11)
{ name:'Default Name', content:'Default Content', created_at:01.09.1993 09:09:09, "translatable": { "en": { "name": { "value": "enName Edited" }, "content": { "value": "enContent Edited" } }, "tr": { "name": { "value": "trName Edited" }, "content": { "value": "trContent Edited" } } } } . . .
Saving Translations:, (*12)
$model = new Posts; $model->name = $request->get('name'); $model->content = $request->get('content'); if($request->has('translatable')) $model->trans = $request->get('translatable'); $model->save();
Thats it., (*13)