Extension | .vtt |
Smartling Identifier | vtt |
Example File | subtitle.vtt |
Resources | W3.org - WebVTT |
Markup
Markup (HTML tags and formatting) is now supported for VTT translation in the CAT Tool.
The file must contain the code of the tags as follows; <b></b> for the Bold tag, <i></i> for the italics tag and <u></u> for the underline tag. Any variations will fail.
The translation VTT file will include the tags, unescaped.
XML Characters
The following XML characters 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 via our API. Inline directives are not supported. Directives are specified in the following format:
API Parameter
smartling.[directive_name] = [value]
Here are examples of supported directives for WebVTT:
MT Optimized Parsing Mode
VTT files are divided into timestamp entries. Oftentimes, linguistic units (e.g., a sentence) are spread across more than one entry. As a result, sentences are separated into multiple strings in Smartling. With the vtt_mt_mode directive, you can control how content from VTT files is parsed, allowing you to translate VTT files using machine translation and translation memory leverage. See Translating Subtitle Files.
Directive | vtt_mt_mode | ||||||||||||||||
Value | on (default for new accounts as of May 2024) | off | ||||||||||||||||
Description |
Parse the strings in the VTT file based on sentence markers, instead of by timestamp entry. |
||||||||||||||||
Examples | For example, your VTT file might look like this:
If vtt_mt_mode=on each sentence will be parsed as one string, resulting in three strings in Smartling. This allows the content to be machine translated and generates translation memory leverage.
If vtt_mt_mode=off each timestamp entry will be parsed as one string, resulting in five strings in Smartling.
|
Escape Base Characters
Directive | entity_escaping |
Values |
(case-insensitive) |
Smartling Translate Supported | Yes |
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. |
Examples |
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. |
Escape Characters the Same as Source
Directive | entity_escaping_strategy |
Values | propagate | none |
Smartling Translate Supported | Yes |
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 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 |
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. |
Unescape HTML5
Directive |
entity_escaping_type |
Values |
html4 (default)|html5 (case-insensitive) |
Smartling Translate Supported | Yes |
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. If you choose to set this directive to html5, you must also use the entity_escaping_strategy=propagate directive |
Examples |
smartling.entity_escaping_type = html5 |
Force Inline Tags
Directive |
force_inline_for_tags |
Values |
A comma-separated HTML tag list |
Smartling Translate Supported | Yes |
Description |
This parameter forces the HTML parser to treat the listed tags as inline. The difference between block and inline tags is that block tags are used to split HTML into strings, whereas inline tags are included in strings. |
Examples |
smartling.force_inline_for_tags = external_link,reference Any <external_link> or <reference> tags will be parsed as inline tags. Smartling will not create separate strings for content in these tags. |
String Keys
Directive |
vtt_key_type |
Values |
|
Smartling Translate Supported | Yes |
Description |
This directive can change the key detection type. time_range = time range is treated as a key. ID = cue id or caption will be treated as a key. If the value is id, but the caption for a cue is not present - the key for the cue is null. |
Examples |
smartling.vtt_key_type = id smartling.vtt_key_type = time_range |
String Variants
Directive |
vtt_variant_type |
Values |
A comma-separated HTML tag list |
Smartling Translate Supported | Yes |
Description |
This directive can change the variant detection type. time_range = time range is treated as a variant. ID = cue id or caption will be treated as a variant. If the value is id, but the caption for a cue is not present - the variant for the cue is null. |
Examples |
smartling.vtt_variant_type = id smartling.vtt_variant_type = time_range |
Trim Whitespace
Directive |
whitespace_trim |
Values |
on|yes|true or off|no|false or leading|trailing The default value is on. |
Smartling Translate Supported | Yes |
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. Whitespace is optionally trimmed from content then re-inserted on download for convenience so that translators do not have to manage the extra spaces. However, content owners may want to retain surrounding whitespace so that translators can 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 only be used as the API request parameter. |
Examples |
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 |
Translating Video Subtitle Files
Smartling allows you to translate WebVTT files with Visual Context. When the user in the CAT Tool clicks the target string, the video automatically plays for that specific string. Translators can loop, pause, and adjust the playback rate of the video context for the most accurate subtitle translations.
For more information, see Add Video Context for Subtitle Translation.
Video Tutorial: Translating Video Subtitles in Smartling
Timestamps:
Step 1: Create a .srt or .vtt file 00:06
Step 2: Check the segmentation 00:51
Step 3: Upload the subtitle file to Smartling 02:06
Step 4: Upload the video as visual context 02:45
Step 5: Authorize the job 03:34
What your linguists see 03:45
Step 6: Download the completed translations 04:14
Step 7: Add the translated subtitles to your video 04:32
a. Closed captions 04:41
b. Open captions 04:56
Help & Support 05:08