預先填入翻譯目標語言的自訂勾點
PrePopulateTargetLanguagesHook用來在「建立翻譯封裝」對話方塊中預先填入目標語言的清單。
從勾點傳回的語言集必須對於翻譯封裝的根物件而言是合法的。
例如,如果傳回語言,但是使用者不具備該語言的物件庫之中的角色,語言將在「可用目標語言」清單下以刪除線的方式顯示為刪除,而且不會在「所選目標語言」清單中預先填入。
或者,如果目標語言無效或不在「支援的語言」偏好設定中,不會在「所選目標語言」清單中預先填入無效的目標語言。應用伺服器會顯示無效語言的錯誤訊息。
在「建立翻譯封裝」 中填入的可用與所選目標語言組合可手動隨意排列,以符合翻譯需求。
此勾點的實行需要您指定 PrePopulateTargetLanguagesHook 內容中的勾點名稱。
介面
package com.ptc.tml.validation;
import java.util.Set;
import wt.fc.Persistable;
import wt.util.WTException;
/**
* This interface provides a way to preselect the target languages to be displayed under
* 'Selected Target Languages' section in Create translation package dialog.
*
* <BR>
* <BR>
* <B>Supported API: </B>true <BR>
* <BR>
* <B>Extendable: </B>false
*/
public interface PrePopulateTargetLanguagesHook {
public Set<String> getSelectedTargetLanguageCodes(Persistable p) throws WTException;
}
另請參閱 SamplePrePopulateTargetLanguagesHookImpl.java,此實行範例旨在為使用者提供參考。
/**
* Sample implementation for the {@link PrePopulateTargetLanguagesHook}.
* There are 3 valid language codes 'ar', 'bg' and 'cs' mentioned and one language code 'pg' is invalid code.
*/
public class SamplePrePopulateTargetLanguagesHookImpl implements PrePopulateTargetLanguagesHook{
@Override
public Set<String> getSelectedTargetLanguageCodes(Persistable p) {
Set<String> result = new HashSet<>();
result.add("ar");
result.add("bg");
result.add("cs");
result.add("pg");
return result;
}
}
登錄
1. 使用 xconfmanager 公用程式來編輯 translation.service.properties.xconf。您也可以在位於 <Windchill>/codebase/com/ptc/core/components 的 components.service.properties 檔案中予以註冊。
2. 新增下列內容:
<Service context="default"
name="com.ptc.tml.validation.PrePopulateTargetLanguagesHook">
<Option requestor="java.lang.Object"
serviceClass="com.ptc.tml.sample.YourSamplePrePopulateTargetLanguagesHookImplClassName"
selector="null"/>
</Service>
3. 儲存檔案。
4. 使用 xconfmanager 公用程式傳播變更。從 <Windchill>\bin 目錄中輸入下列指令:
xconfmanager -pF
5. 重新啟動應用伺服器。