syscape-space/laravel-translation

A Laravel package for model attributes translations

v0.0.4 2022-09-19 18:48 UTC

This package is auto-updated.

Last update: 2024-05-19 22:15:31 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

A Laravel package for model attributes translations

Installation

You can install the package via composer:

  1. composer require syscape-space/laravel-translation
  2. publish the migration to create the media table by running php artisan vendor:publish --provider="SyscapeSpace\LaravelTranslation\LaravelTranslationServiceProvider" --tag="migrations".

Usage

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use SyscapeSpace\LaravelTranslation\Traits\hasTranslation;

class Post extends Model
{
    use HasFactory, HasTranslation;
    // to force laravel accept the translation attributes
    protected $guarded = [];
    #or if you have time
    protected $fillable = ['title','title_en','title_ar','content','content_en','content_ar'];
    //-------------------------------------------------
    // just like that without any migration or configuration
    public $translationAttributes = [
        'title',
        'content',
    ];

}
#any where in your code
// depending on the current locale
$post = Post::create([
'title' => 'title',
'body' => 'content',
]);
#or
$post = Post::create([
'title_ar' => 'عنوان',
'title_en' => 'title',
'body_ar' => 'محتوى',
'body_en' => 'content',
]);
# and 
$post->title; // title 
#or 
$post->title_ar; // عنوان

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email ahmedalmory02@gmail.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.