kraenkvisuell / nova-astrotranslatable
用于 Laravel Nova 的 Astrotomic 可翻译扩展。
v2.1.0
2023-07-10 10:32 UTC
Requires
- php: ^7.4|^8.0
- astrotomic/laravel-translatable: ^11.5
- laravel/nova: ^2.9 || ^3.0
This package is auto-updated.
Last update: 2024-09-10 12:56:21 UTC
README
此 Laravel Nova 字段允许您使任何输入字段与 astrotomic/laravel-translatable 兼容并进行本地化。
它是由 Optimist Digital 的 Optimist Digital 的 Laravel Nova Translatable 字段派生而来,该字段是为 Spatie Laravel Translatable 包定制的 - 因此要向他们表示极大的感谢,99% 的工作是由他们完成的!
要求
laravel/nova: ^2.9 || ^3.0
astrotomic/laravel-translatable: ^11.0
功能
- 支持几乎所有字段(包括第三方字段)
- 自动支持默认验证
- 易于实现,仅需最少代码更改(在支持
astrotomic/laravel-translatable
之后) - 地区标签,用于在不同的地区值之间切换同一字段的值
已知无法工作的字段
Image
和File
限制
- 以下方法不能使用,因为此包内部使用它们
resolveUsing
fillUsing
displayUsing
(最终可能修复)
屏幕截图
安装
首先,设置 astrotomic/laravel-translatable。
使用 Composer 在 Laravel Nova 项目中安装此包
# Install nova-translatable composer require kraenkvisuell/nova-astrotranslatable # Publish configuration (optional, but useful for setting default locales) php artisan vendor:publish --tag="nova-translatable-config"
用法
在任意字段上调用 ->translatable()
,如下所示
// Any Nova field Text::make('Name') ->rules('required', 'min:2') ->translatable(), // Any third-party input field Multiselect::make('Football teams') ->rules('required') ->translatable(), // Optionally pass custom locales on a per-field basis Number::make('Population') ->translatable([ 'en' => 'English', 'et' => 'Estonian', ]),
验证
可以定义特定于地区的验证规则。
为此,请在您的字段上添加 ->rulesFor()
并将 HandlesTranslatable
特性添加到您的 Nova 资源中。
->rulesFor
接受 array|string|callable
地区和 array|callable
规则。
use KraenkVisuell\NovaAstrotranslatable\HandlesTranslatable; class Product extends Resource { use HandlesTranslatable; public function fields(Request $request) { return [ Text::make(__('Name'), 'name') ->sortable() ->translatable() ->rules(['max:255']) ->rulesFor('en', [ 'required', ]) ->rulesFor(['en', 'et'], function ($locale) { return ["unique:products,name->$locale{{resourceId}}"]; }), ]; } }
在此示例中,规则将添加到以下值
max: name.* required: name.en unique: name.en & name.et
配置
您可以在配置文件中定义所有 translatable
字段的默认地区。可以使用以下方法发布配置文件
php artisan vendor:publish --tag="nova-translatable-config"
鸣谢
许可证
此项目是开源软件,许可协议为 MIT 许可证。