2

別の言語に翻訳するためにサイトツリーを(自動的に)生成または「複製」する方法はありますか?たとえば、urlコマンドなどを使用します。

よろしく、ベネディクト

4

3 に答える 3

1

あなたはおそらくすでに解決策を見つけているでしょう...しかし、今後の参考のために、SilverStripeユーザーのdrxは、ここで議論されているように、翻訳のためのバッチアクションを作成しました: http://silverstripe.org/customising-the-cms/show/7318

于 2011-04-12T04:43:50.920 に答える
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();

どちらの場合も、保存は自動的に行われます。

于 2011-08-04T17:09:56.310 に答える
0

サイト ツリーを複製して翻訳を作成することはありません。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

于 2011-02-14T23:46:58.893 に答える