我正在尝试使背包中的多语言功能正常工作。我已经按照文档中的所有步骤进行操作。我可以用我定义的语言添加值。除默认语言外,我还可以编辑这些值。我收到未定义的索引“ nl”错误。
定义的语言如下:nl(荷兰语),fr(法语),en(英语)。
我尝试更改默认语言,看看应用程序如何对此做出反应,但是我在主要(在config / app.php中定义)语言上也遇到了同样的问题。
我还将laravel-translateable降级为v 3.x,因为Backpack changelog没有提到对该软件包的v 4.x的任何支持。现在我又回到了v4,因为它没有什么区别。
当前在我的作曲家文件中有以下内容: “背包/底座”:“ ^ 0.9.7”, “ backpack / crud”:“ ^ 3.3.0”, “背包/权限管理器”:“ ^ 2.1”, “背包/设置”:“ ^ 2.0”, “干预/图像”:“ ^ 2.4”, “ laravel / framework”:“ 5.7。*”, “ spatie / laravel-translatable”:“ ^ 4.0”
我的原始配置:
'show_translatable_field_icon' => true,
'translatable_field_icon_position' => 'right',
'locales' => [
'nl',
'fr',
'en'
],
我要将翻译应用于的模式
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Backpack\CRUD\CrudTrait;
use Backpack\CRUD\ModelTraits\SpatieTranslatable\HasTranslations;
class Supplier extends Model
{
use CrudTrait;
use HasTranslations;
/*
|--------------------------------------------------------------------------
| GLOBAL VARIABLES
|--------------------------------------------------------------------------
*/
protected $table = 'suppliers';
protected $fillable = [
'name'
];
protected $translatable = ['name'];
表中的值如下所示: {“ nl”:“ Leverancier x nl”,“ 1”:“ Leverancier x fr”}
我还需要能够编辑默认语言。至于现在,我看不出问题出在哪里。
答案 0 :(得分:0)
如果有人遇到相同的问题... 逻辑上这是行不通的。
您应该这样声明当地人:
'locales' => [
'nl' => 'Dutch',
'fr' => 'French',
'en' => 'English'
],