ngiraud / nova-translatable-v2
Laravel Nova 的一个可翻译扩展。灵感来自 optimistdigital/nova-translatable
2.0.0
2023-03-20 10:33 UTC
Requires
- php: ^8.0
- laravel/nova: ^3.0
- spatie/laravel-translatable: ^6.0
This package is auto-updated.
Last update: 2024-09-20 13:49:40 UTC
README
此 Laravel Nova 允许您使用 spatie/laravel-translatable
包使任何输入字段兼容并本地化。
此包受到 optimistdigital/nova-translatable 的启发。
要求
laravel/nova: ^3.0
spatie/laravel-translatable: ^4.0
您首先需要设置 spatie/laravel-translatable 包。
安装
该包可以通过 composer 安装
composer require ngiraud/nova-translatable-v2
该包将自动注册服务提供者。
您可以发布配置文件以使用自定义区域设置。
php artisan vendor:publish --tag="nova-translatable-config"
这是已发布配置文件的内容
return [ /** * the locales which the `translatable` wrapper will use by default. * * can be a: * - keyed array (['en' => 'english]) * - callable that returns a keyed array */ 'locales' => ['en' => 'English'], ];
用法
只需在 Nova 字段上调用 ->translatable()
Text::make('Name') ->rules('required', 'min:2') ->translatable()
可选地,您可以传递自定义区域设置
Number::make('Population') ->translatable([ 'en' => 'English', 'et' => 'Estonian', ])
验证
您可以添加针对单个区域的验证规则。
为此,在您的字段上添加 ->rulesFor()
和在 Nova 资源上添加 HasTranslatable
特性
class Product extends Resource { use \NGiraud\NovaTranslatable\HasTranslatable; public function fields(Request $request) { return [ ID::make()->sortable(), Text::make(__('Name'), 'name') ->sortable() ->translatable() ->rules(['max:255']) ->rulesFor('fr', [ 'required', 'unique:products,sku->fr,{{resourceId}}' ]) } }
在此示例中,将应用 max
规则于 name.*
,并将 required
规则应用于 name.fr
。
待办事项
- 向包中添加测试
变更日志
请参阅 CHANGELOG 了解有关最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全问题,请通过电子邮件 contact@ngiraud.me 而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。