itsimplycom/nova-translatable

一个用于dimsav/laravel-translatable的Laravel Nova字段。

dev-develop 2019-01-29 13:57 UTC

This package is auto-updated.

Last update: 2024-09-29 05:21:24 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License composer.lock StyleCI

此包基于mrmonat/nova-translatableyeswedev/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'),