This article explains how the Workspace exports localization files through the FTP connector, how exported file names are generated, which attributes and job metadata are included in each XML file, and how completed translations should be returned.
The Workspace exports source files to the Content for translation folder inside the selected Service Folder. Completed translated files should be returned to Translations to deliver. After successful import, processed files are moved to Delivered.
In this article, you will learn:
- where the Workspace exports files on the FTP server
- how exported file names are generated
- how file names are sanitised for FTP compatibility
- which attributes appear on the
<file>element - which job metadata is included in the
<header>block - how completed translated files should be returned
Before you start
This article assumes that the FTP / FTPS server, folder structure, FTP connection, and FTP Configuration have already been prepared.
Note: FTP / FTPS requirements, folder preparation, and FTP Configuration setup are covered in separate articles.
1. Exported file location
When content is exported through an FTP Configuration, the Workspace places the source files in the Content for translation folder inside the selected Service Folder.
The complete path follows this pattern:
Root Folder / Service Folder / Content for translation / filename.xmlExample:
/localization-hub/AcmeStore_Production/Translation/Content for translation/en-US-fr-FR_1042_l1_page_home-page_ipr.xml2. Exported file name format
The file name is built by the Workspace at export time from a set of contextual tokens. After the name is generated, it is sanitised to make sure it is safe for FTP servers and file systems.
There are two file name modes, depending on whether the FTP Configuration exports individual files per content item or combines all content into one file.
Mode 1 — Individual file per content item
This is the standard mode. One file is created per content item being exported.
{source}-{target}_{orderNumber}_l{level}_{type}_{contentId}_{title}_ipr.xmlExample:
en-US-fr-FR_1042_l1_page_home-welcome-page_Welcome to our store_ipr.xml| Token | Description | Example value |
|---|---|---|
{source} | Service source language code. | en-US |
{target} | Target language code for this export batch. | fr-FR |
{orderNumber} | Human-readable numeric order number, not the GUID. | 1042 |
l{level} | Content hierarchy level, prefixed with the letter l. | l1, l2 |
{type} | Content type, truncated to a maximum of 20 characters. | page, article, product |
{contentId} | Unique content identifier from the CMS. | home-welcome-page |
{title} | Content title, truncated to a maximum of 40 characters. | Welcome to our store |
_ipr | Fixed suffix. Stands for iLangl Processing Result. Used by the delivery importer to identify files produced by this system. | _ipr |
.xml | File extension. Always .xml for uncompressed exports. | .xml or .zip |
Mode 2 — All content in one file
When the FTP Configuration has the all-in-one option enabled, all content items for the same target language are combined into a single file per batch group.
With a custom file name set in the configuration, the file name follows this format:
{source}-{target}_{orderNumber}_{customFileName}({group})_ipr.xmlWithout a custom file name, the file name follows this format:
{source}-{target}_{orderNumber}_all_content_in_one_file({group})_ipr.xmlExample with the custom file name campaign-content and group 0:
en-US-fr-FR_1042_campaign-content(0)_ipr.xml| Additional token | Description |
|---|---|
{customFileName} | Name configured in the FTP Configuration settings. |
({group}) | Integer batch group index, starting at 0. Increments when the per-job file limit is reached and a new batch is started. |
3. Compression
When Zipped is enabled in the FTP Configuration, the XML file is placed inside a ZIP archive and the extension is changed from .xml to .zip.
The base name before the extension is unchanged. The XML content and metadata inside the archive are identical to the uncompressed version.
Uncompressed: en-US-fr-FR_1042_l1_page_abc123_Home Page_ipr.xml
Compressed: en-US-fr-FR_1042_l1_page_abc123_Home Page_ipr.zipCompression note: When Zipped is enabled, the identical XML is delivered inside a .zip archive. The file inside the archive keeps the .xml extension.
4. File name sanitisation
After the file name is assembled, it passes through a sanitisation pipeline to ensure compatibility with FTP servers and file systems.
During sanitisation:
- invalid file name characters, as defined by the operating system, are removed
- additional characters are stripped, including smart quotes, em-dash, dollar sign, and square brackets
- the string is Unicode-normalised so accented characters are split into their base letter and combining accent mark
- only ASCII characters, code points 0–127, are kept
- non-ASCII characters, combining diacritics, format characters, and control characters are removed
- the result is re-normalised to composed form and trimmed
- if the final string is empty, the name falls back to
file
Example: A title like Bienvenido a la página becomes Bienvenido a la pagina after stripping the accent from á. This keeps the file name safe for ASCII-only FTP servers and Windows file systems.
5. Exported XML structure
Each exported file is an XLIFF-style XML document, version 1.2.
Each file includes:
- a root
<xml version="1.2">element - one
<file>element per content item - attributes on the
<file>element that describe the content item and translation context - a
<header>section with a<prop-group name="job-metadata">block - a
<body>section containing translatable content <group>sections and<trans-unit>entries<source>and<target>values inside each translatable unit
6. Attributes on the <file> element
Every <file> element inside the exported XML carries attributes that describe the content item and its translation context. These attributes are written directly into the opening <file> tag and are available to any parser without reading the file body.
<file original="Home Page"
datatype="html"
source-language="en-US"
target-language="fr-FR"
level="1"
version="5"
sequence="0"
lastmodified="2026-05-28T10:30:00"
configuration="3fa85f64-5717-4562-b3fc-2c963f66afa6"
parentid="site-root"
parentype="site"
jobname="Home Page"
sourceid="en-US-home-page"
jobId="48213">| Attribute | Description | Example value |
|---|---|---|
original | The display name or title of the content item. | Home Page |
datatype | Format of the content body. Always html. | html |
source-language | BCP-47 language code of the source language. | en-US |
target-language | BCP-47 language code of the target language for this file. | fr-FR |
level | Hierarchy level of the content item within the CMS structure. Level 1 is top-level content; higher numbers indicate nested items. | 1, 2, 3 |
version | Version string of the content item at the time of export. | 5, 1.3.0 |
sequence | Ordering sequence of this item among siblings. | 0, 1, 2 |
lastmodified | ISO 8601 date-time of the last modification to this content item in the CMS. | 2026-05-28T10:30:00 |
configuration | GUID of the FTP Configuration used for this export. | 3fa85f64-... |
parentid | CMS identifier of the parent content item. Empty for top-level items. | site-root |
parentype | Content type of the parent item. | site, section |
jobname | File name or label used for this job inside the translation tool. | Home Page |
sourceid | Identifier of the equivalent source-language content item, used to link translated content back to the original. | en-US-home-page |
jobId | Numeric identifier of the Localization Hub job associated with this file. | 48213 |
Version note: The target-language attribute and the <header> metadata block were added in the current release. Parsers written for earlier versions of the format will ignore unknown attributes and elements, so backwards compatibility is maintained.
7. Job metadata in the <header> block
In addition to the <file> attributes, every file contains a <header> element with a <prop-group name="job-metadata"> block. This carries order-level metadata that does not have a standard XLIFF attribute equivalent.
| prop-type | Description | Example value |
|---|---|---|
cost-center | Cost centre the order is billed to. | Marketing |
domain | Subject-matter domain of the content. | Legal |
due-date | Delivery due date in YYYY-MM-DD format. | 2026-06-15 |
job-requester | Display name of the person who requested the job. | Jane Smith |
project-name | Title of the order or project. | Spring Campaign |
project-id | Unique order identifier, GUID. | 7c1f...e9a4 |
project-number | Human-readable numeric order number. | 1042 |
8. Complete file example
The example below shows attributes, header metadata, and body structure. Body content is abbreviated.
<?xml version="1.0" encoding="utf-8"?>
<xml version="1.2">
<file original="Home Page"
datatype="html"
source-language="en-US"
target-language="fr-FR"
level="1"
version="5"
sequence="0"
lastmodified="2026-05-28T10:30:00"
configuration="3fa85f64-5717-4562-b3fc-2c963f66afa6"
parentid="site-root"
parentype="site"
jobname="Home Page"
sourceid="en-US-home-page"
jobId="48213">
<header>
<prop-group name="job-metadata">
<prop prop-type="cost-center">Marketing</prop>
<prop prop-type="domain">Legal</prop>
<prop prop-type="due-date">2026-06-15</prop>
<prop prop-type="job-requester">Jane Smith</prop>
<prop prop-type="project-name">Spring Campaign</prop>
<prop prop-type="project-id">7c1f...e9a4</prop>
<prop prop-type="project-number">1042</prop>
</prop-group>
</header>
<body>
<briefing URL="https://...">
<ilangllb>Translate using the approved glossary.</ilangllb>
</briefing>
<group id="home-page" elementtype="Content">
<group id="title-section" elementtype="Section">
<trans-unit id="title">
<source>Welcome to our store</source>
<target></target>
</trans-unit>
</group>
</group>
</body>
</file>
</xml>9. Returning translated files
Your translation process should read files from Content for translation and produce the translated version.
When returning translated files:
- keep the file structure intact
- fill in the
<target>value for every<trans-unit>element - upload completed files to Translations to deliver in the same Service Folder
The Workspace collects the completed files, imports translations, and moves the processed files to Delivered.
Summary
For successful FTP delivery:
- use the generated file name as exported by the Workspace
- keep the XML structure and
<file>attributes intact - preserve the
<header>metadata block - fill in translated content in the
<target>values - return completed files to Translations to deliver
Comments
0 comments
Please sign in to leave a comment.