设置: SS 3.1.13,Translatable 2.0.8和TranslatableDataObject dev-master。
我有两个DataObject类:"Facility“($has_one)和"FacilityType”($has_many),我选择在ModelAdmin中管理它们(因为它们是站点所有者的全局属性)。然而,尽管仔细阅读了设置说明here,我还是无法让TranslatableDataObject扩展真正为它们启用翻译。
这是我的_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
class FacilityCategory extends DataObject {
private static $db = array(
'Title' => 'Varchar'
);
private static $has_many = array(
'Facilities' => 'Facility.FacilityCategory'
);
public function getCMSFields(){
$fields = FieldList::create(
TextField::create('Title')
);
return $fields;
}
}
class FacilityCategoryAdmin extends ModelAdmin {
private static $menu_title = 'Facility Categories';
private static $url_segment = 'facility-categories';
private static $managed_models = array(
'FacilityCategory'
);
}Facility.php
class Facility extends DataObject {
private static $db = array(
'Title' => 'Varchar',
);
private static $has_one = array(
'Category' => 'FacilityCategory'
);
private static $summary_fields = array(
'Title' => 'Name',
'Category.Title' => 'Type'
);
public function getCMSFields(){
$fields = FieldList::create(
TextField::create('Title'),
DropdownField::create('CategoryID', 'Category')
->setSource(FacilityCategory::get()->map()->toArray())
->setEmptyString('-- select a category --')
);
return $fields;
}
}
class FacilityAdmin extends ModelAdmin {
private static $menu_title = 'Facilities';
private static $url_segment = 'facilities';
private static $managed_models = array(
'Facility'
);
}发布于 2015-08-19 20:54:52
我已经帮你调查过了。
我已经安装了一个新的SS站点,使用:
composer create-project silverstripe/installer然后我添加了translatable:
composer require silverstripe/translatable ~2.0.8我的_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');我已经创建了一个ModelAdmin。
我在浏览器中导航到/dev/build?flush=all
然后我导航到内容管理系统中的ModelAdmin,我看到了以下内容:

和

我认为部分问题是你同时使用了两个可翻译的模块,你只需要一个。
除此之外,我不知道为什么你看不到可翻译标签。你有收到任何PHP错误吗?刷新或完成了/dev/build吗?
https://stackoverflow.com/questions/32033873
复制相似问题