For Language Copy: If content exists, the target page is never touched until translation is complete. After applying translation, the language copy contains all components the original page had at the moment of starting translation.
For Live Copy: Target page is updated only when translation is complete. Connector does not perform Rollout automatically. It is assumed that Rollout will be triggered manually at the proper time.
Live and Language Copy Use Cases
Use Case #1: Page does not exist in the language layer
- Language Copy: Components are added to the English page after it has been sent for translation. Should not leak to the Russian page.
- Live Copy: Components are added to the English page after it has been sent for translation. Should not leak to the Russian page.
Use Case #2: Translated page exists in the target language layer
- Language Copy: Language page is not updated when Source page is sent for translation. Language page gets new content only when it’s fully translated.
- Live Copy: New component will not appear on the language page at all without rollout.
Use Case #3: Translated page in the target is modified manually after the translation has started
- Language Copy: All edits on the language page will be discarded. The same logic applies when the language page was deleted and then copied from the source page — content will be fully overwritten by translated content.
- Live Copy: Translatable content will be overwritten. Components, added to the language page will stay there as rollout does not to remove them.
Use Case #4: Language layer changed from a live copy to language copy
No resubmission is required unless source page (master) was modified after last submit.
Upload and Download Flow Scenarios
Scenario 1:
Source: Blueprint
Target: Live Copy
Upload Flow
- If placeholder doesn’t exist the Connector will create it (clone original page).
- If the submission for the original page and locale does not exist, the Connector will create it.
- If the content does exist, the submission will be updated.
File is uploaded to Smartling (1 file per locale).
Download flow
- Download file with translations from Smartling.
- No synchronization between source page and target page (sync must be done by rollout). Connector doesn’t perform rollout automatically
- Apply translated strings to target page. Mark page as “touched”.
- Target page post processing:
- rewrite if present “jcr:language” property
- rewrite path properties like "parentNode" or "pathToProducts”
- rewrite internal URLs in all links <a href='...'>
Scenario 2:
Source: Blueprint or Language Copy
Target: Language Copy
Upload Flow
- Create revision for source page.
- If target doesn’t exist, the Connector will create it (clone source page).
- If submission (for source page and locale) doesn’t exist then connector creates it.
- If submission exists, then it will be updated. Revision_id is added to submission.
- Upload file with original content to Smartling.
Download flow
- Download file with translations from Smartling.
- Synchronize a target page with source page revision (submission contains revision_id)
- If submission doesn’t contain revision_id, then synchronize target page with source page (pick up latest changes on source page).Synchronization flow
- Remove all subnodes of target page except “jcr:content”. This will completely remove all manual changes on target page.
- Target page is "restored" from revision - target page will contain only components that were on the original page when translation started.
- Apply translated strings to target page. Mark page as “touched."
- Target page post processing:
- rewrite if present “jcr:language” property
- rewrite path properties like "parentNode" or "pathToProducts”
- rewrite internal URLs in all links <a href='...'>
Scenario 3:
Source: Live Copy
Target: Any
Upload Flow
- Create revision for source page.
- If target doesn’t exist, the Connector will create it (clone source page).
- If submission (for source page and locale) doesn’t exist, then the Connector will create it.
- If submission exists, then it will be updated. Revision_id is added to submission.
- Upload file with original content to Smartling.
Download Flow
- Download file with translations from Smartling.
- Synchronize a target page with source page revision (submission contains revision_id).
- If submission does not contain revision_id then synchronize target page with source page (pick up latest changes on source page).
- Synchronization flow
- Remove all subnodes of target page except “jcr:content”. This will completely remove all manual changes on target page.
- Target page is "restored" from revision, which means target page will contain only components that was on original page when translation kicked off
- End relationship of target page, if it exists.
- Apply translated strings to target page. Mark page as “touched.”
- Target page post processing:
- rewrite if present “jcr:language” property
- rewrite path properties like "parentNode" or "pathToProducts”
- rewrite internal URLs in all links <a href='...'>