別の言語に翻訳するためにサイトツリーを(自動的に)生成または「複製」する方法はありますか?たとえば、urlコマンドなどを使用します。
よろしく、ベネディクト
別の言語に翻訳するためにサイトツリーを(自動的に)生成または「複製」する方法はありますか?たとえば、urlコマンドなどを使用します。
よろしく、ベネディクト
あなたはおそらくすでに解決策を見つけているでしょう...しかし、今後の参考のために、SilverStripeユーザーのdrxは、ここで議論されているように、翻訳のためのバッチアクションを作成しました: http://silverstripe.org/customising-the-cms/show/7318
ヒント:
->createTranslation()
以下で作成されたステージオブジェクトでこれを呼び出した場合でも、ライブレコードのみを作成します。
$a = Versioned::get_one_by_stage($this->ClassName, 'Stage', $this->ClassName.".ID = ".$this->ID);
ステージとライブページを作成するには、次のことを行う必要があります。
$translation_GB = $this->createTranslation('en_GB');
$translation_GB->doRestoreToStage();
どちらの場合も、保存は自動的に行われます。
サイト ツリーを複製して翻訳を作成することはありません。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