loading table of contents...

6.6.2. Predefined Translation Workflow

A translation workflow can be used to communicate changes in the project of a master site to the derived sites.

CoreMedia Blueprint provides one template translation workflow named Translation in the file translation.xml in the wfs-tools-application module. The workflow is built around an empty action, the SendToTranslationServiceAction in the workflow-lib module, which is supposed to implement the sending / receiving of contents to / from a translation agency. Without an implementation of this action, the workflow can still be used for manual in-house translation, possibly in conjunction with XLIFF download/upload.

Roles and Rights

The translation workflow process is based on two roles defined for CoreMedia DXP 8's Multi-Site concept:

  1. The group translation-manager-role contains all users that are allowed to start a translation workflow. The name of this group has to be configured in the property translationManagerRole of the SiteModel (see the section called “Site Model”). After changing this property, you have to upload the workflows again, because uploading persists the current property value.

  2. The site manager group defines the users who may accept translation workflows for the content of a site. Groups and Rights Administration for Localized Content Management describes how to set this property for every site.

Workflow Lifecycle

As described in the section called “Roles and Rights”, the translation managers start the translation workflow for a set of new or changed contents from the Control Room. Therefore, a new Process instance will be created for every site that has been selected as a translation target.

At first, the Process instances both run two AutomatedTasks that retrieve the manager group and collect / create the derived contents for the target site. For details see Section 6.6.2.1, “Predefined Translation Workflow Actions”.

The following UserTask called Translate is used to let the user choose a next step. This is done by selecting a next step in the radio group of the workflowForm. The selected value will then be set as value for the translationAction process variable. This variable is then used in a Switch task to choose the successor task.

These successor tasks are:

  • SendToTranslationService: Send / retrieve content to / from translation agency (has to be implemented in the project)

  • Rollback: Cancel the translation and rollback changes that may have been made to the target content. (E.g.: The GetDerivedContentsAction may have created content in the target site derived from the provided master content.)

  • Complete: Update the masterVersion of the target content to indicate, that the translation is completed. This can be used, for example when the user translated the content manually.

While the Rollback and Complete tasks finish the process, the SendToTranslationService task has another UserTask successor called Review. This task simply gives the user an opportunity to check the content imported from the translation agency. For details on the Actions behind these tasks see Section 6.6.2.1, “Predefined Translation Workflow Actions”.

Configuration and Customization

The example translation workflow is meant to be configured to your needs. You might define multiple translation workflows, like translation via translation agency or manual translation performed by the site managers. The only restriction is that every translation workflow needs a process variable subject of type String, which will be set by the framework.

In order to reliably track content that is currently "in translation", you also need to define, configure and regularly invoke an instance of the com.coremedia.translate.workflow.impl.CleanInTranslation class. An example definition is included in the blueprint source in the workflowserver-springcontextmanager.xml file, which you may have to adapt.

Be aware, that changes in the process definition will probably lead to changes in the UI, too. If you want to change only small bits of the provided translation workflow like adding another user-selectable translationAction and Task, this can be done pretty easily through configuration of the defaultTranslationWorkflowDetailForm inside the ControlRoomStudioPlugin.

But if want to use a workflow completely different to the one provided, be prepared to write your own implementations of the workflowForms and start panel used to display your workflow in Studio.

For details on customizing workflows see the [CoreMedia Workflow Manual]. For details on customizing the Studio UI for the translation workflows see Section 6.5.3.5.2, “Translation Workflow Studio UI”.