Extension | .zip |
Smartling Identifier | madcap |
Example File | file1 file2 |
Resources | MadCap Lingo software |
Smartling supports Madcap Lingo version 10.
A MadCap package is a ZIP-archive with one or more XLIFF files, optionally organized in directories.
A MadCap archive is treated as a single file. Translated strings in the archive will be associated with the .zip file, not the individual XLIFF files.
Non-XLIFF files in the archive are excluded from processing.
Directory structure and non-XLIFF files are preserved when downloading the translated archive.
XML Characters
The following XML character are always escaped. You can control this by using the entity_escaping directive.
Character (character name) | Escape sequence |
< (less-than) |
< |
> (greater-than) |
> |
& (ampersand) |
& |
' (apostrophe or single quote) |
' |
" (double-quote) |
" |
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 examples of supported directives for MadCap Lingo:
Directive name | Values | Description | Example |
entity_escaping |
(case-insensitive) |
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. |
For example, your translation might look like this: By default, using the "auto" setting, we will assume this is HTML from the <hr> tag. When the translated file is downloaded, the translated string will be escaped as: Using <!-- smartling.entity_escaping = false --> will allow is above string to appear unescaped. |
entity_escaping_strategy |
(case-insensitive) |
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. If HTML5 entities are required as well, you must use the entity_escaping_type=propagate directive. Numerical entities are not considered at all with this directive, and are treated normally. |
<!-- smartling.entity_escaping_strategy = propagate --> If the same character is both escaped and unescaped in the same string, propagate will return the characters in the translation escaped in the same order as they were in the source. However, if there are a different number of characters in the translation where the translation process removed or added some and the escaping is inconsistent among them, propagate will escape all entities for that character. This does not affect source content at all - so using it will not result in new strings. propagate will only affect non-base entities - all named entities except & , ", <, >. Base entities continue to be controlled by HTML detection and the entity_escaping directive.
|
entity_escaping_type |
(case-insensitive) |
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. |
<!-- smartling.entity_escaping_type = html5 --> |
whitespace_trim |
|
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 manage whitespace trimming. 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.
|
<!-- smartling.whitespace_trim=on--> Smartling will trim leading and trailing whitespaces (default)
<!-- smartling.whitespace_trim=off --> Smartling will not trim leading or trailing whitespaces
<!-- smartling.whitespace_trim=leading --> Smartling will trim only leading whitespaces
<!-- smartling.whitespace_trim=trailing --> Smartling will trim only trailing whitespaces |