我收到的要求是使用Alfresco内容管理模拟SQL Server数据库上可用的一些现有内容,因此,我创建了我的新内容模型,它似乎工作正常。但是我对多语言有一个问题:我知道Alfresco中有一个节点可以添加多种语言(如何使用Java进行大量加载?)但是,我还使用了一些需要翻译的方面。
在这种情况下你通常做什么?我要按照以下步骤操作:
这是对的吗?如何以编程方式(Java)创建节点多语言,如何使用方面添加新的翻译内容?我看了一下Alfresco文档,但是我没有找到它,你能帮我找一些文档或教程吗?
更新:
我正在尝试制作内容多元化:
void makeTranslation(Reference contentNodeRef, Locale locale) throws AlfrescoRuntimeException, Exception
{
try {
NodeRef nodeRef = new NodeRef("workspace://SpacesStore/" + contentNodeRef.getUuid());
MultilingualContentServiceImpl multilingualContentServiceImpl = new MultilingualContentServiceImpl();
multilingualContentServiceImpl.makeTranslation(nodeRef, locale);
}
catch (org.alfresco.error.AlfrescoRuntimeException ex) {
throw new AlfrescoRuntimeException(ex.getMessage());
}
catch (Exception ex) {
throw new Exception(ex.getMessage());
}
}
但是,makeTranslation引发了一个nullPoint异常,因为MultilingualContentServiceImpl未正确初始化。有什么建议如何初始化它?我要用春天但是,怎么样?
任何建议或回复都会非常有帮助!
谢谢,
安德烈
答案 0 :(得分:2)
您可以使用MultilingualContentService添加翻译。但!我猜您的属性应该是d:mltext(如cm:title和cm:description),以支持多语言内容。
这意味着如果您使用带有英语的浏览器访问露天,您将看到与浏览器中使用德语设置的人不同的描述。这可能有点令人困惑,因为在Share中有(是?)没有标识符属性是多语言的。
如果您希望您的翻译出现在任何地方,无论人们使用什么样的语言,那么更好的方法是定义一些方面(例如ex:translatable),其中包含您需要翻译的多个属性。然后,您可以以编程方式(使用Java或JavaScript)使用搜索服务来查找所需的节点并将方面添加到它们中。最后,然后将该方面的属性(转换)添加到节点。
我希望这有助于清除一些事情......:)