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

Friday, October 06, 2017

New edition of Mats Linder's Trados Studio Manual now available

Mats Linder has just released a second edition of his immensely useful Trados Studio Manual, now updated to cover Studio 2017 SP1.

Of particular interest are the extensive changes and additions to the Machine Translation section.

The new edition of the manual is free for those who purchased the first edition of the Studio 2017 manual, and available at a 50% discount for those who purchased earlier editions of the manual (those for Studio 2015, 2014, etc.)

You can get the manual from the Trados Studio Manual webpage.

Thursday, October 05, 2017

Belt and Suspenders

Some of us may have a tendency to panic, when faced with some unexpected computer error (and such incidents generally occur when little help is available, or very close to deadlines, or both), but there are steps we can take to defend ourselves from the worst effects of such mishaps.

On Sunday, my partner's computer froze: suddenly neither keyboard nor mouse responded. We tried disconnecting and reconnecting keyboard and mouse, but without result. The last thing left to try was a hard reboot. We did that, and, after restarting in safe mode and then again in normal mode, the computer seemed to be working right: all programs responded as expected.

Until, that is, my partner tried to launch Studio 2017 to continue a project she was working on. At that point the Studio splash screen briefly appeared, only to be followed by an ominous error message: "Not found".

We clicked on the Knowledge Base Community link, but to little avail: no useful help there for this particular error message, so we opened a ticket with SDL's support. Of course, since it was Sunday, the earliest we could expect to hear from support was the following day... and my partner's deadline was rapidly approaching, so we needed to find another way to continue work on her project.

We had two options: either copy the project's files and memories to her backup computer (a laptop), where we still had a copy of an earlier version of Studio, or work on the project with a different translation tool.

We chose the latter option. Getting the sdxliff file to continue work was a simple question of copying it from the SDL 2017 "Projects" folder to a different working folder, but since we couldn't launch Studio, we had to use a different tool to export the most up to date copy of the translation memory: we used Xbench to load the TM and then export it in TMX format. It was then a simple matter of creating a new project in memoQ, add to it the partially translated sdxliff file, create a new memory, and import into it the TMX file we had created in Xbench.

My partner was then able to continue her translation.

The next day, Monday, we received instructions from SDL support. We were told first to try re-installing the program; when that didn't solve the problem, we tried renaming the "projects" XML file, and then various other SDL files and folders. Nothing seemed to work, and the SDL support technician was stumped. She said she'd need to escalate the issue to a more experienced engineer, but since the second-level engineers work out of the UK office, that would have to wait until the following day.

On Tuesday, we were again on a support call, this time with the second-level engineers. They suggested various other remedies, finally succeeding in restoring Studio 2017 to life -- the culprit turned out to be an obscure Windows file (BTW: kudos to SDL's tech support -- it's well worth the money we pay for it, and they are generally patient, thorough, and professional).

In the meantime, my partner had been able to complete the translation of the project in memoQ, and she then proceeded to finalize it in the newly-repaired Studio. So, a happy ending to our short tale of technical issues.

But it got me thinking that such happy endings don't just happen: they require preparation and planning:

  • If we had relied on a single computer, and a single CAT tool, my partner would have been unable to continue working until SDL support had solved the problem;
  • If we had not installed Xbench, we would have been unable to export the data from Studio's memory;
  • If we had not paid for SDL support, our only recourse would probably have been to take the computer to a repair shop, or perhaps ask for advice in the various online forums available, and hope for the best;
  • In this case, there was no damage to the files or to the computer's hard drive, but if such damage had occurred, we would have been prepared also: we regularly back up our files both to external hard drives linked to our home network, and to online storage.

Technical problems happen, but if you plan for them, you can minimize the damage they cause.