2012-02-13 97 views
0

我收到的要求是使用Alfresco內容管理爲SQL Server數據庫上可用的一些現有內容建模,所以我創建了我的新內容模型,它似乎工作正常。但是我遇到了一個多語言的問題:我知道在Alfresco中,一個節點可能會添加多種語言(我怎麼能用Java來做大量的加載?),但是我也使用了一些需要翻譯的方面。在Alfresco中編程多語言內容

你通常在這種情況下做什麼?我thoug遵循此步驟:

  • 創建工程內容,並添加方面
  • 創造新的孩子translted並添加方面

它是正確的嗎?如何以編程方式創建節點多語言(Java),以及如何將新的翻譯內容添加到方面?我看了看Alfresco的文檔,但是,我沒有找到它,你能幫我找到一些關於它的文檔或教程嗎?

UPDATE:

我試圖做一個內容multilangue:

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它不正確初始化。任何建議如何初始化它?我要用春天,但是,怎麼樣?

任何suggerstion或答覆將是非常有益的!

感謝,
安德烈

回答

2

您可以使用MultilingualContentService添加翻譯。但!我想你的屬性應該是類型d:mltext(如cm:title和cm:description)以支持多語言內容。

這意味着如果您使用帶有英語的瀏覽器訪問露天咖啡館,您將在瀏覽器中看到與使用德語設置的人不同的描述。這可能有點令人困惑,因爲在Share中沒有(是?)沒有該屬性是多語言的標識符。

如果您希望您的翻譯出現在任何地方,無論瀏覽人員使用何種語言,那麼更好的方法是定義一些方面(例如ex:可翻譯的),以及您需要翻譯的特性。然後,您可以編程方式(使用Java或JavaScript)使用搜索服務來查找所需的節點並將其添加到它們。最後,您然後將該方面的屬性(翻譯)添加到節點。

我希望這有助於清除的東西有點... :)

+0

假設我有一個新的自定義類型,支持Multilangual,有我父類型設置爲釐米:mlContainer,對不對? – 2012-02-14 16:22:50

+0

首先解釋你想要做什麼。真正的多語言(英語用戶看到英語,德語看德語。或者可以同時容納兩種翻譯的類型,並且兩種翻譯同時可見? – 2012-02-14 16:39:17

+0

英語消費者將會看到英語,德語消費者會看到德語,使用網站快速入門生成網站。作者必須查看所有內容如果步驟正確,我創建一個帶有英文的內容,添加多語言方面,創建一個帶有翻譯的新內容,並使用mlChild關聯類型 – 2012-02-14 18:06:25