itsimplycom / nova-translatable
一个用于dimsav/laravel-translatable的Laravel Nova字段。
dev-develop
2019-01-29 13:57 UTC
Requires
- php: >=7.1.0
- dimsav/laravel-translatable: ^9.0
This package is auto-updated.
Last update: 2024-09-29 05:21:24 UTC
README
此包基于mrmonat/nova-translatable 和 yeswedev/nova-translatable。
增加了使用dimsav/laravel-translatable包创建的翻译字段显示和编辑功能。
在详情视图中显示如下
和在编辑视图中显示如下
安装和使用
您可以使用composer要求此包
composer require yeswedev/nova-translatable
您可以添加以下字段
use Its\Nova\Translatable\Translatable; Translatable::make('Description'),
确保您的Eloquent模型设置正确
- 首先,您需要添加
Dimsav\Translatable\Translatable
-trait。 - 接下来,您应该创建一个公开属性
$translatedAttributes
,它包含所有您希望设置为可翻译的属性名称的数组。 - 最后,您应该确保所有可翻译属性都设置为数据库中的
text
数据类型。如果您的数据库支持json
列,请使用该列。
以下是一个准备好的模型示例
use Illuminate\Database\Eloquent\Model; use Dimsav\Translatable\Translatable; class NewsItem extends Model { use Translatable; public $translatedAttributes = ['name']; }
定义区域
可以通过添加locales
数组通过配置文件config/translatable.php
来定义区域
// 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'),