2012-12-03 16 views
7

我正在寫一些自定義事件代碼支持SDL Tridion 2011 SP 1-1用於修改上保存或本地化組件的領域,在初始化階段更新組件save事件工作正常,但是相同的代碼在localize事件上不起作用 - 對組件的XML所做的任何更改都將被丟棄。我使用的是非常簡單的代碼:自定義事件的代碼對局部化

var fields = new ItemFields(component.Content, component.Schema); 
var translatedSummary = fields["summary"] as MultiLineTextField; 
translatedSummary.Value = translation; 
component.Content = fields.ToXml(); 

我可以得到改變堅持本地化的唯一方法是,如果我在一個帖子做/提交階段,並做了退房/更新&保存/檢查。這不是很好,因爲執行&需要幾秒鐘,在組件已經被本地化後的一個單獨的事務中。有沒有人知道更高效的方式來做到這一點?

+0

您的代碼在本地化事件發生時觸發嗎? –

+0

是的,Im記錄了很多輸出,包括看起來正確的組件XML。 – richeym

回答

5

我認爲本地化的行爲只會改變項目的藍圖狀態,並給出新版本中項目的版本#1。如果不創建新版本(即版本2),我認爲您無法對該項目進行任何修改。

這似乎是你找到的。我認爲你唯一的選擇(你已經發現)將會在本地化發生後修改並重新保存該項目。