Preparing & Translating Supported File Types

iOS Stringsdict

See Placeholders in Resource Files for more on placeholders.

Extension .stringsdict
Smartling Identifier stringsdict
Example File Stringsdict File Format 
Resources Localizing your App
Smartling Tech Blog on Stringsdict

iOS apps using plural functions store the strings in the Stringsdict file format. This is still true regardless if the app uses .strings or .xliff for other strings. Please refer to the Apple documentation for the file format, which uses the  standard CLDR  forms.

Note that Xcode’s XLIFF localization feature does not include plural strings. If your XLIFF-localized application includes plural strings, you will need to separately upload the .stringsdict file along with your XLIFF file.

This XML file format is used to capture the plural sensitive strings that will be localized.

Currently Smartling does not support gender-sensitive strings.

When downloading translated iOS stringsdict files via the File API, setting the parameter includeOriginalStrings=false will strip untranslated elements from the file.

Plural Standards

Smartling does not expect English source files with “zero” form source strings. Smartling complies strictly with CLDR which defines English as having two forms; “one” (singular) and “other” (plural). If you upload a source file with Zero form strings, the zero plural form will not be shown in the Smartling dashboard.
Complex Plurals

Complex plural strings (a.k.a. multiplurals) are supported, but Smartling advises against creating such strings which are difficult to translate correctly from a linguistic perspective. If a multiplural string is in your .stringsdict Smartling will capture two separate strings, but they will not be associated with each other. We advise you to add instructions and visual context hints to help the translators understand how the multiplural string is actually used in your application.

No file API directives are supported.

Standard Placeholder Format

By default, Smartling recognizes ios-style placeholders in iOS Stringsdict files.

See Placeholders in Resource Files.



<!-- smartling.[directive_name] = [value] -->



Exact delivery depends on file type.

Values auto (default)
true (or yes)
false (or no)
Description Can control whether or not characters will be "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 -->

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


For example, your translation might look like this:
Smartling HTML escaping < > & " example string4

By default, using the "auto" setting, we would assume this is HTML from the <hr> tag and it would be converted to:
Smartling HTML escaping &lt; &gt; &amp; &quot; example string4

Using smartling.entity_escaping = false would allow Smartling HTML escaping < > & " example string4 to appear as it should.



Value  integer or NONE 
Description  Sets or removes the maximum characters allowed for a translation. If NONE is specified, character limits will be removed. 

<!-- smartling.character_limit = 25 -->

The directive should go directly before the string where the character limit should be applied. This will apply a character limit of 25 to the string on the line after the directive.

<!-- smartling.character_limit = NONE -->

This will remove any character limits set for a string even if the character limit was set manually in the Dashboard.




Description  Used to specify a standard placeholder format. 

<!-- smartling.placeholder_format = IOS -->

Specifies iOS-style placeholders for the file.



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.

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




on|yes|true or off|no|false or leading|trailing

The default value is on


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.


<!-- 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?