Программно многоязычный контент в Alfresco - PullRequest
0 голосов
/ 13 февраля 2012

Требование, которое я получаю, состоит в том, чтобы смоделировать некоторый существующий контент, доступный в базе данных SQL Server, с помощью управления контентом Alfresco, поэтому я создаю свою новую модель контента, и она, кажется, работает нормально.Но у меня проблема с несколькими языками: я знаю, что в 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 неправильно инициализируется.Любое предложение, как его инициализировать?Я должен использовать весну, но как?

Любое предложение или ответ будет очень полезным!

Спасибо,Andrea

1 Ответ

2 голосов
/ 14 февраля 2012

Вы можете использовать MultilingualContentService для добавления переводов.Но!Я полагаю, что ваши свойства должны иметь тип d: mltext (например, cm: title и cm: description) для поддержки многоязычного контента.

Это означает, что при доступе на открытом воздухе через браузер с английским языком вы увидите другое описаниекак кто-то использует настройки немецкого языка в браузере.Это может немного сбивать с толку, потому что в Share нет (было?) Идентификатора того, что свойство многоязычное.

Если вы хотите, чтобы ваши переводы появлялись везде, независимо от того, какой язык в браузере используют люди,тогда лучше подходить к определению некоторого аспекта (например, переводимого) с таким количеством свойств, сколько вам нужно для перевода.Затем вы можете программно (используя Java или JavaScript) использовать службу поиска, чтобы найти нужные вам узлы и добавить к ним аспект.Наконец, вы затем добавляете свойства (переводы) этого аспекта в узел.

Надеюсь, это поможет немного прояснить ситуацию ...:)

...