latevaweb / laravel-translatable
Laravel 包,用于使 Eloquent 模型属性可翻译
0.1.9
2024-08-05 07:32 UTC
Requires
- php: ^7.3|^8.2|^8.3
Requires (Dev)
- orchestra/testbench: ^4.0|^5.0
- phpunit/phpunit: ^7.0|^8.0|^9.0
- dev-master
- 0.1.9
- 0.1.8
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-develop
- dev-dependabot/composer/symfony/http-kernel-4.4.50
- dev-dependabot/composer/league/flysystem-1.1.4
- dev-dependabot/composer/laravel/framework-6.20.26
- dev-dependabot/composer/symfony/http-foundation-4.4.13
- dev-analysis-wjjmmK
- dev-analysis-ajjKwx
- dev-analysis-nNN1e1
This package is auto-updated.
Last update: 2024-09-05 10:43:27 UTC
README
使用 Translations 表使 Eloquent 模型属性可翻译
此包包含一个特性,用于使 Eloquent 属性可翻译。翻译存储在 Translations 数据库表中。
一旦在模型上安装了此特性,您可以执行以下操作
$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 latevaweb/laravel-translatable
如果您想更改默认模型或默认表名,可以发布配置文件
php artisan vendor:publish --provider="LaTevaWeb\Translatable\TranslatableServiceProvider" --tag=config --force
您必须发布迁移文件以创建多态和主要翻译表
php artisan vendor:publish --provider="LaTevaWeb\Translatable\TranslatableServiceProvider" --tag=migrations --force
使模型可翻译
使模型可翻译的必要步骤是
- 首先,您需要添加
LaTevaWeb\Translatable\Traits\Translatable
特性。 - 接下来,您应该创建一个公共静态属性
$translatable
,它包含您希望使可翻译的所有属性名称的数组。 - 您必须在模型的迁移中创建一个字段,字段类型为
string
且nullable
。
以下是一个准备好的模型示例
use Illuminate\Database\Eloquent\Model; use LaTevaWeb\Translatable\Traits\Translatable; class NewsItem extends Model { use Translatable; protected $fillable = ['greeting']; public static $translatable = ['greeting']; }