karnoweb / translation
Polymorphic translation storage for Laravel models. Data layer only — no host UI.
13.0.2
2026-09-03 20:29 UTC
Requires
- php: ^8.3
- illuminate/cache: ^13.0
- illuminate/console: ^13.0
- illuminate/database: ^13.0
- illuminate/events: ^13.0
- illuminate/support: ^13.0
Requires (Dev)
- laravel/pint: ^1.18
- orchestra/testbench: ^11.0
- phpunit/phpunit: ^11.0|^12.0|^13.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
پکیج دامنهٔ لاراول برای ذخیرهٔ چندزبانهٔ فیلدهای مدل بهصورت polymorphic. لایهٔ داده فقط — بدون UI میزبان.
مستندات: docs/README.md — مفاهیم و طرز استفاده
Requirements
- PHP 8.3+
- Laravel 13.x
Installation
composer require karnoweb/translation:^13.0 php artisan vendor:publish --tag=translation-config # اختیاری php artisan vendor:publish --tag=translation-migrations # الزامی php artisan migrate
مایگریشن جدول ترجمهها با نام ثابت 2022_01_01_* پابلیش میشود.
قابلیتها
| قابلیت | نقطه ورود |
|---|---|
| خواندن/نوشتن ترجمه | Trait HasTranslation |
| تنظیمات و مدل قابلتعویض | فاساد Translation |
| کش دائمی بر اساس کلید/لوکال | translation.cache.enabled |
در پکیج نیست: UI ادمین، سوییچر زبان، Policy، همگامسازی فایلهای lang/.
مثال سریع
use Karnoweb\Translation\Concerns\HasTranslation; class Brand extends Model { use HasTranslation; /** @var list<string> */ protected array $translatable = ['title', 'description']; } $brand->setTranslation('title', 'عنوان فارسی', 'fa'); $brand->setTranslation('title', 'English Title', 'en'); app()->setLocale('fa'); echo $brand->fresh()->title; // عنوان فارسی
جزئیات: docs/usage/README.md
License
MIT