首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Alfresco中的多语种文档共享?

Alfresco中的多语种文档共享?
EN

Stack Overflow用户
提问于 2012-01-13 20:12:41
回答 2查看 803关注 0票数 0

但不幸的是,it is not implemented in the Share UI有一个MultilingualContentService

那么,如何在分享中处理多语言内容呢?

(对于每个文档,有几个不同语言的文件)

准备好解决方案了吗?

如果我别无选择,只能开发,你会怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-23 21:03:08

将其包装在一个可从您的Wrap脚本访问的对象中。已经做到这一点的Here's an example

代码语言:javascript
运行
复制
package com.someco.web.jscript;

import org.alfresco.repo.jscript.ScriptNode;
import org.alfresco.repo.processor.BaseProcessorExtension;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.ml.MultilingualContentService;
import org.alfresco.service.cmr.repository.NodeRef;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import java.util.Locale;

public final class MultilingualScript extends BaseProcessorExtension
{
    private static final Log logger = LogFactory.getLog(MultilingualScript.class);

   private MultilingualContentService multilingualContentService;
   private ServiceRegistry serviceRegistry;

   public MultilingualScript()
   {
      if (logger.isDebugEnabled()) {
         logger.debug("MultilingualScript Constructor Called");
      }
   }   

   //path = path of the original document
   //language = required language
   //returns the noderef for the translation content for the given language   
   public ScriptNode multilingualContent(String path, String language, ScriptNode companyHome) {
      if (logger.isDebugEnabled()) {
         logger.debug("MultilingualScript - parameters - " + path + " , " + language);
      }
      NodeRef nodeRef =  new ScriptNode(companyHome.getNodeRef(), serviceRegistry)
         .childByNamePath(path).getNodeRef();      
      nodeRef = multilingualContentService.getTranslationForLocale(nodeRef, new Locale(language) );      
      return new ScriptNode(nodeRef, serviceRegistry);
   }

   public MultilingualContentService getMultilingualContentService() {
      return multilingualContentService;
   }

   public void setMultilingualContentService(
         MultilingualContentService multilingualContentService) {
      this.multilingualContentService = multilingualContentService;
   }

   public ServiceRegistry getServiceRegistry() {
      return serviceRegistry;
   }

   public void setServiceRegistry(ServiceRegistry serviceRegistry) {
      this.serviceRegistry = serviceRegistry;
   }
}

Spring bean:

代码语言:javascript
运行
复制
<bean id="multilingualScript" parent="baseJavaScriptExtension" class="com.someco.web.jscript.MultilingualScript">
       <property name="extensionName">
           <value>multilingual</value>
       </property>
      <property name="serviceRegistry">
         <ref bean="ServiceRegistry" />
      </property>
      <property name="multilingualContentService">
         <ref bean="MultilingualContentService" />
      </property>
   </bean>

最后,像这样使用它:

代码语言:javascript
运行
复制
var multilingualArticle = multilingual.multilingualContent("/myarticle", "es", companyhome);
票数 2
EN

Stack Overflow用户

发布于 2012-01-19 00:35:53

我想显示实际内容应该不难,因为每个内容都有自己的uuid。困难在于创建一个UI来上传不同的语言。

我要做的第一件事是分析“上传新版本”操作是如何工作的。因此,我们需要一个自定义操作来上传不同的语言文件,并弹出一个窗口来选择是哪种语言。所以“上传新版本”的功能几乎完全相同,你可以浏览到一个文件并填写版本控制注释。

我不知道资源管理器中有没有网页脚本可以用来存储多语言内容,如果没有,你应该开发那些。

其次是创建一个webscript来返回给你所有的多语言文件(和上面一样,可能不存在)

然后定义一个块,比如工作流或版本块,这样文件的链接就会出现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8850401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档