alareqi / filament-translatable-fields
此包为Filament中的alareqi/translatable-fields交互提供了一种方式。
v1.0.3
2024-08-17 10:54 UTC
Requires
- php: ^8.0
- filament/filament: ^3.2
- laravel/framework: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.16
- spatie/laravel-translatable: ^6.6
README
此包提供了一种将所有Filament字段变为可翻译的方法。它使用背景中的spatie/laravel-translatable
包。
安装
您可以通过composer安装此包
composer require alareqi/filament-translatable-fields
将插件添加到您希望使用的Filament面板
use Alareqi\FilamentTranslatableFields\FilamentTranslatableFieldsPlugin; class FilamentPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel // ... ->plugins([ FilamentTranslatableFieldsPlugin::make(), ]); } }
您可以指定支持的本地化
use Alareqi\FilamentTranslatableFields\FilamentTranslatableFieldsPlugin; class FilamentPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel // ... ->plugins([ FilamentTranslatableFieldsPlugin::make() ->supportedLocales([ 'en' => 'English', 'ar' => 'العربية', ]), ]); } }
默认情况下,如果您未指定本地化,则包将使用app.locale
。
用法
您只需将->translatable()
添加到任何字段即可使其可翻译。
use Filament\Forms\Components\TextInput; TextInput::make('name') ->label('Name') ->translatable(),
覆盖本地化
如果您想在特定字段上覆盖本地化,可以通过->translatable()
函数的第二个参数设置本地化。
use Filament\Forms\Components\TextInput; TextInput::make('name') ->label('Name') ->translatable(true, ['en' => 'English', 'ar' => 'العربية', 'fr' => 'French']),
重要信息
此包将用Filament\Forms\Components\Tabs
组件替换原始字段。此组件将为每个本地化渲染原始字段。
链式方法
更改日志
有关最近更改的更多信息,请参阅CHANGELOG。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。