Preparing & Translating Supported File Types

RESX

 

Extension .resx or .resw
Smartling Identifier resx
Resources Microsoft Resx Resources 

 

String Instructions

Smartling automatically captures RESX comments and makes them translator instructions.

XML

<data name="resx_string6" xml:space="preserve">
     <value>resx string6 has a comment.</value>
     <comment>comment for manual resx string6 will appear as a Smartling translator instruction</comment>
</data>

Directives

File directives are supported, both inline and via our API

If you are applying processing directives to a RESX file, the directive should be inserted as a comment just below the XML declaration, or within the <root> tag. Alternatively, you can apply file processing directives via the API.

For example:

<?xml version="1.0" encoding="UTF-8"?>
<!-- smartling.placeholder_format_custom = \{.+?\} -->
<root>

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.

entity_escaping

Exact delivery depends on file type.

Values auto (default)
true (or yes)
false (or 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:
<!-- smartling.entity_escaping = false -->

String:
<!-- smartling.entity_escaping = auto -->

Examples

For example, your translation might look like this:
This is an <hr> & " example string4

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:
This is an <hr> &amp; &quot; example string4

Using <!-- smartling.entity_escaping = false --> will allow This is an <hr> & " example string4 to appear unescaped.

 

XML Characters (always escaped)

Character (name) Escape sequence

< (less-than)

&lt;

> (greater-than)

&gt;

& (ampersand)

&amp;

' (apostrophe or single quote)

&apos;

" (double-quote)

 &quot;

 

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: &lt; &gt; &amp; &quot;.

When this directive is set to html5, all html5 entities will be unescaped as well.

Examples

smartling.entity_escaping_type = html5 

 

entity_escaping_strategy

Values propagate | none
Description

Used to retain entity escaping for all non-base entities. For example normally we turn &copy; 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.


propagate will only affect non-base entities - all named entities except &amp; , &quot;, &lt;, &gt; . Base entities continue to be controlled by HTML detection and the entity_escaping directive.


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 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:
smartling.entity_escaping_strategy = propagate

 

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.

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.

 

sltrans

Values translate OR notranslate
Description

Use this directive to enable or disable processing of translation strings in the file. You must turn translation back on once you're done with notranslate.

Any content with this tag will not appear in the Smartling dashboard but will appear in your translated file in your original source language.

Examples

<!-- smartling.sltrans = notranslate -->

Strings below this directive will be captured as strings but excluded from translation.

<!-- smartling.sltrans = translate -->

Strings below this directive will be translated. 

 

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.

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
manipulate it during translation.

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.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

Was this article helpful?