mguinea/laravel-translatable

Laravel包,用于使Eloquent模型的属性可翻译

安装: 46

依赖者: 1

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:laravel-package

dev-main 2024-07-30 09:29 UTC

This package is auto-updated.

Last update: 2024-08-30 09:43:32 UTC


README

使用翻译表使Eloquent模型属性可翻译

License: MIT Laravel 11.x

此包包含一个特性,用于使Eloquent属性可翻译。翻译存储在翻译数据库表中。

一旦将特性安装到模型上,您可以执行以下操作

$customer = new Customer; // An Eloquent model
$customer
   ->setTranslation('greeting', 'en', 'Hello')
   ->setTranslation('greeting', 'es', 'Hola')
   ->save();

$customer->greeting; // Returns 'Hello' given that the current app locale is 'en'
$customer->getTranslation('greeting', 'es'); // returns 'Hola'

app()->setLocale('es');

$customer->greeting; // Returns 'Hola'

安装

您可以通过composer安装此包

composer require mguinea/laravel-translatable

如果您想更改默认模型或默认表名,您可以发布配置文件

php artisan vendor:publish --tag=translatable-config

您必须发布迁移文件以创建多态和主翻译表

php artisan vendor:publish --tag=translatable-migrations

使模型可翻译

使模型可翻译的必要步骤是

  • 首先,您需要添加Mguinea\Translatable\Traits\Translatable-特性。

  • 接下来,您应该创建一个公共静态属性$translatable,它包含您希望使其可翻译的所有属性名称的数组。

  • 您必须在模型迁移中创建一个字段,类型为stringnullable

以下是一个准备好的模型示例

use Illuminate\Database\Eloquent\Model;
use Mguinea\Translatable\Traits\Translatable;

class NewsItem extends Model
{
    use Translatable;

    protected $fillable = ['greeting'];
    public static $translatable = ['greeting'];
}