Dear Alchemy Technology user,

My name is Cyril Vallin. I am the Product Support Manager at Alchemy Software Development.

This TechBytes Email is to share our experiences with our users so that we can all benefit and enhance our use of Alchemy technology. With writing in-depth features and processes articles I hope to promote advancement amongst all of you, Alchemists.

In this release, we evaluate the benefits of CATALYST's Validation Expert and look at examples of errors which can be eliminated with each validation test.

   
 

The Benefits of Validation Expert

If I told you that I can save you a lot of time and thus money, that I can improve the quality of your localization projects, wouldn't you be very interested!

The Validation Expert in CATALYST can deliver on this promise. How? Think about it, if you can avoid a localization bug from being introduced in the first place, you would be saving yourself the time it takes to find the bug in the test environment. The time for the QA engineer to file a report. The time for the localization engineer to troubleshoot and fix it and the time for the QA engineer to regress it in a subsequent release. Then multiply this by the number of languages included in your project. How much time do you think you saved? How much money?
And what about all the localization issues which may have passed unnoticed in the translated project. Which were not spotted by the QA pass. If they are detected before the project is compiled you are greatly improving the quality of your deliverables. Another huge benefit of using the Expert.

The concept is simple, CATALYST's Validation Expert consists of a series of tests which can be checked against the TTK projects that are returned from translation, or checked as the Translator works on each individual string. The check will validate translations against common mistakes which can be introduced during translation. Thus pro-actively resolving localization bugs before the translated files are extracted from CATALYST to a test environment or to production.

The majority of tests included in the Expert do not require any configuration. You simply select the tests you wish to validate the translations against and run the checks. You may also create your own validation tests using regular expressions syntax. More details on those can be found in this KnowledgeWell article.

The following are examples of Localization bugs which can be avoided with each individual test.

 

Inconsistent hotkey count

Avoid hotkeys getting removed or added. If a hotkey existed in the original string, the test will report an error if it isn't in the translation. And vice versa.

Invalid ampersand (&) position

Hotkeys are defined with the & preceding the intended character. It only works with non-shift (not double byte) keys and this check will avoid bugs where the hotkey definition in the translation is invalid.

Inconsistent hotkey character

In situations where the hotkeys must be the same in the original and translated strings, this check avoids bugs where the hotkeys are different.

Inconsistent printf format specifiers (%d, %s, etc.)

Avoid missing or corrupted text in the running program checking placeholders, which are usually defined with the % character in front of a character, are not modified or missing.
This type of localization error can sometimes lead to a crash in the translated product.

Inconsistent control characters (\n, \r, etc.)

For some file formats, the newline characters are in the \n or \r form. Avoid formatting bugs with multiple lines of text becoming a paragraph as those characters are incorrectly altered or removed.

Inconsistent lead/trail spaces

Avoid issues where spaces between sentences are missing, or different lines become a paragraph because a space or carriage return is removed in translation. Where the space or character are found at the beginning or end of the translatable string.

Mismatched empty string

Avoid difficult to spot bugs with text missing in the translated product because it is blanked in translation.

Incorrect spelling

It goes without saying that spelling bugs shouldn't make their way into your translated project. QA engineers often don't know the languages they are testing and so would not detect them. Choosing between the Internal Dictionaries or Microsoft dictionaries can avoid spelling mistakes with this test.

Untranslated text marked For Review or Signed Off

Avoid untranslated text bugs. While QA engineers often don't know the language they are testing it is easy for untranslated text to go undetected.

Glossary Consistency check

Avoid inconsistent translations throughout one or all your translation projects using a glossary. The check highlights any words part of your glossary and fails if the associated glossary translation is not used.

Well-formed Inline tags check

Avoid formatting bugs. Inline tags in HTML files define the formatting of the text in a browser. Missing or inconsistent inline tags would cause this formatting to fail.

Missing space around tags

Avoid missing space bugs in files containing inline tags. For example, a pair of bold HTML tags encapsulating some text should at least have a space character before or after each tag as it is placed within the string/sentence. Although the inline tag is visible in the translation field, it isn't when displayed in a browser and a space should be present before or after the text it formats.

Inconsistent Inline Tags check (including or excluding attributes)

Avoid missing images due to attribute values changed in translation. The check can be configured to only look at missing inline tags (excluding attributes) or also check that defined attributes are left unchanged. The latter is particularly important when translations are completed outside of the CATALYST environment which protects the attributes.

Note, in the sample below hovering over the <img> HTML tag displays the attributes list in a popup help.

Inconsistent Keyword check

Avoid corrupted or missing text bugs due to placeholders getting removed. In this example the text {1} is a placeholder which gets replaced by another string at run-time. This piece of text is marked locked by applying keywords. Those keywords can however be removed should it be necessary.
The translator misunderstood the meaning of the keyworded placeholder {1} and translated the string removing it altogether. Causing a localization bug.

Keywords is a very important feature of Catalyst. Enabling the user to lock sections of a string (as opposed to locking it entirely ) to prevent it from being translated. Reasons going from syntax which should not be modified to preserving a copyrighted name or brand.
This check is thus invaluable to automatically detect that no keyword is missing in translation.

Maximum Size check

Avoid truncation bugs in web based and mobile apps files.

While truncations and overlapping resources in dialogs are checked in a different test below, this check works in tandem with setting a maximum size (in characters or pixel size) to individual translatable strings. In the knowledge that going over the limit will not fit within the interface of the product it is used in.

Proportional Size check

In a more generic way, you can restrict a translation size in relation to the source string. A percentage or character size limit. Suitable with files which there is no Visual View available in CATALYST.

Clipped text in dialogs

Avoid truncation bugs.

Duplicate hotkeys in dialogs

Automatically detect duplicate hotkeys set on the same Dialog resource.

Duplicate hotkeys in menus

Automatically detect duplicate hotkeys set on the same Menu resource.

Duplicate accelerators

Avoid bugs with the same shortcut key assigned to two menu items.

Validate Dialog for Overlapping Controls

Avoid dialog resources (controls) overlapping, potentially introducing truncated or even hidden text.

 
 

Thanks for taking the time to read this instalment of TechBytes. It has been fun to write and I hope you found some if not all of it beneficial.

I always welcome new article ideas, so if there is a feature you feel works really well and is worth mentioning, or indeed if clarification on a particular topic would help you, please let me know so together we can make TechBytes as useful as possible for everyone.

Remember all the previous released articles are available on our website, in the Support section. Use your Support Centre login to access all the past articles along with other resources available to our premium support members.

My best wishes
Cyril Vallin

 

Alchemy Software Development Ltd. | Block 2 | Harcourt Business Centre
Harcourt Street | Dublin 2 | D02 DX37 | Ireland