是否有办法(自动)生成或“复制”网站树以便翻译成另一种语言? 例如通过url命令或类似的东西。
祝你好运, 本尼迪克特
答案 0 :(得分:1)
您现在可能已经找到了解决方案......但是为了将来参考,SilverStripe用户 drx 已经为翻译创建了批处理操作,如下所述:http://silverstripe.org/customising-the-cms/show/7318
答案 1 :(得分:1)
提示:
->createTranslation()
只会在使用以下内容创建的舞台对象上调用此内容时创建实时记录:
$a = Versioned::get_one_by_stage($this->ClassName, 'Stage', $this->ClassName.".ID = ".$this->ID);
要创建舞台和实时页面,您必须:
$translation_GB = $this->createTranslation('en_GB');
$translation_GB->doRestoreToStage();
在两种情况下都会自动保存。
答案 2 :(得分:0)
您不会复制站点树以创建翻译。 SilverStripe支持多语言网站。您可以在此处阅读:http://doc.silverstripe.org/sapphire/en/topics/translation
如果您想要一种自动化方法,那么就没有原生支持,但这并不难。通过URL只需要向你的Page_Controller添加一个函数,或者更好的是,你可以写一个简单的模块,如果它是你将要定期做的事情(只需看看googlesitemaps模块,因为它循环通过您需要的页面)。您可以通过以下方式获取所有页面:
Versioned::get_by_stage('SiteTree', 'Live', $filter);
然后,当您循环播放时,您将创建您的翻译。你也可以通过命令行使用SilverStripe的CMDline实用程序“清酒”来做到这一点:http://doc.silverstripe.org/sapphire/en/topics/commandline