Alfresco Share中的多语言文档? [英] Multilingual documents in Alfresco Share?

查看:195
本文介绍了Alfresco Share中的多语言文档?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

Alfresco具有它未在共享用户界面中实现.

Alfresco has a MultilingualContentService but unfortunately it is not implemented in the Share UI.

那么,如何处理共享"中的多种内容?
(对于每个文档,使用不同语言的多个文件)

So, how to handle mutilingual content in Share?
(for each document, several files in different languages)

有解决方案吗?
如果我别无选择,只能发展,你会怎么做?

Is there some solution ready?
If I have no choice but to develop, how would you do it?

推荐答案

将其包装在可从您的Web脚本访问的对象中. 下面是一个例子,它已经做到了:

Wrap it in an object that's accessible from your webscripts. Here's an example which already does it:

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:

The Spring bean:

<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>

最后,像这样使用它:

var multilingualArticle = multilingual.multilingualContent("/myarticle", "es", companyhome);

这篇关于Alfresco Share中的多语言文档?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆