nevadskiy / nova-translatable
允许您在Laravel Nova中添加可翻译字段。
0.1.0
2023-04-17 11:58 UTC
Requires
- php: ^7.3|^8.0
- laravel/nova: ~3.0|~4.0
This package is auto-updated.
Last update: 2024-09-17 15:20:42 UTC
README
此软件包允许您为Laravel Nova资源添加可翻译字段。
它旨在与主要nevadskiy/laravel-translatable软件包协同工作,该软件包负责管理如何在数据库中存储翻译。
🔌 安装
composer require nevadskiy/nova-translatable
同时确保安装了主要nevadskiy/laravel-translatable软件包。
⚙ 示例
以下代码展示了如何使用此软件包使Nova资源可翻译。
<?php namespace App\Nova; use App\Models\Book as BookModel; use Nevadskiy\Nova\Translatable\PerformsTranslatableQueries; use Nevadskiy\Nova\Translatable\Fields\Text; use Nevadskiy\Nova\Translatable\Fields\Textarea; class Book extends Resource { use PerformsTranslatableQueries; public static $model = BookModel::class; public static $title = 'name'; public static $search = ['id', 'name']; public function fields(Request $request): array { return [ ID::make() ->sortable(), Text::make('Name') ->sortable() ->translatable() ->requiredOnlyFallbackLocale() ->showOnIndexOnlyFallbackLocale() Textarea::make('Description') ->translatable() ->requiredOnlyFallbackLocale(), ]; } }
📄 文档
定义区域
要指定全局区域列表,您可以将以下代码添加到AppServiceProvider中。
use Nevadskiy\Nova\Translatable\Localizer; public function boot(): void { Localizer::locales(['en', 'uk', 'pl', 'cz']); }
自定义字段标签(名称)
默认情况下,可翻译字段的名称格式如下:标题(en)。
要自定义字段的名称显示逻辑,您可以在AppServiceProvider中全局指定自定义函数。
use Nevadskiy\Nova\Translatable\Fields; public function boot(): void { Localizer::localizeNameUsing(fn (string $name, string $locale) => "{$name} ({$locale})"); }
搜索和排序
如果您想按可翻译字段搜索或排序模型,请将PerformsTranslatableQueries特质添加到资源中。
<?php namespace App\Nova; use App\Models\Book as BookModel; use Nevadskiy\Nova\Translatable\PerformsTranslatableQueries; class Book extends Resource { use PerformsTranslatableQueries; }
📑 更新日志
请参阅更新日志以获取有关最近更改的更多信息。
☕ 贡献
欢迎贡献,并将得到充分认可。
我们通过拉取请求接受贡献。
🔓 安全性
如果您发现任何与安全性相关的问题,请通过电子邮件联系我,而不是使用问题跟踪器。
📜 许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证。