Translation integration via GlobalLink Connect Cloud
Adjust GlobalLink-Settings within settings document at
/Settings/Options/Settings/Translation Services/GlobalLink
for quicker
feedback during manual test-steps as well as to access the relevant sandbox
via corresponding credentials:
globalLink:
# [... other settings]
# key (type: String)
# Adjust either for automatic or manual GCC processing. To ease
# switching keys, hold them in the prepared extra Struct
# at `additionalConfigurationOptions.exampleKeys` for an easy copy & paste:
key: "..."
# apiKey (type: String)
# Only used for testing. Otherwise, expected to be set via Spring for
# security reasons.
apiKey: "..."
# type (type: String)
# Adjust to "default" for processing at GCC backend or "mock" for manual
# processing. See also: `additionalConfigurationOptions.availableTypes`.
type: "default"
# isSendSubmitter (type: Boolean)
# Adjust to `true` to send the submitter with the request.
isSendSubmitter: false
# Section: Timing Adjustments — Get Faster Feedback on Manual Test Steps
# Despite `retryCommunicationErrors`, which just needs to be adjusted,
# find copy & paste ready values for the other settings in the
# `additionalConfigurationOptions` Struct.
sendTranslationRequestRetryDelay: 60
downloadTranslationRetryDelay: 60
cancelTranslationRetryDelay: 60
retryCommunicationErrors: 1
# Section: Submission Instruction Type Settings
submissionInstruction:
# [...]
# characterType (type: String)
# Adjust to "unicode" to provoke errors in the GCC backend, as it does
# not support SMP characters.
characterType: "unicode"
submissionName:
# [...]
# characterType (type: String)
# Adjust to "unicode" to provoke errors in the GCC backend, as it does
# not support SMP characters.
characterType: "unicode"
# Section: Mock Settings
# Referenced below, like to provoke errors are certain states.
mock:
# [...]
Settings as Favorite:
It is recommended to add the settings document
/Settings/Options/Settings/Translation Services/GlobalLink
to the
“Favorites” in Studio. It is required to be adapted multiple times during
the manual test steps.
Start Workflow Options:
There are various ways to start localization workflows. Choose one of them during your test-steps and possibly switch to others for further steps. Some available options are:
Workflow Interaction Options:
Just as for when starting the workflow, you have multiple ways to interact with the workflow. Choose one of them during your test-steps and possibly switch to others for further steps. Some available options are:
In Localization Nagbar: To directly switch from a document to its assigned localization workflow, click on one of the available options in the nagbar, which is either clicking the link, to jump to the Workflow App or click on the button, to open the workflow within a sidebar.
Control Room: Provides an overview of running workflows and allows you to interact with them.
Workflow App: Provides a more detailed view of the workflow.
Workflow Sidebar: Opened within the Content App, providing an overview of the workflow.
Studio Localization:
It is good practice, to switch the language of the Studio UI from time to time, to ensure also German labels are available.
The following table can be copied, to track your test results. Copy it to a suitable application (like your approval task issue, for example) and fill it with your results.
Scenario | Connector Type | Key Type | Status | Notes |
---|---|---|---|---|
Contract Test | default |
automatic |
||
Happy Path | default |
automatic |
||
General Error Handling | default |
automatic |
||
Cancelation (Studio) | default |
manual |
||
Cancelation (GlobalLink) | default |
manual |
||
Cancelation (Error Handling) | default |
manual |
||
Wrong/Invalid Connector Key | default |
manual |
||
GCC Backend Error Handling | mock |
irrelevant | ||
XLIFF Import Error Handling | mock |
irrelevant | ||
Redelivered State Handling | mock |
irrelevant |
Especially on updates of gcc-restclient
you should run the half-automatic
test DefaultGCExchangeFacadeContractTest
. Read the JavaDoc to know how to
configure and run the test.
Lately, when using the automatic workflow, the submission is not marked as
DELIVERED
anymore. This is why the translateXliff
test fails. It seems to
work with the manual workflow though.
To run the test you need to create a file with the name .gcc.properties in your user home folder
Please review the following aspects in the management dashboard of
GlobalLink manually (all submissions created by this test should have a name
starting with CT
and a timestamp).
The test shouldRespectInstructions
should have created submissions with
so-called “submission instructions” (in the workflow: “Notes”) for these
scenarios (by ID):
BMP
(refers to Base Multilingual Plane)
It is expected that each described character is represented visually as
described within the test fixture. Thus, arrows should be visible as arrows
and even high level Unicode character from BMP should be displayed correctly
(e.g., the “Fullwidth Exclamation Mark”: !
).
FORMAT
(refers to newlines and tabs)
As instructions in the GCC backend are expected to be HTML, the newlines
should be replaced by <br>
and tabs by
. In other words:
You should see visible line-breaks and indents.
HTML_AS_TEXT
Given the assumption, that in the Workflow App the instructions are given in
plain-text, the HTML should be escaped. Thus, you should see no bold text,
no newline triggered by a textual <br>
, and also entities like &
should be visible as plain-text.
UNICODE_SMP
(SMP
refers to the Supplementary Multilingual Plane)
For now, the GCC backend is expected to not support SMP characters. Thus,
corresponding characters like emojis (dove, for example: 🕊) should be
replaced by a placeholder pattern. Current implementation is, to make them
distinguishable, that the placeholder is the Unicode code point in hex, such
as U+1F54A
.
The test shouldRespectSubmitter
should have created submissions with
overridden submitter names (thus, must be different to the account username).
Three submissions should be visible:
YES
: The submitter name should be the test’s name.NO
: The submitter name should be the account username.DEFAULT
: The submitter name should be the account username.default
automatic
globalLink.type=default
and the “automatic” connector key.User Rick: Log in as Rick C.
Adjust Settings: Settings to adjust/verify in
/Settings/Options/Settings/Translation Services/GlobalLink
:
globalLink:
key: "<automatic workflow connector key>"
apiKey: "..."
type: "default"
dayOffsetForDueDate: 20
isSendSubmitter: true
# Adjusted retry settings, see above for details.
# [...]
Article A: Create an article A and remove validation issues.
Article B:Create an article B and remove validation issues.
A → B: Create a link from the article A to the article B.
Start Workflow Window: Trigger starting the workflow and validate the default values:
Start Workflow: Click “Start”
Workflow App: Navigate to the workflow details within the Workflow App.
Workflow Details (In Progress): In the workflow’s detail view, validate:
Workflow Details (Done, Review): Later in the workflow’s detail view, validate:
Finish Workflow: In the Workflow App, click “Accept Task”, “Next Step”, “Finish Content Localization”, and “Yes, continue”
In addition to the above steps and in addition to the results from the contract test, you may want to review in GCC Management Dashboard:
Rick C
is set as the submitter for the submission.default
automatic
Log in as Rick C.
/Settings/Options/Settings/Translation Services/GlobalLink
type
is set to default
Break it: Change the apiKey
to something wrong, for example, add a -
(minus) to the beginning.
Start a translation workflow for an article.
Wait for the workflow to appear in Workflow App’s “Open” workflows
Click “Accept Task” and “Next Step”
Set apiKey
in GlobalLink settings to its valid value and click “Continue
and retry”
Open the workflow’s details in the Workflow App and wait for this state before you continue:
Set apiKey
in GlobalLink settings to something wrong again.
Wait for the task to change to “Download Error”.
Accept the task.
Select “Abort and rollback changes” (which will subsequently try to trigger a cancelation at GlobalLink).
Wait for the current task to change to “Cancelation Error”.
Accept the task.
Validate available options when pressing “Next” are:
Set apiKey
in GlobalLink settings to its valid value.
Choose “Continue translation”
default
manual
Log in as Rick C.
Open the GlobalLink
settings /Settings/Options/Settings/Translation Services/GlobalLink
type
is set to default
Start a translation for an article.
Select the started translation in the control-room.
Click the “X” in the header bar and confirm the dialog.
Open the “Closed” area in the Workflow App.
Wait for the translation process to appear in “Closed”.
Check:
Log in as Rick C.
Open the GlobalLink
settings /Settings/Options/Settings/Translation Services/GlobalLink
type
is set to default
Start a translation for an article.
It is recommended to set a distinguishable name for the workflow, to better locate in the next step.
Log in to the GlobalLink Management Dashboard and cancel the workflow.
The “Cancel” button used to be in the upper right corner of the opened submission.
Go back to the Workflow App
Open the “Closed” area and open the canceled workflow.
The following test is about the error handling of a cancelation, as well as it includes testing UI behaviors for multi-selection.
Log in as Rick C.
Required to use Rick C here, as Adam, for example, will not be able to do the multi-selection test, as local translations will appear in “Open” section for Adam.
Open the GlobalLink
settings /Settings/Options/Settings/Translation Services/GlobalLink
type
is set to default
Start three translation workflows for the same article:
Control Room: Check the multi-selection behavior of the “X” in the header bar:
Workflow App: Check the “X Cancel” option in the “Running” section of the Workflow App:
Break it:
Consider to temporarily change the globalLink.retryCommunicationErrors
to
2
to give you more time (120 seconds) to proceed with the next steps.
Prepare to change, for example globalLink.apiKey
to some invalid value like
adding a -
(minus) as first character. This will cause subsequent calls to
GlobalLink to fail.
Before that, either have your control-room open, or the workflow app in an extra window. For a single-screen setup, it is recommended to use the control-room.
Do it: Now, break the connection to GlobalLink by changing the apiKey
.
Speed Mode, Step 1: Select both “Translation with GlobalLink” workflows and click the “X”. Acknowledge the dialog to proceed the cancelation.
Speed Mode, Step 2: Check that already now, the “X” button/menu-entry is disabled.
You may calm down now, as the following steps are not time-critical.
Workflow App: Open one of the workflows.
Wait for the workflow to reach the task named “Cancelation error”.
Validate the following:
Click “Accept Task” and “Next Step”
Validate options, that should be available:
Click “Abort and rollback without canceling at GlobalLink” and open the target site’s document
Go back to the Workflow App overview
This test is about a robustness layer introduced with 2406.1 approval: If during
a running translation workflow you change the connector key (stored as
globalLink.key
) to another (but valid connector key), the workflow should
be able to recover from that scenario ones the key is valid again. Also, if the
key is invalid, the workflow should be able to recover from that scenario.
default
manual
(initially)default
type, and the “manual” connector key.Log in as Rick C.
Open the GlobalLink
settings /Settings/Options/Settings/Translation Services/GlobalLink
type
is set to default
Start a translation for a given article.
To Workflow App: Navigate, for example via the nagbar, to the Workflow App and wait until the workflow is in the “Translate” state (Current task: “Awaiting translation results”).
Content App: Change the connector key to another valid key (thus, “automatic”).
Workflow App: Wait until the current task changes to “Download Error”.
Accept the task.
Content App: Change the connector key to an invalid key, for example,
prefix it with an additional 0
.
Workflow App: Click “Next Step”. Validate an error is shown about an unknown submission, triggered by our previous misconfiguration.
Choose “Continue and retry”.
Wait until the current task changes to “Download Error” again.
Accept the task.
Content App: Change the connector key back to our initial, valid key (thus, “manual”).
Workflow App: Click “Next Step”. Validate an error is shown about an invalid connector key, triggered by our previous misconfiguration.
Choose “Continue and retry”.
The workflow should continue polling the translation state without issues.
This test is about submissions within the GCC backend, which are in an error state. This has been observed, for example, when trying to send a submission with instructions containing characters from the Supplementary Multilingual Plane (SMP).
Alternative Scenario:
The given manual test steps “mock” this state, as we cannot ensure that an
error persists over time. If you want to test the real-life behavior, you
may choose using the “default” rather than the “mock” type and instead of
using mock.error
, you may use the submissionInstruction.characterType
setting. Set it to unicode
and add some SMP characters to the instructions
(thus, workflow notes), like for example, the dove emoji: 🕊.
Advantage: The advantage of the real-world scenario is, that you may also test, that a submission in an error state may still be canceled.
mock
mock
type.mock.error
to SUBMISSION_ERROR
. For a quick path, you may skip
the extra submission state mocking as sketched in the detailed steps.Log in as Rick C.
Open the GlobalLink
settings /Settings/Options/Settings/Translation Services/GlobalLink
type
is set to mock
mock.error
is set to SUBMISSION_ERROR
mock:
# [...]
submissionStates:
Started:
override: Pre-Process
# Mark as final to ease mocking here. Prevents further states,
# though, which is, that you also cannot cancel the submission
# in this mocked scenario.
final: true
Start a translation for an article.
Open the workflow in Workflow App via nagbar shown in the article.
Wait until the current task is “Download error” and offered to you.
Accept the task.
Click the error issue information and see a “General submission failure.”
In the real-world scenario, you may now continue like to “Abort and rollback changes” as most likely, the submission cannot be repaired. This is not possible in this simple mocked scenario, though.
mock
Log in as Rick C.
Open the GlobalLink
settings /Settings/Options/Settings/Translation Services/GlobalLink
type
is set to mock
mock.error
is set to DOWNLOAD_XLIFF
Start a translation for an article.
Wait for the workflow to appear in Workflow App’s “Open” workflows
Open the workflow details:
Click the XLIFF download link
Click “Accept Task” and “Next Step”
mock
It has been observed, that, if the XLIFF is broken, it is not necessarily fixed within the GCC backend. Instead, the workflow is marked as “Redelivered”, and the XLIFF is provided by different means, such as sent via email.
The following steps simulate this scenario:
Log in as Rick C.
Open the GlobalLink
settings /Settings/Options/Settings/Translation Services/GlobalLink
type
is set to mock
retryCommunicationErrors
to 0
(assumed to ease state mocking)mock.error
is set to DOWNLOAD_XLIFF
Submission State Mocking: Add (or activate) the following mock settings:
mock:
# [...]
submissionStates:
Completed:
# Directly after "Completed" state, the submission is marked as
# "Redelivered".
after:
# We need to duplicate the state, as otherwise you may observe
# the "Review Redelivered Translation" task, to be triggered
# directly after "Completed" and not, after we got into the
# error handling task.
- Completed
- Redelivered
# Mark the state as final, not to continue with the next
# (standard) state.
final: true
Side Note For now, we accept the duplicate state. We may want to review, though, if processing (or mocking) can be optimized here.
Start a translation for an article.
Wait for the workflow to appear in Workflow App’s “Open” workflows
Double-click the workflow
mock.error
the
field is not available).Click the XLIFF download link
In the Workflow App, click “Accept Task”, “Next Step”, “Finish Content Localization”, and “Yes, continue”
If you have time and want to do it: In Project Director you may multi-select submissions, cancel them and subsequently archive them. This way, the overview at least in Project Director is kept clean.