alareqi/filament-translatable-fields

此包为Filament中的alareqi/translatable-fields交互提供了一种方式。

v1.0.3 2024-08-17 10:54 UTC

This package is auto-updated.

Last update: 2024-09-17 11:14:20 UTC


README

Latest Version on Packagist Total Downloads

此包提供了一种将所有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)。有关更多信息,请参阅许可证文件