Translatable Field
A plugin designed to manage translations and display selected fields in different languages.
Author:
34ML
Documentation

This package enables you to implement the following:
- Render a language selector to change the localized field
- You can save your localized fields data in one click
- You can use it in your relationship manager to show the localized fields

This package depends on spatie/laravel-translatable, Please check it first to set up your translation logic in your project.
#Installation
You can install the package via composer:
composer require 34ml/filament-translatable-field
You can publish the config file with:
php artisan vendor:publish --tag="filament-translatable-field-config"
This is the content of the published config file where fields are created for each language listed here
return [
'locales' => [
'en' => 'English',
'ar' => 'Arabic',
],
'select_translation_field_name' => 'select_language',
];
#Translatable Field Usage
#Basic Usage
- Just add the field in your resource, view, create,or edit pages inside the form function
..._34ML\FilamentTranslatableField::make(
'your_translatable_field_name',
\Filament\Forms\Components\TextInput::class, // The field type class
)
- If you want to customize the label of the field
..._34ML\FilamentTranslatableField::make(
'your_translatable_field_name',
\Filament\Forms\Components\TextInput::class, // The field type class
'your_field_displayed_name', // Optional
)
- If you want to add filament field functions
..._34ML\FilamentTranslatableField::make(
'your_translatable_field_name',
\Filament\Forms\Components\TextInput::class, // The field type class
// add your filament field functions as a callback, you can add it as one function
callbacks: function (){
$this->required();
$this->numeric();
return $this; // You have to return the field or the callbacks won't work
}
)
#Language Selector
If you want to add a language selector that shows only the selected language's fields instead of showing all fields you can simply add this field in your resource, view, create,or edit pages inside the form function
use _34ML\FilamentTranslatableField\Forms\Components\LanguageSelector;
return $form
->schema([
LanguageSelector::make(),
]);
#Relationship Manager
you need to add this code to your relationship manager
public static function getRecordTitle(?Model $record): ?string
{
return $record->getTranslation('your_title_column', config('filament-translatable-field.locales')[0]);
}
#Credits
#License
The MIT License (MIT). Please see License File for more information.
The author
34ML (https://34ml.com) a software company based in Egypt, We connect businesses and users through innovative mobile apps, built with user experience, performance, and security in mind. Our expertise in AI, machine learning, VR, and AR allows us to create truly transformative experiences.
From the same author
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese