Download the PHP package tonsoo/filament-translatable without Composer
On this page you can find all versions of the php package tonsoo/filament-translatable. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tonsoo/filament-translatable
More information about tonsoo/filament-translatable
Files in tonsoo/filament-translatable
Package filament-translatable
Short Description Simple translatable models and Filament form helpers for Laravel.
License MIT
Informations about the package filament-translatable
Filament Translatable
Model and Filament page traits for runtime translations.
Locale discovery uses getTranslatableLocales() or the static $translatableLocales property when present, then app.available_locales (or app.locales), and finally the current app locale.
Fallback translation uses app.fallback_locale when set.
Supported Versions
- PHP:
^8.3 - Laravel:
^13.0 - Filament:
^5.0 - Livewire:
^4.1
Installation
Model Trait
Translatable attributes must be JSON columns.
Filament Page Trait
Use the page trait in your own create/edit pages:
InteractsWithTranslatableResourceData reads translatable attributes from the model.
Form inputs are scalar in the UI, and the trait converts translatable fields into locale maps for persistence.
Optional Runtime Locale Switcher
Add this resource trait to render a locale select beside the page heading:
You can also define the locale list with a static protected array $translatableLocales = [...] property instead of overriding getTranslatableLocales().
The locale labels array is optional; if you omit it, the switcher uses the locale code as the label.
protected static string $defaultTranslatableLocale = 'en'; is optional and is used only when it matches one of the configured locales.
This automatically wires:
mutateFormDataBeforeFill()on edit pagesmutateFormDataBeforeCreate()on create pagesmutateFormDataBeforeSave()on edit pages
Model API
Locale-Aware Query Columns
When querying translatable attributes, the package maps plain translatable column names to the current locale JSON path.
You can also pass explicit locale dot notation:
Disable this behavior per query:
Re-enable later in the same chain:
All versions of filament-translatable with dependencies
illuminate/database Version ^13.0
illuminate/support Version ^13.0
filament/filament Version ^5.0