xxc / nova-translatable
一个用于 spatie/laravel-translatable 的 Laravel Nova 字段。
1.0
2018-10-21 14:34 UTC
Requires
- php: >=7.1.0
- spatie/laravel-translatable: ^2.2
This package is auto-updated.
Last update: 2024-09-23 10:35:59 UTC
README
为使用 spatie/laravel-translatable 包创建的翻译字段添加显示和编辑功能。
它会在详情视图显示如下
并在编辑视图显示如下
安装和使用
您可以使用 composer 需求此包
composer require xxc/nova-translatable
您可以添加以下字段
use xXc\Translatable\Translatable;
Translatable::make('Description'),
确保,您的 Eloquent 模型设置正确
- 首先,您需要添加
Spatie\Translatable\HasTranslations
-特质。 - 接下来,您应该创建一个公开属性
$translatable
,其中包含您希望翻译的所有属性名称的数组。 - 最后,您应该确保所有可翻译属性都设置为数据库中的
text
数据类型。如果您的数据库支持json
列,则使用该类型。
以下是一个准备好的模型示例
use Illuminate\Database\Eloquent\Model; use Spatie\Translatable\HasTranslations; class NewsItem extends Model { use HasTranslations; public $translatable = ['name']; }
定义地区
可以通过配置文件 config/translatable.php
(可以通过 spatie/laravel-translatable 包创建配置文件)通过添加一个 locales
数组来定义地区。
// config/translatable.php
return [
...
'locales' => [
'en' => 'English',
'de' => 'German',
'fr' => 'French',
],
];
或者您可以使用 locales(...)
方法“覆盖”配置地区
Translatable::make('Description')->locales([
'en' => 'English',
'de' => 'German',
]),
单行选项
默认情况下,编辑视图中的输入字段是文本区域。如果您想将其更改为单行输入字段,可以添加 singleLine()
选项
Translatable::make('Description')->locales([...])->singleLine(),
Trix 编辑器
您可以使用 trix()
选项为翻译字段使用 trix 编辑器
Translatable::make('Description')->trix(),
索引视图
默认情况下,在索引视图中显示字段时使用的地区由 app()->getLocale()
确定。要覆盖此设置,您可以使用 indexLocale($locale)
选项
Translatable::make('Description')->indexLocale('de'),
同时切换标签
默认情况下,当您点击其中一个标签时,所有显示的字段的标签都会切换
只读选项
为字段添加了只读选项
Translatable::make('Description')->readOnly(),
字段连接选项
使用 fieldHookup() 方法将触发一个字段的输入值转移到另一个字段。这在生成 sef 网址的别名时非常有帮助。此外,还可以与 resolveUsing() 结合使用,以修改字段的输入值