XLIFF 2.0
Extension | .xml, .xlf, .xliff |
Smartling Identifier | xliff2 |
Example File | (see example below) |
Resources |
Example File
<?xml version="1.0" encoding="UTF-8" ?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0"
xmlns:xmrk="urn:xmarker"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="xliff_core_2.0.xsd" version="2.0"
srcLang="en-US"
trgLang="uk-UA">
<file id="description.properties">
<unit id="1">
<segment>
<source>Various types of model.</source>
<target></target>
</segment>
</unit>
<unit id="2">
<segment>
<source>Machine Learning has drawn a lot of attention.</source>
</segment>
<ignorable>
<source> </source>
</ignorable>
<segment>
<source>Then we introduce the needed mathematical notation.</source>
</segment>
</unit>
</file>
</xliff>
Smartling supports .xlf, .xliff, and .xml files that use the XML Localization Interchange File Format v 2.0 (XLIFF2).
String Instructions
Smartling automatically captures XLIFF notes and makes them translator instructions. See xliff_note_to_instruction for more information.
Excluding Strings
To exclude content from translation, you can use XLIFF’s translate attribute. To exclude a string from translation, set translate=no. See XLIFF Resource Documentation for details on the translate attribute.
Plurals in XLIFF 2.0 Files
XLIFF 2.0 does not support plural translation.
Standard Placeholder Format
See Placeholders in Resource Files for more on placeholders.
Directives
File directives are supported, both inline and via our API. Directives are specified in comments within the files, in the following format:
Inline File Format
<!-- smartling.[directive_name] = [value] --> |
API Parameter
smartling.[directive_name] = [value] |
Here are some examples of [directive_name], along with example values or paths.
placeholder_format
Values | NONE; C; IOS; PYTHON; JAVA; YAML; QT, RESX |
Description | Used to specify a standard placeholder format. |
Examples |
smartling.placeholder_format=ios Specifies iOS-style placeholders for the file. |
placeholder_format_custom
Values | 1) Custom Java-compatible regular expression. 2) NONE - disables any current custom placeholders |
Description | Specifies a custom placeholder format. Any text in your file matching the regular expression you provide will be captured as a placeholder. |
Examples |
<!-- smartling.placeholder_format_custom=\{([^}]+)\} --> Any characters surrounded by curly brackets, e.g., {first name}, will be treated as a placeholder. |
See Placeholders in Resource Files for more on placeholders.
string_format
Values | html or NONE (default) |
Description | Control trans-unit level HTML parsing. If this is set to HTML a single trans-unit can be ingested by Smartling as multiple strings, depending on block level tags. |
Examples |
<trans-unit id="HTML string1"> The first trans-unit gets the default behavior. One string is captured by Smartling: <p><div>String1 div1</div><div>String1 div2</div></p> and the CAT tool will allow the translator to manage the HTML tags, considered part of the translatable string. The second trans-unit gets HTML parsed. Smartling captures two strings: String2 div1 String2 div2 The third trans-unit returns to default parsing behavior. Smartling captures one string1: <p><div>String3 div1</div><div>String3 div2</div></p> |
whitespace_trim
Values |
on|yes|true or off|no|false or leading|trailing The default value is on |
Description |
A whitespace is any character or series of characters that represent horizontal or vertical space in typography. When rendered, a whitespace character is not a visible mark, but does occupy an area or space on a page. Although whitespaces are necessary within a string (typically to separate words), unnecessary whitespaces can be found at the start of a string (leading) and at the end of a string (trailing). With this directive, you can trim whitespaces, as it enables or disables whitespace trim management for the ingested strings. By default, the leading and trailing whitespaces are trimmed. You can choose to disable trimming or specify trimming for leading or trailing whitespaces. The directive can be used inline or as the API request parameter. |
Examples |
Smartling will trim leading and trailing whitespaces (default)
Smartling will not trim leading or trailing whitespaces
Smartling will trim only leading whitespaces
Smartling will trim only trailing whitespaces |
segment_code_strategy
Values |
string|span The default value is string |
Description |
Controls how long strings should be parsed; either as a separate string or as one long string. string - every segment is ingested as a separate original string. The directive can be used inline or as the API request parameter. |
Examples |
Smartling will parse a long string into separate smaller strings (default)
|
xliff_note_to_instruction
Values |
file|group|unit|none The default value is unit |
Description |
Controls where translator instructions are located in the file. By default, all notes inside a unit are ingested as translation instructions. none - disables the ingestion of translators instructions. The directive can be used inline or as the API request parameter. |
Examples |
The translator instructions will consist of group-level notes and unit-level notes. |
pseudo_inflation
Values | integer - Accepted values are 0 - 100 |
Description | Sets the percentage by which original strings are inflated when downloading pseudo translations. If this directive is not set, pseudo translations are 30 percent longer than the original strings. |
Examples |
<!-- smartling.pseudo_inflation = 80 --> Downloaded pseudo translations will increase the length of original strings by 80 percent. |
entity_escaping
Exact delivery depends on file type.
Values |
auto (default) | true | yes | false | no
|
Description |
Controls whether base characters ( > < & " ) are "escaped" into entities when delivering translations. This can be set universally for the whole file via API, or by setting the directive at the top/start of the file. The directive can also be placed inline to control the behavior of specific strings. To use inline: String: |
Examples |
For example, your translation might look like this: By default, using the "auto" setting, we will assume this is HTML from the When the translated file is downloaded, the translated string will be escaped as: Using |
XML Characters (always escaped)
Character (name) | Escape sequence |
< (less-than) |
< |
> (greater-than) |
> |
& (ampersand) |
& |
' (apostrophe or single quote) |
' |
" (double-quote) |
" |
entity_escaping_type
Exact delivery depends on file type.
Values |
html4 (default)|html5 (case-insensitive) |
Description |
By default, all html4 entities are unescaped, except the basic set: < > & ". When this directive is set to html5, all html5 entities will be unescaped as well. |
Examples |
|
entity_escaping_strategy
Values | propagate | none |
Description |
Used to retain entity escaping for all non-base entities. For example normally we turn © into © but if we use this new directive the translation will automatically update to use escaping from the source. For each entity character we'll check to see if it was escaped in the source and try to match (propagate) it in the target. The default is none which is the current behavior, which recognizes HTML4 entities only - if HTML5 entities are required as well, you must use the entity_escaping_type=propagate directive.
This directive can be placed inline, in the API or in a template (consult your SA about configuring directive templates). This does not affect source content at all - so using it will not result in new strings. Numerical entities are not considered at all with this directive, and are treated normally. |
Examples |
To use inline: |