Download the PHP package secretwebmaster/wncms-translatable without Composer
On this page you can find all versions of the php package secretwebmaster/wncms-translatable. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download secretwebmaster/wncms-translatable
More information about secretwebmaster/wncms-translatable
Files in secretwebmaster/wncms-translatable
Package wncms-translatable
Short Description Make any laravel model translatable
License MIT
Homepage https://github.com/secretwebmaster/wncms-translatable
Informations about the package wncms-translatable
Wncms Translatable
A Laravel package to add translation capabilities to any Eloquent model by storing translations in a separate table with a polymorphic relationship. Easily manage translations for specified fields in multiple locales.
Features
- Translates specified model fields
- Stores translations in a separate
translationstable - Polymorphic relationship to support multiple models
- Easy to use with a simple trait
Installation
Step 1. Install the package via Composer:
Step 2. Publish the migration file:
Step 3. Run the migration to create the translations table:
Step 4. Setup your model
Add the HasTranslations trait to your model
To make any model translatable, simply add the HasTranslations trait to your Eloquent model and define the $translatable property with the list of fields that should be translatable.
Usage
Setting Translations
Create your model and call setTranslation()
Getting Translations
When retrieving translatable fields, the package automatically returns the value based on the current locale of the application:
You can also retrieve translations for a specific locale:
You can get available translation field of a model:
Table Structure
The package will create a translations table with the following structure:
| Field | Type | Description |
|---|---|---|
id |
bigint | Primary key |
translatable_type |
string | Model class name (e.g., App\Models\Post) |
translatable_id |
bigint | The ID of the related model instance |
field |
string | The name of the field being translated |
locale |
string | Locale for the translation (e.g., en, fr) |
value |
text | The translated value |
created_at |
timestamp | Timestamp for when the translation was created |
updated_at |
timestamp | Timestamp for when the translation was updated |
Update log
v1.4.0 2026-04-08
- Laravel 13 baseline (
illuminate/database/illuminate/support^13.0) - PHP 8.4 baseline
- Testbench 11 / PHPUnit 12 compatibility
- fix default-locale skip logic so model save/update is not blocked
v1.2.8 2025-08-20
- fix typo in Feature test
- add save_empty_translations option in config file