| Package Data | |
|---|---|
| Maintainer Username: | Tarpsvo |
| Maintainer Contact: | tarvoreinpalu@gmail.com (Tarvo Reinpalu) |
| Package Create Date: | 2019-12-20 |
| Package Last Update: | 2025-10-07 |
| Home Page: | |
| Language: | PHP |
| License: | MIT |
| Last Refreshed: | 2025-10-20 15:07:20 |
| Package Statistics | |
|---|---|
| Total Downloads: | 379,405 |
| Monthly Downloads: | 4,469 |
| Daily Downloads: | 164 |
| Total Stars: | 204 |
| Total Watchers: | 5 |
| Total Forks: | 64 |
| Total Open Issues: | 16 |
This Laravel Nova allows you to make any input field spatie/laravel-translatable compatible and localisable.
laravel/nova: ^2.9 || ^3.0
spatie/laravel-translatable: ^4.0
spatie/laravel-translatable support)Image and File
resolveUsing
fillUsing
displayUsing (might be fixed eventually)


Firstly, set up spatie/laravel-translatable.
Install the package in a Laravel Nova project via Composer:
# Install nova-translatable
composer require optimistdigital/nova-translatable
# Publish configuration (optional, but useful for setting default locales)
php artisan vendor:publish --tag="nova-translatable-config"
Call ->translatable() on any field, like so:
// Any Nova field
Text::make('Name')
->rules('required', 'min:2')
->translatable(),
// Any third-party input field
Multiselect::make('Football teams')
->rules('required')
->translatable(),
// Optionally pass custom locales on a per-field basis
Number::make('Population')
->translatable([
'en' => 'English',
'et' => 'Estonian',
]),
It's possible to define locale specific validation rules.
To do so, add the ->rulesFor() on your field and the HandlesTranslatable trait to your Nova resource.
->rulesFor accepts array|string|callable locales and array|callable rules.
use OptimistDigital\NovaTranslatable\HandlesTranslatable;
class Product extends Resource
{
use HandlesTranslatable;
public function fields(Request $request)
{
return [
Text::make(__('Name'), 'name')
->sortable()
->translatable()
->rules(['max:255'])
->rulesFor('en', [
'required',
])
->rulesFor(['en', 'et'], function ($locale) {
return ["unique:products,name->$locale{{resourceId}}"];
}),
];
}
}
max: name.*
required: name.en
unique: name.en & name.et
You can define default locales for all the translatable fields in the config file. The config file can be published using:
php artisan vendor:publish --tag="nova-translatable-config"
This project is open-sourced software licensed under the MIT license.