自定义挂接以预先填充翻译目标语言
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 文件中。有关使用 xconfmanager 实用程序的详细信息,请参阅
关于 xconfmanager 实用程序。
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. 重新启动方法服务器。