Internationalization 数据对象+;TranslateableDataObject+;模型管理员

Internationalization 数据对象+;TranslateableDataObject+;模型管理员,internationalization,silverstripe,data-objects,modeladmin,Internationalization,Silverstripe,Data Objects,Modeladmin,设置:SS3.1.13、可翻译2.0.8和可翻译数据对象开发主机 我有两个DataObject类:“Facility”($has_one)和“FacilityType”($has_many),我选择在ModelAdmin中管理它们(因为它们是站点所有者的全局属性)。然而,尽管仔细阅读了安装说明,我无法让TranslateableDataObject扩展为它们启用转换 下面是我的_config.php: // Set the site locale i18n::set_locale('en_US'

设置:SS3.1.13、可翻译2.0.8和可翻译数据对象开发主机

我有两个DataObject类:“Facility”($has_one)和“FacilityType”($has_many),我选择在ModelAdmin中管理它们(因为它们是站点所有者的全局属性)。然而,尽管仔细阅读了安装说明,我无法让TranslateableDataObject扩展为它们启用转换

下面是我的_config.php:

// Set the site locale
i18n::set_locale('en_US');

SiteConfig::add_extension('Translatable');

// Set allowed locales
Translatable::set_allowed_locales(array('en_US', 'pl_PL'));
TranslatableDataObject::set_locales(array('en_US', 'pl_PL'));
Facility::add_extension("Translatable");
Facility::add_extension("TranslatableDataObject"); // tried "TranslatableDataObject('Title')" as well
FacilityCategory::add_extension("Translatable");
FacilityCategory::add_extension("TranslatableDataObject");
是否有人可以确认此设置是否适用于我

FacilityCategory.php Facility.php
我已经为你调查过了

我已使用以下工具安装了一个新的SS站点:

composer create-project silverstripe/installer
然后我添加了可翻译的:

composer require silverstripe/translatable ~2.0.8
My_config.php如下所示:

<?php

global $project;
$project = 'mysite';

global $database;
$database = '';

require_once('conf/ConfigureFromEnv.php');

// Set the site locale
i18n::set_locale('en_GB');
Translatable::set_default_locale('en_GB');
MyObj::add_extension('Translatable');

您应该向每个数据对象添加可翻译或可翻译的数据对象。谢谢@wmk,但是注释掉对数据对象的可翻译调用没有帮助。这仅仅是一个旁注,还是你认为它肯定会起作用?嗯,这只是一个旁注。要使其正常工作,您需要与我们共享更多代码,例如您的ModelAdmin、DataObjects的getCMSFields方法等…@wmk-Sure。我用你问的代码更新了问题(只将
FacilityType
重命名为
FacilityCategory
)。我在一个新的设置中检查了这一点,但它不适用于我的类的bot。只要对象之间没有关系,就会显示转换(只留下两个类中的
$db
属性,devbuild/flush和translation选项卡)。然而,它仍然没有完全工作,因为“创建”按钮已失效-它没有在单击时创建翻译。
composer require silverstripe/translatable ~2.0.8
<?php

global $project;
$project = 'mysite';

global $database;
$database = '';

require_once('conf/ConfigureFromEnv.php');

// Set the site locale
i18n::set_locale('en_GB');
Translatable::set_default_locale('en_GB');
MyObj::add_extension('Translatable');