Monday, October 23, 2017

Bad programming decisions in CAT tools

Everyone knows what software bugs are: flaws in a program that make the software fail or behave in unwanted and unexpected ways. Bugs are unavoidable in something as complex as software. The most we can reasonably ask of programmers is that they try to lessen the frequency and severity of bugs by using sound programming practices, and that they correct bugs quickly, once found.

Bugs are unintentional, whereas virus, Trojans and other malware are created with malicious purpose.

But, between unintentional bugs and willful malware, there is an entire class of problems caused by intentional programming decisions: when software features work as designed, but the design itself is ill-thought-out.

I'll give two examples from SDL Trados Studio and memoQ.

In Studio, an example of flawed design is the deliberate disabling of "smart quotes" when change tracking is active. According to SDL, "This currently is by design so that no uncontrolled/automatic changes should happen when typing in review mode." However, they didn't think through the real-world consequences of their decision: now, a translator may use smart quotes during translation, but since they are disabled during review, any apostrophe or quote entered during review will be straight. After review, the text of the translation will contain a mess of straight and curly quotes and apostrophes.

SDL Studio: The translator used smart quotes, but the apostrophe used during review is a straight single quote.

Furthermore, apostrophes and quotes are tiny characters: it is entirely possible no one will notice the problem for a while. The first person to notice might very well be the customer... perhaps when he receives the final printed copy, after it is too late to correct the error.

Disabling smart quotes when change tracking is active is harmful, and the problem is made worse because it is not well documented.

For me, I have a good workaround: a short program I wrote in AutoHotkey that allows me to use two different types of smart quotes (and also straight quotes) with no tweaking of Studio's settings, no matter whether change tracking is active.

Maybe, under certain circumstances, it would be better to disable smart quotes during review, but this is a decision that should be left to the translator, not imposed by SDL.

Let's now pass to Studio's main competitor, memoQ.

Here, the flawed feature is a change introduced with version 8 of memoQ: a new behavior, touted as an ergonomic improvement, of the Shift+F3 "change case" function.

Before version 8, Shift+F3 behaved in memoQ much the same as in Word, Studio, or many other programs--it toggled through the various permutations of change case: all lowercase, ALL UPPERCASE, and Mixed Case. Now Shift+F3 opens a drop-down menu, where the user can select the case.

memoQ: An unecessary drop.down menu for a simple function.

The result is the same, but the new "feature" hinders smooth typing by shoehorning in the workflow a change no user had sought. The new behavior slows a translator used to hit Shift+F3 a couple of times, until the desired case is achieved, then press the right arrow and continue typing. Changing case now often requires at least an extra keystroke; worse, it introduces an unnecessary change in a behavior that most users had imprinted in their muscle memory. And since Shft+F3 continues working as before in other programs, the irritation caused by the change will not fade away as you form new habits.

Unlike with the Studio example, there is no workaround: the only thing you can do is return to memoQ 2015, abandoning any useful feature added in version 8.

I imagine that if Kilgray introduced this new feature, someone must have either asked for it or thought it was a brillant idea. Instead, just like SDL's disabling smart quotes in change tracking mode, it is a bad programming decision.

Special free software offer

As I mentioned before I use a short AutoHotkey program to enter smart quotes and apostrophes in Studio. The program lets me enter "smart" single and double quotes, curly apostrophes, "French"double quotes, and also, when I need them, "straight" double and single quotes.

This works for me and would work for other Italian translators as well. If you need a copy of this utility, let me know, and I'll be happy to send it to you "as is".

I can customize (for a small fee) this utility to use different sets of single and double quotes. If you are interested, please write me (you can use the contact form in this blog).


  1. That modification of the capitalization change feature has had a very negative effect on my work and is one reason why I still do most everything with memoQ 2015 (7.8). I've heard the same complaint from a number of others as well.

  2. What I really don't get about the capitalization "feature" is who on Earth may have requested it... or why do they imagine it's a good idea.

  3. Well, most common mistakes can't be avoided. It's worth adding inattention to the huge code, but in order to avoid any large-scale inaccuracies,
    I use the experts help in programming they understand in order to become a programmer, it will take a lot of time, effort and error. However, this is relevant for any profession at all. When I thought about what services have the fine line between utility and speed of execution, the name of just one service with which I have been working for more than a year has come to my mind.


Thank you for your comment!

Unfortunately, comment spam has grown to the point that all comments need to be moderated. All legitimate comments will be published as soon as possible.