PHP code example of ezappslab / filament-translatable
1. Go to this page and download the library: Download ezappslab/filament-translatable 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/ */
ezappslab / filament-translatable example snippets
use Filament\Panel;
use Filament\PanelProvider;
use Infinity\FilamentTranslatable\Enums\Locale;
use Infinity\FilamentTranslatable\FilamentTranslatablePlugin;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->plugin(
FilamentTranslatablePlugin::make()
->locales([
Locale::English,
Locale::German,
])
->fallbackLocale(Locale::English)
);
}
}
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Spatie\Translatable\HasTranslations;
class Product extends Model
{
use HasTranslations;
public array $translatable = [
'name',
'description',
];
protected $fillable = [
'name',
'description',
'is_active',
];
protected function casts(): array
{
return [
'name' => 'array',
'description' => 'array',
'is_active' => 'boolean',
];
}
}
namespace App\Filament\Resources\ProductResource\Pages;
use App\Filament\Resources\ProductResource;
use Filament\Resources\Pages\ListRecords;
use Infinity\FilamentTranslatable\Actions\SelectLocaleAction;
use Infinity\FilamentTranslatable\Resources\Pages\Concerns\HasTranslatableListRecords;
class ListProducts extends ListRecords
{
use HasTranslatableListRecords;
protected static string $resource = ProductResource::class;
protected function getHeaderActions(): array
{
return [
SelectLocaleAction::make(),
];
}
}
namespace App\Filament\Resources\ProductResource\Pages;
use App\Filament\Resources\ProductResource;
use Filament\Resources\Pages\CreateRecord;
use Infinity\FilamentTranslatable\Actions\SelectLocaleAction;
use Infinity\FilamentTranslatable\Resources\Pages\Concerns\HasTranslatableCreateRecord;
class CreateProduct extends CreateRecord
{
use HasTranslatableCreateRecord;
protected static string $resource = ProductResource::class;
protected function getHeaderActions(): array
{
return [
SelectLocaleAction::make(),
];
}
}
namespace App\Filament\Resources\ProductResource\Pages;
use App\Filament\Resources\ProductResource;
use Filament\Resources\Pages\EditRecord;
use Infinity\FilamentTranslatable\Actions\SelectLocaleAction;
use Infinity\FilamentTranslatable\Resources\Pages\Concerns\HasTranslatableEditRecord;
class EditProduct extends EditRecord
{
use HasTranslatableEditRecord;
protected static string $resource = ProductResource::class;
protected function getHeaderActions(): array
{
return [
SelectLocaleAction::make(),
];
}
}
namespace App\Filament\Resources\ProductResource\Pages;
use App\Filament\Resources\ProductResource;
use Filament\Resources\Pages\ViewRecord;
use Infinity\FilamentTranslatable\Actions\SelectLocaleAction;
use Infinity\FilamentTranslatable\Resources\Pages\Concerns\HasTranslatableViewRecord;
class ViewProduct extends ViewRecord
{
use HasTranslatableViewRecord;
protected static string $resource = ProductResource::class;
protected function getHeaderActions(): array
{
return [
SelectLocaleAction::make(),
];
}
}
namespace App\Filament\Resources;
use App\Filament\Resources\ProductResource\Pages;
use App\Models\Product;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Filament\Resources\Resource;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class ProductResource extends Resource
{
protected static ?string $model = Product::class;
public static function form(Schema $schema): Schema
{
return $schema->components([
TextInput::make('name')
->roduct::route('/{record}'),
'edit' => Pages\EditProduct::route('/{record}/edit'),
];
}
}
use Filament\Forms\Components\TextInput;
use Filament\Forms\Components\Toggle;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Schema;
public static function form(Schema $schema): Schema
{
return $schema->components([
TextInput::make('name')
->ke('biography')
->
namespace App\Filament\Resources\UserResource\RelationManagers;
use Filament\Actions\CreateAction;
use Filament\Actions\EditAction;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Schemas\Schema;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Infinity\FilamentTranslatable\Actions\SelectLocaleAction;
use Infinity\FilamentTranslatable\Resources\RelationManagers\Concerns\HasTranslatableRelationManager;
class ProductsRelationManager extends RelationManager
{
use HasTranslatableRelationManager;
protected static string $relationship = 'products';
public function form(Schema $schema): Schema
{
return $schema->components([
TextInput::make('name')
->
bash
php artisan filament-translatable:install
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.