candeno/laravel-translations
最新稳定版本:1.0.0
Composer 安装命令:
composer require candeno/laravel-translations
包简介
EAV-based per-locale translations for Eloquent models — stores translated field values in a shared translations table with a HasTranslations trait for get/set/bulk-write operations.
README 文档
README
EAV-based per-locale translations for Eloquent models. Stores translated field values in a shared translations table with a HasTranslations trait for get/set/bulk-write operations.
Installation
composer require candeno/laravel-translations
Publish and run the migration:
php artisan vendor:publish --tag=candeno-translations-migrations php artisan migrate
Usage
Add the trait to any Eloquent model:
use Candeno\LaravelTranslations\Concerns\HasTranslations; class Activity extends Model { use HasTranslations; protected array $translatable = ['title', 'subtitle', 'why_text']; }
Get a translation
// Falls back: requested locale → fallback locale → raw model attribute $activity->getTranslation('title', 'uk', 'da');
Set a translation
$activity->setTranslation('title', 'uk', 'Назва');
Set all locales for a field
$activity->setTranslations('title', [ 'da' => 'Titel', 'uk' => 'Назва', ]);
Bulk-write from a localizedContent map
Useful when consuming the automation form payload directly:
// $localizedContent = ['da' => ['title' => '...', 'description' => '...'], 'uk' => [...]] $activity->setLocalizedContent($localizedContent, [ 'title' => 'title', 'description' => 'subtitle', 'buttonText' => 'action_label', ]);
Schema
| column | type | notes |
|---|---|---|
table_name |
varchar |
Eloquent model table |
row_id |
varchar |
Model primary key (int or UUID) |
locale |
varchar(10) |
e.g. da, uk, en |
field |
varchar |
Model field name |
value |
text |
Translated value |
A unique index on (table_name, row_id, locale, field) ensures upserts are safe.
统计信息
- 总下载量: 39
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 6
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-04-24