whitecube / nova-translatable
此软件包已被废弃,不再维护。作者建议使用 https://framagit.org/yeswedev/ywd_nova-translatable 软件包。
Laravel Nova 字段,用于 dimsav/laravel-translatable。
dev-master
2018-10-25 15:24 UTC
Requires
- php: >=7.1.0
- dimsav/laravel-translatable: ^9.0
This package is auto-updated.
Last update: 2019-02-26 15:18:40 UTC
README
此软件包是 yeswedev/ywd_nova-translatable 的分支,而后者基于 mrmonat/nova-translatable。
增加了使用 dimsav/laravel-translatable 软件包创建的可翻译字段的显示和编辑功能。
在详情视图中将显示如下
在编辑视图中将显示如下
安装和用法
您可以使用 composer 需求此软件包
composer require whitecube/nova-translatable
您可以添加以下字段
use Whitecube\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']; }
定义区域
可以通过配置文件 config/translatable.php
中的 locales
数组来定义区域
// config/translatable.php return [ ... 'locales' => [ 'en', 'de', 'fr', ], ];
或者您可以使用 locales(...)
方法“覆盖”配置区域
Translatable::make('Description')->locales([ 'en' => 'English', 'de' => 'German', ]),
单行选项
默认情况下,编辑视图中的输入字段是文本区域。如果您想将其更改为单行输入字段,可以添加 singleLine()
选项
Translatable::make('Description')->locales([...])->singleLine(),
Markdown 编辑器
您可以通过使用 md()
选项来为您的翻译字段使用 SimpleMDE Markdown 编辑器
Translatable::make('Description')->md(),
Trix 编辑器
您可以通过使用 trix()
选项来为您的翻译字段使用 trix 编辑器
Translatable::make('Description')->trix(),
索引视图
默认情况下,在索引视图中显示字段时使用的区域由 app()->getLocale()
确定。要覆盖此设置,您可以使用 indexLocale($locale)
选项
Translatable::make('Description')->indexLocale('de'),