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:
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 theSiteModel
(see the section called “Site Model”). After changing this property, you have to upload the workflows again, because uploading persists the current property value.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.: TheGetDerivedContentsAction
may have created content in the target site derived from the provided master content.)Complete
: Update themasterVersion
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”.