有没有办法(自动)生成或“复制”站点树以翻译成另一种语言?例如通过 url 命令或类似的东西。
最好的问候, 本尼迪克特
有没有办法(自动)生成或“复制”站点树以翻译成另一种语言?例如通过 url 命令或类似的东西。
最好的问候, 本尼迪克特
Tip:
->createTranslation()
only creates a live-record even if you call this on a stage-object created with:
$a = Versioned::get_one_by_stage($this->ClassName, 'Stage', $this->ClassName.".ID = ".$this->ID);
To create Stage and Live-Pages you have to:
$translation_GB = $this->createTranslation('en_GB');
$translation_GB->doRestoreToStage();
Saving is done automatically in both cases.
您现在可能已经找到了解决方案......但为了将来参考,SilverStripe 用户drx创建了一个翻译批处理操作,如下所述:http: //silverstripe.org/customising-the-cms/show/7318
您不会复制站点树来创建翻译。SilverStripe 支持多语言网站。你可以在这里阅读:http: //doc.silverstripe.org/sapphire/en/topics/translation
如果您想要一种自动化的方法,则没有本机支持,但这并不难。通过 URL 只需向您的 Page_Controller 添加一个函数,或者更好的是,您可以编写一个简单的模块,如果它是您要经常做的事情(只需查看 googlesitemaps 模块的示例,因为它循环通过您需要的页面)。您可以通过调用获取所有页面:
Versioned::get_by_stage('SiteTree', 'Live', $filter);
然后你会在循环时创建你的翻译。您也可以使用 SilverStripe 的 CMDline 实用程序“sake”通过命令行执行此操作:http: //doc.silverstripe.org/sapphire/en/topics/commandline