Translation for HMI (Human-Machine Interface) strings

Our clients in engineering and manufacturing often require translation for HMI (Human-Machine Interface) strings. Translating HMI strings is not as straightforward as you might think. This type of project requires ongoing communication between the client, the project manager, and the translation team.

Challenge 1: Where’s the text?

When the client provides the source text, oftentimes the translatable text is embedded within strings of CNC code. Although computer-aided translation (CAT) tools can be configured to extract text from code, not all proprietary file types are compatible and easily integrated. In these instances, the project manager must devise a way to identify the translatable text for the team while protecting the integrity of the code. Methods for prepping the source text include writing regular expressions to extract translatable strings.

Once we’ve retrieved all the text, we use CAT tools to analyze word count and identify repetitions. The word count provides a baseline for calculating our quote.  We also create a glossary of key terms. As a first step, glossary translation ensures consistency across all elements of the project. It also helps predict “text expansion” issues which we describe below. The translations of some terms may require more characters than the source. If these terms exceed the space allotted for the field, now is the time to start coming up with abbreviations.

Challenge 2: What’s the context?

Once the project manager has prepped the source, the translators face a second issue. HMI strings can be very short, sometimes no longer than a single word.  For example, the following source (English) included an isolated term “Current.” The term could refer to electrical current, air current, or relative timing (i.e., past or current?)

English source:

Air Dryer Air Flow Failure Alarm Delay
Current=/*N:6 [plc]AaCfgActive.UnAD.flowAlmDelay NOFILL DP:0*/ Archive=/*N:6 [plc]AaCfgArchive.UnAD.flowAlmDelay NOFILL DP:0*/

French target:

Sécheuse à air – Défaut d’écoulement d’air – Retard de l’alarme
Courant=/*N:6 [plc]AaCfgActive.UnAD.flowAlmDelay NOFILL DP:0*/ Archive=/*N:6 [plc]AaCfgArchive.UnAD.flowAlmDelay NOFILL DP:0*/

Context in the form of manuals and schematics is critical for making sense of short HMI strings, but the client should also be available for answering queries.

Challenge 3: It’s expaaaanding!

Text expansion presents a third challenge to translation for HMI strings. Certain languages “expand” during translation. They simply require more characters than English. Space for displaying strings is typically limited, and the available character-count on the interface may vary from string to string. When translating into a language which expands, like Spanish, the target translations sometimes overrun their allotted space.

Of course, translators try to keep the target text short. Typically we advise the team not to exceed the source character count by more than 20%. During QA we can check for segments than could not be condensed.  At this point, we send the translated strings back to the client to load them into the HMI. If the client identifies overruns, the translation team can shorten certain strings. They might choose different words or, more commonly, substitute abbreviations.

Two kinds of memory

As with all new projects, translating software into a new language for the first time can be labor intensive. As our relationship with our manufacturing clients has matured, we have assembled client-specific translation memories, glossaries/term bases and style guides to reduce the amount of back-and-forth. Beyond the tangible “translation memory,” our team’s “institutional memory” grows as well; the mutual understanding and rapport between client and agency becomes more valuable with each new project.