By default, SmartMatch requires a new source string to match exactly with the source content of a translation unit from your Translation Memory. Not only the source text needs to be identical, but any HTML tags, the number of whitespaces and the capitalization also need to match.
However, customizable rules enable you to adjust SmartMatch to the desired level of precision.
- To enable the default behavior for SmartMatch, as described above, use the setting Text without variant.
- If desired, SmartMatch can be limited to strings which were used in the same context as the translation unit from your TM (by taking into account the string variant).
- To achieve more matches, some of the default criteria for SmartMatch can be ignored: You can choose to enable SmartMatch for strings which have different HTML markup, spacing or capitalization from the Translation Memory entry.
- SmartMatch can even be used to restore translations which were removed by mistake while the translation process was still in progress.
Each rule can be enabled or disabled as needed.
SmartMatches generated by each rule can be either sent to a revision step or published automatically (see SmartMatch Results for more information). Please refer to our recommendations below for guidance on the most suitable configuration.
Text with variant: Text exact match and variant exact match
This setting is used to limit SmartMatch to strings that have not only the same source text, but also the same variant as the existing Translation Memory entry. This ensures that translations are only reused by SmartMatch if they were used in the same context or referring to the same meaning.
Tip: With this rule, a string with no variant can match with a Translation Unit with no variant (see example 2).
In order for this rule to produce a SmartMatch, the new source string needs to have the same source text, variant, inline tags, capitalization and whitespaces as the Translation Memory entry.
Examples
Example 1 - variant of the source string matches the variant of the TM entry:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Home
|
Source string (en-US): Home Translation (it-IT): Casa Variant: realestate.forsale.house_1 |
Source string (en-US): Home Translation (it-IT): Casa Variant: realestate.forsale.house_1 |
Example 2 - no variant specified for the source string and the TM entry:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Home
|
Source string (en-US): Home Translation (it-IT): Casa Variant: none |
Source string (en-US): Home Translation (it-IT): Casa Variant: none |
Example 3 - variant mismatch, does not SmartMatch:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Home Variant: homepage.button |
Source string (en-US): Home |
No SmartMatch due to the different variant associated with the translation unit from the TM |
Example 4 - variant mismatch, does not SmartMatch:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Home Variant: homepage.button |
Source string (en-US): Home Translation (it-IT): Casa Variant: none |
No SmartMatch, as there is no variant associated with the translation unit from the TM |
Recommended configuration
It is generally safe to set this setting to Published, provided that the leveraged Translation Memory is of good quality and your content uses string variants (which is generally the case for resource files using string keys).
Text without variant: Text exact match regardless of variant
This SmartMatch setting can be used to apply a previous translation if the exact same text has already been translated before, regardless of the context which the previous translation was used in.
This setting produces a SmartMatch if the new string has the same text, capitalization, inline tags and whitespaces as the Translation Unit from the TM, regardless of the string variant.
Example
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Home Variant: homepage.button |
Source string (en-US): Home Translation (it-IT): Casa Variant: realestate.forsale.house_1 |
Source string (en-US): Home Translation (it-IT): Casa Variant: homepage.button |
Of course, this setting also produces a SmartMatch if the same variant or no variant is used, as long as the source text matches the Translation Memory entry.
Recommended configuration
As the above example illustrates, this setting can lead to translations being applied that don't perfectly match the new context. Therefore, it is recommended to send SmartMatches from this setting to a revision step if your workflow includes one, so a linguist can determine if the translation is still suitable in the new context.
Text ignoring whitespace: Text exact match and ignore all whitespaces
This setting produces a SmartMatch if the new string has the same text, capitalization and inline tags as the Translation Unit from the TM, regardless of any differences in the number of whitespaces.
Tip: This rule does not work if the string contains an additional non-breaking space, as this is considered a character.
Examples
Example 1 - TM entry containing an additional whitespace character:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome·to·Smartling! |
Source string (en-US): Welcome·to··Smartling! Translation (de-DE): Willkommen·bei··Smartling! |
Source string (en-US): Welcome·to·Smartling! Translation (fr-FR): Willkommen·bei··Smartling! |
The additional whitespace from the TM unit is preserved in the SmartMatched translation.
Example 2 - new source string containing an additional whitespace character:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome·to··Smartling! |
Source string (en-US): Welcome·to·Smartling! Translation (de-DE): Willkommen·bei·Smartling! |
Source string (en-US): Welcome·to··Smartling! Translation (de-DE): Willkommen·bei·Smartling! |
The additional whitespace from the source string is not preserved in the SmartMatched translation.
Example 3 - the new source string contains an additional non-breaking space, does not SmartMatch:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome·to· Smartling! |
Source string (en-US): Welcome·to·Smartling! Translation (de-DE): Willkommen·bei·Smartling! |
No SmartMatch, as non-breaking spaces ( ) are not considered a whitespace for the purpose of this setting. |
Recommended configuration
As the above examples illustrate, this setting can lead to additional whitespaces being applied in the SmartMatched translation. Therefore, it is recommended to send SmartMatches for this setting to a revision step if your workflow includes one, so any additional whitespaces can be removed by a linguist.
Text ignore markup: Text exact match and ignore markup
This setting produces a SmartMatch if the new string has the same text, whitespaces and capitalization, as well as the same quantity and order of inline HTML tags as the Translation Unit from the TM, regardless of differences in the actual HTML tag values, attributes or position.
If a string contains HTML inline tags (e.g. formatting tags), the regular SmartMatch settings "Text with/without variant" only work if the tags are identical between the source string and the Translation Memory entry. However, with this setting, differences in HTML inline tags can be ignored.
Strings will SmartMatch if the sources are identical sequences of non-tag characters (i.e. identical source text), and have any one of the following:
- Identical tags, same position of tags in the string
- Identical tags, different position of tags in the string - see example 1
- Different tags or tag attributes, but same order of tags in the string - see examples 2-5
- Tags that are only present in the TM entry, but not in the new source string (only applicable if the tags are wrapped around the entire string) - see examples 6 and 7
Examples
Example 1 - identical HTML tag values, different tag placement:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome to <b>Smartling</b> |
Source string (en-US): <b>Welcome to Smartling</b> Translation (de-DE): <b>Willkommen bei Smartling</b> |
Source string (en-US): Welcome to <b>Smartling</b> Translation (de-DE): <b>Willkommen bei Smartling</b> |
The placement of tags in the SmartMatched string is not automatically adjusted to match the new source string.
Example 2 - different HTML values, but same order and position of tags:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome to <i>Smartling</i> |
Source string (en-US): Welcome to <b>Smartling</b> Translation (de-DE): Willkommen bei <b>Smartling</b> |
Source string (en-US): Welcome to <i>Smartling</i> Translation (de-DE): Willkommen bei <i>Smartling</i> |
The HTML tag value is automatically adjusted to match the new source string.
Example 3 - different tag attributes, but same order and position of tags:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US):For more information, visit <a href=“https://www.wikipedia.com”>our website</a>. |
Source string (en-US):For more information, visit <a href=“https://www.smartling.com”>our website</a>. Translation (de-DE): Weitere Informationen finden Sie <a href=“https://www.smartling.com”>auf unserer Website</a>. |
Source string (en-US):For more information, visit <a href=“https://www.wikipedia.com”>our website</a>. Translation (de-DE): Weitere Informationen finden Sie <a href=“https://www.wikipedia.com”>auf unserer Website</a>. |
The HTML tag attribute is automatically adjusted to match the new source string.
Example 4 - different HTML values, same order (but different position) of tags:
The amount of HTML tags used, together with the structure of the string (e.g. text - tag - text - tag) is how SmartMatch is evaluated for this rule. In the below example, even though the exact position of the tag changes (wrapped around "Smartling" in the TM entry, but wrapped around "to Smartling" in the new string), the tag order and structure remains the same (text - tag - text - tag).
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome <i>to Smartling</i> |
Source string (en-US): Welcome to <b>Smartling</b> Translation (de-DE): Willkommen bei <b>Smartling</b> |
Source string (en-US): Welcome <i>to Smartling</i> Translation (de-DE): Willkommen bei <i>Smartling</i> |
While the HTML tag value is automatically adjusted to match the new source string, the exact placement of tags in the SmartMatched string is not adjusted to match the new source string.
Example 5 - Different order of tags, does not SmartMatch:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US):<i>Welcome to Smartling</i> |
Source string (en-US): Welcome to <b>Smartling</b> Translation (de-DE): Willkommen bei <b>Smartling</b> |
No SmartMatch, as the order of tags in the new source strings (tag - text - tag) doesn't match the Translation Unit (text - tag - text - tag). |
Example 6 - Tags wrapped around the entire TM string, but not present in the new source string:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome to Smartling |
Source string (en-US): <b>Welcome to Smartling</b> |
Source string (en-US): Welcome to Smartling Translation (de-DE): Willkommen bei Smartling |
Tip: To SmartMatch a source string without tags against a TM entry with tags, even if they are not wrapped around the entire string, but placed in a different position, activate the setting Text remove markup.
Example 7 - Different quantity of tags which are not wrapped around the entire string; will not SmartMatch:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome to <b>Smartling</b> |
Source string (en-US): Welcome to Smartling Translation (de-DE): Willkommen bei Smartling |
No SmartMatch due to the different quantity of tags (which are not wrapped around the entire string) |
Recommended configuration
As the above examples 1 and 3 illustrate, this setting can lead to an inconsistent placement of tags in the SmartMatched translation. Therefore, it is recommended to send SmartMatches for this setting to a revision step if your workflow includes one, so the tag placement can be adjusted by a linguist.
Text ignore case: Text exact match and ignore uppercase and lowercase characters
This SmartMatch setting applies an existing translation from the Translation Memory, even if the new source string uses different capitalization. It can be used when you want the text to SmartMatch, while ignoring differences in uppercase, lowercase or camel case spelling.
Examples
Example 1 - source string is capitalized and SmartMatches with an all uppercase TM unit:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Hello |
Source string (en-US): HELLO Translation (fr-FR): BONJOUR |
Source string (en-US): Hello Translation (fr-FR): BONJOUR |
Example 2- lowercase source string SmartMatching with an uppercase TM unit:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): hello |
Source string (en-US): HELLO Translation (fr-FR): BONJOUR |
Source string (en-US): hello Translation (fr-FR): BONJOUR |
As illustrated in the above examples, if the new source string uses camel case or lowercase spelling, but is matched against a capitalized string, the SmartMatched translation will also be capitalized.
Recommended configuration
If this setting is enabled, SmartMatch may apply lowercase translations to an uppercase source string, and vice versa. To avoid polluting your Translation Memory, we would recommend using a revision step for this SmartMatch setting, so any differences in capitalization can be corrected by a linguist.
Match any: Any combination of ignore whitespace, markup, or case
"Match any" combines the settings Text ignoring whitespace, Text ignore markup and Text ignore case.
This setting produces a SmartMatch if the new source string has the same text and placeholders, as well as the same quantity and order of inline HTML tags as the Translation Unit from the TM, regardless of differences in HTML tag values, whitespaces or capitalization.
Examples
Please refer to the examples above for the settings Text ignoring whitespace, Text ignore markup and Text ignore case. Any of these examples would also apply for the setting "Match any".
Recommended configuration
This setting may lead to incorrect capitalization, additional whitespaces or an inconsistent placement of tags being applied in the SmartMatched translation. Therefore, it is recommended to send SmartMatches for this setting to a revision step if your workflow includes one. If your workflow doesn't contain a revision step, you may want to disable this setting.
Text remove markup: Text exact match when all markup is removed
This setting can be used when you want strings with no HTML markup to SmartMatch with previous translations that have the exact same source text, but do contain markup.
Any new strings which do not contain markup (HTML tags, including line break tags) will be compared to TM translations with markup. If a text-exact match is found, even if there is markup present in the TM translation, it can be used as a SmartMatch. The new translation will have all its markup stripped, so the result will be a translation with no markup.
Tip: This is a complement to the setting Text ignore markup.
Examples
Example 1 - Tags not present in the new source string, but in the TM entry:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome to Smartling |
Source string (en-US): Welcome to <b>Smartling</b> Translation (de-DE): Willkommen bei <b>Smartling</b> |
Source string (en-US): Welcome to Smartling Translation (de-DE): Willkommen bei Smartling |
Example 2 - Tags present in the new source string, but not in the TM entry:
New source string to translate | Translation unit from the TM | SmartMatch result |
Source string (en-US): Welcome to <b>Smartling</b> |
Source string (en-US): Welcome to Smartling |
No SmartMatch |
Recommended configuration
This setting automatically removes any additional HTML tags which are present in the Translation Memory unit, but not the source string. Therefore, SmartMatches with this setting can be sent directly to the Published step, provided that the leveraged Translation Memory is of good quality.
Restore translation: Exact match for previously removed unpublished translations
This SmartMatch option enables you to recover translations that were saved, but removed while they were still in progress. If strings were unauthorized or made inactive before they reached the Published step (e.g., due to cancelling a job, stopping translation, or deleting/updating a file), but then need to be translated again at a later point, this setting can be used to restore the previous, unpublished translation.
This setting is typically used if a translation was cancelled, stopped or removed by mistake before it reached the Published step. If the exact same string (with the same source text, variant and file namespace) is authorized for translation again, this setting will apply the previous, unpublished translation. As the translation had not gone through the full workflow previously, we would recommend SmartMatching restored translations to a revision step, where they can be approved or amended if needed.
Recommended configuration
It is recommended to enable this setting only when a translation was removed by mistake.
As the original translation was not fully published and completed, it is recommended that this SmartMatch option is set to a revision step, so a linguist can edit the SmartMatched translation if needed, before it gets published.