okaspar / nova-translatable
A Laravel Nova 字段,由 mrmonat/nova-translatable 分支而来,支持从右到左的显示
2.0.2
2019-10-22 11:50 UTC
Requires
- php: >=7.1.0
- spatie/laravel-translatable: ^4.0
README
通过 spatie/laravel-translatable 包添加显示和编辑翻译字段的能力。
在详情视图中的显示如下
在编辑视图中的显示如下
安装和使用
您可以使用 composer 需求此包
composer require okaspar/nova-translatable
您可以添加以下字段
use okaspar\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',
]),
单行选项
默认情况下,编辑视图上的输入字段是 textarea。如果您想将其更改为单行输入字段,可以添加 singleLine()
选项
Translatable::make('Description')->locales([...])->singleLine(),
Trix 编辑器
您可以使用 trix()
选项为翻译字段使用 trix 编辑器
Translatable::make('Description')->trix(),
索引视图
默认情况下,在索引视图中显示字段时使用的区域由 app()->getLocale()
确定。要覆盖此设置,您可以使用 indexLocale($locale)
选项
Translatable::make('Description')->indexLocale('de'),