PHP code example of abdulmajeed-jamaan / filament-translatable-tabs
1. Go to this page and download the library: Download abdulmajeed-jamaan/filament-translatable-tabs library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
abdulmajeed-jamaan / filament-translatable-tabs example snippets
TranslatableTabs::configureUsing(function (TranslatableTabs $component) {
$component
// locales labels
->localesLabels([
'ar' => __('locales.ar'),
'en' => __('locales.en')
])
// default locales
->locales(['ar', 'en']);
});
// Single Field
TextInput::make('title')
->translatableTabs();
// Multiple Fields
TranslatableTabs::make('anyLabel')
->schema([
Forms\Components\TextInput::make("title"),
Forms\Components\Textarea::make("content")
]);
use AbdulmajeedJamaan\FilamentTranslatableTabs\TranslatableTabs;
use AbdulmajeedJamaan\FilamentTranslatableTabs\TranslatableTab;
use Filament\Forms\Components\Field;
$customizeTab = function (TranslatableTab $component, string $locale) {
// ...
};
$customizeField = function (Field $component, string $locale) {
// ...
};
// Globally in boot method
TranslatableTabs::configureUsing(function (TranslatableTabs $component) {
$component
->modifyTabsUsing($customizeTab)
->modifyFieldsUsing($customizeField);
});
// Single Field
TextInput::make()
->translatableTabs()
->modifyTabsUsing($customizeTab)
->modifyFieldsUsing($customizeField)
// Multiple Fields
TranslatableTabs::make('anyLabel')
->modifyTabsUsing($customizeTab)
->modifyFieldsUsing($customizeField)
->schema([
Forms\Components\TextInput::make("title"),
Forms\Components\Textarea::make("content")
]);
$localesFn = function () {
return ['ar', 'en'];
// also you can override label using:
return [
'ar' => 'Arabic',
'en' => 'English'
]
}
// Single Field
TextInput::make('title')
->translatableTabs()
->locales($localesFn);
// Multiple Fields
TranslatableTabs::make('anyLabel')
->locales($localesFn)
->schema([
Forms\Components\TextInput::make("title"),
Forms\Components\Textarea::make("content")
]);
TranslatableTabs::configureUsing(function (TranslatableTabs $component) {
$component
->addDirectionByLocale()
->addEmptyBadgeWhenAllFieldsAreEmpty(emptyLabel: __('locales.empty'))
->addSetActiveTabThatHasValue();
});