Monday, May 7, 2018

In Defense of AutoSuggest Dictionaries in the Time of Fragment Matches

I have seen some arguments that favor forgetting all about AutoSuggest Dictionaries now that we have UpLift fragment matching in SDL Trados Studio, and since I can't agree with this, I thought I'd write about why I think both should coexist instead.

I'll start this post by clarifying the difference between AutoSuggest and AutoSuggest Dictionaries.

AutoSuggest
This is SDL Trados Studio's functionality that allows the user to receive suggestions from multiple sources after typing the first letter or letters of the intended translation.

AutoSuggest settings are accessed via Options - AutoSuggest. Here, one can decide which providers to enable by checking or unchecking the appropriate boxes. Further settings are available for the Translation Memory and Automated Translation provider, where one can decide whether fuzzy and concordance matches should be used, for example.


AutoSuggest Dictionaries
As we can see in the screenshot above, AutoSuggest Dictionaries are one of the AutoSuggest providers one can use.

AutoSuggest Dictionaries need to be created by selecting a translation memory and following the Create AutoSuggest Dictionary wizard found in the Translation Memories view. Once the creation process is started, Studio will automatically handle phrase extraction with no user intervention.



At the end of the process, a *.bpm file will have been created, which will then need to be added via Options/Project Settings-Language Pairs-Specific Language Pair to be available as an AutoSuggest provider.



There are two things worth noting here:

  1. The actual contents of the AutoSuggest Dictionary are somewhat of a mystery, as one cannot browse or edit the content in any way.
  2. In order to create an AutoSuggest Dictionary, Studio must have the appropriate functionality installed. However, even if a user can't create AutoSuggest Dictionaries, they can still use dictionaries shared by others.

The case for AutoSuggest Dictionaries
While the amazing technology behind fragment matches (available since Studio 2017) has made a great difference as recently entered translations are offered as AutoSuggest hits, I have found that fragment matches are not necessarily a substitute for well-curated AutoSuggest Dictionaries, as the suggestions from both sources tend to differ and in some cases AutoSuggest Dictionaries offer more relevant hits.

To illustrate this, I've collected several examples from an actual project I'm working on. The TM I'm using for this project (and where the fragment matches are coming from) is the same TM that was used to create the active AutoSuggest Dictionary. So I guess that would mean that if UpLift fragment matching really makes AutoSuggest Dictionaries redundant or obsolete, we would see the same suggestions coming from both, or, at the very least, the suggestions from the AutoSuggest Dictionary would not be as useful, right? Let's see.

Have a look at this example, where the source text contains the phrase "prescription medications", and the following AutoSuggest entries are offered.



Green icon = Termbase     Green and yellow icon = Fragment matches    Blue icon = AutoSuggest Dictionary

The backtranslation of the above is:
medications 
medications and 
medications and
medications
medications (I'm guessing, this one isn't in Spanish!)
prescription medications
prescription medications
prescribed medications
medications
medication

As we can see, there are suggestions coming from the termbase (1) and fragment matches (4, although the last one is certainly not Spanish), but the most valuable suggestions are the first 3 coming from the AutoSuggest Dictionary.

Here's another instance from the same project, triggered by typing the first letter for the translation of the word "treatment", where the AutoSuggest window doesn't even include any fragment matches.


Without the AutoSuggest Dictionary, all those suggestions would be lost.

And here's yet another instance, where we can see that sometimes only the AutoSuggest Dictionary returns hits.


In the example below, I get both fragment matches and AutoSuggest Dictionary hits, but while the fragment match is close, the exact one I need "salir del hospital" (no punctuation) comes from the dictionary.

I could add many more examples, but I think this illustrates my point. While fragment matches via UpLift technology are an incredibly valuable resource during translation, they do not render AutoSuggest Dictionaries obsolete or useless, and we would be doing ourselves a disservice if we stop using them because of this misconception. We should definitely take advantage of both for a richer AutoSuggest experience.












Friday, April 27, 2018

How can I improve my English?: 5 strategies for improving your fluency

This post is a bit different from my usual content, which focuses on translation and the technology that makes translators' lives easier, but before becoming a full-time translator and interpreter I was an English teacher and a teacher trainer, so this is something I'm also very passionate about.

During one of my interpreting assignments this week, someone asked a question I often get at these events: how can I improve my English?

The woman who asked this question explained that she had completed close to 400 hours of English lessons but she still felt unable to speak the language confidently and fluently.

It's been a while since I've taught English, and a couple of years since I've done teacher training work, but this is the advice I always give to those interested in improving their fluency, so these are the strategies I shared with her.

1. Find a private tutor. When you've taken so many hours of English instruction, it's going to be hard to find a class in a language school that will be appropriate for your level. What you need at this point is to activate all the language you have learned, and private lessons, tailored just for you, may be what helps you finally do that.

2. Practice with yourself. This is one that I used a lot when I was first learning English. You know all that self-talk we engage in? Instead of doing it in your native language, try doing it in English. Out loud. When? When you're driving your car (by yourself, of course, otherwise your passengers may think you're going insane), when you're alone in the house, when you're in the shower, anywhere and any time you can think of. If you run out of self-talk topics, pretend you're a guest in a talk show, recreate a conversation you had earlier with someone, narrate the plot of your favorite movie. The idea is to get you talking. This has the benefit of helping you realize all the ways in which you are able to use English, as well as any gaps you need to fill. Was there a word you wanted to say but don't yet know how to say it in English? Look it up and try again to say what you wanted to say.

3. Listen to TED Talks. I always recommend TED Talks because you can find talks on practically any subject that you find interesting and you can find an appropriate length for the time you have. My suggestion is to take a three-step approach: first, listen to the TED Talk without using subtitles. Listen intently, try to grasp the main ideas, but also try to identify any parts that may be a bit hard to understand. Take notes if you can. Then listen a second time, now with subtitles on, preferably in English. Don't be shy to pause the video and take note of any words that escaped you during your first round. Don't just write them down, say them as well. Try to say the whole sentence that contains the new word(s). When you're done with round two, listen a third time, pause the video at appropriate points and repeat what the speaker just said. Once you're done, you can combine this strategy with the previous one and pretend telling someone what the talk was about.

4. Don't be afraid to talk. Don't be embarrassed, either. Native English speakers tend to be very tolerant of our mistakes. And many of the English speakers you'll come across are not native speakers either. You don't have to wait until you have a perfectly constructed utterance in mind to speak. Like with so many other things, the best thing is to... Just Do It! You'll be amazed at how much better you are at speaking English than you thought you would be.

5. Read. Reading increases our vocabulary and makes us accustomed to the structure of English. This, in turn, makes it easier for words and sentences to flow when we're trying to speak. If you can, also write. One of the most helpful incidental activities to improve my English when I was studying to get my degree was writing. I had to write essays in English practically every day for four years. I'm pretty sure the first ones were not very good. But as time goes on, reading and writing enrich our language and help us become better listeners and speakers.

Whatever you do, be persistent. Language learning is always more successful when you practice it constantly.


PS I realize the irony of writing this in English when the intended audience is people who want to improve their English, so I promise I will post a Spanish version soon.

Monday, February 19, 2018

Do you speak Trados?

One of the most frustrating things for me when I was first learning how to use Trados was not knowing the jargon when I was trying to ask a question or discuss an issue. Now that I've become a bit more familiar with SDL Trados Studio, I find that colleagues who are new users also struggle with this. These short definitions are my contribution to help improve this issue.

There are only a few for now, but I'll be adding more definitions over time.










Sunday, February 4, 2018

When One Keyboard Isn't Enough

Today I thought I'd share with you a little toy I have sitting next to my keyboard that makes my life a little easier: an X-Keys keypad. It looks just like this:



What is it?
You can probably tell just by looking at it: it's 24 additional programmable keys. So, does that mean you can program 24 actions/macros/functions with an X-Keys keypad? No, you can actually program more, as each key can be programmed to do something different depending on which application is open, plus there are layers.

The keypad is programmed with a bundled program called MacroWorks 3.1. Here's a list of features from the manufacturer's website:





The keys are backlit, and you can choose either blue or red, and even choose the backlighting on an individual key basis. I have turned off the backlighting altogether, so that's also an option.

What do I use it for?

First, I have to say that even though I have all these keys at my disposal, I find myself using about half most of the time, the bottom half to be precise, and also sometimes the right column. The bottom right key is my "Confirm" key in the various CAT-tools and environments I use: SDL Trados Studio, as my main CAT tool, but also Wordbee, MemSource and occasionally MemoQ. Other SDL Trados Studio related actions include frequent actions, such as Concordance, Quick Add New Term or Filtering. Other keys perform functions such as:
  • Launch the Find and Replace dialog
  • Open specific folders
  • Launch or switch focus to specific programs
  • Type characters that are not readily available on my Spanish keyboard layout, such as >, <
  • Dedicated keys for straight and curly quotation marks, so no more switching between the two kinds
  • Launch AutoHotkey macros (particularly useful when I assign a finger-bending key combination to an AHK script, such as Ctrl+Shift+Alt+Q)
  • Mouse left and right clicks
  • Zoom in and out in programs like InDesign
  • Copy, cut, paste
  • Backspace
You get the idea... Here's a partial list of my key assignments:



How difficult is it to program?
Not difficult at all! You just open MacroWorks, either by pressing a little button on the back of the keypad or via Windows, and you can go to an interface where you choose a key, assign an action to it and save it. Key assignments can be stored in the hardware itself or in the software. 

To make things easier while programming your keys, there are four options to enter a macro event: Text, Keystrokes, Shortcut, Function, all quite self-explanatory.

Here I'm assigning a button to launch BaccS, my translation management software:




My only complaint* is that when I first got my keypad, MacroWorks was perfectly functional and responsive, so much so that I would often change key assignments depending on what I was doing, since it could be done in seconds, but at some point, it started getting really slow, and now it takes a bit (or a lot) of patience to add new key assignments, as the software has become quite unresponsive, even with the latest updates. I would show you a little video, but it might be more fun to watch paint dry. Really, it's that slow, at least on my system. This doesn't seem to be a widespread issue, though, and I probably just need to find the time and the right support to troubleshoot it.

*Update: Writing this post inspired me to seek some support with my issue, and PI Engineering replied to my email quickly, offering a solution, which worked perfectly, so MacroWorks is quite fast once again. If you use Windows 10 and are experiencing speed issues with MacroWorks, see the bottom of this post for the fix.


Final words
My X-Keys keypad is one of my favorite computer add-ons. When I'm on the road, I really miss it and can feel the difference it makes when I'm back and using it again. It's one of those little things that can help increase productivity. And every little bit counts!








-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------

Fix for the MacroWorks 3.1 speed issue in Windows 10, as provided by P.I. Engineering support:

First lets elevate some permissions and run the software in “compatibility mode for WIN 7” . Go here C:\Program Files (x86)\PI Engineering\MacroWorks 3.1  and for the following entries:
MacroWorks 3 Launch
MacroWorks 3g
MAcroWOrks 3r
Macroworks3r.vshost
Right-Click and select “Properties>Compatibility Tab” place a checkmark in the “Run this program in compatibility mode for: (Win7)” box and the “Run this program as an administrator” box, then select “Apply” and reboot the computer entirely for the changes to take effect.



Tuesday, November 14, 2017

Replace All that Really Means Replace All

When doing a find and replace operation in SDL Trados Studio, clicking Replace All right after entering your find and replace strings does nothing: you have to click Find Next first, then click Replace All.

This has long been a pet peeve of mine, so I thought I would try and find a way to make this behavior more similar to what happens in MS Word, where clicking Replace All really does mean that all found instances will be replaced at once, and I'm happy to report that I've found a solution that works well for me.

What I needed was a way to still click Replace All and have that automatically go click Find Next and then Replace All again, without me having to do anything else.

To accomplish this, I used AutoHotkey. Here's how you can implement this simple solution yourself.

Warning: This works for the English interface of Studio. If you use a different language and would like to adapt it, follow the steps at the end of this article.

Step 1: AutoHotkey should be installed (if needed, you can download it here)

Step 2: Download my Replace All AutoHotkey script, and load it by double-clicking on the file.

To use the script, open Find and Replace as usual, filling out the necessary fields and checking the necessary checkboxes. Once everything is ready, simply click Replace All and the script will take care of the rest, clicking Find Next, then Replace All again, as required by Studio.

Script breakdown

;------------------------------------------------------------------------------
;Replace All no longer requires "Find Next" first, by Nora Díaz
;------------------------------------------------------------------------------
~LButton::
ifWinActive Find and Replace
{
  MouseGetPos,,,,Ctrl

  if (Ctrl = "WindowsForms10.BUTTON.app.0.29531c8_r9_ad19")

  {

  Controlclick, Find &Next, Find and Replace
  Sleep 1000
  Controlclick, R&eplace All, Find and Replace

  }
}
Return

Explanation
The script first determines if the button being clicked is the Replace All button, which is designated by its ID WindowsForms10.BUTTON.app.0.29531c8_r9_ad19:

  MouseGetPos,,,,Ctrl

  if (Ctrl = "WindowsForms10.BUTTON.app.0.29531c8_r9_ad19")


If the Replace All button has been clicked, then the script triggers a series of events where it clicks the Find Next button in the Find and Replace window and then the Replace All button in the Find and Replace window.

  Controlclick, Find &Next, Find and Replace
  Sleep 1000
  Controlclick, R&eplace All, Find and Replace

I find that the delay between clicks is necessary to give the script the time to find the next instance of the text to be replaced. When the delay is too short, the two buttons are clicked quickly in succession and nothing happens, as Studio has not had enough time to find the first instance to be replaced.

Adapting the script to work with other languages
Since button and window names obviously change depending on SDL Trados Studio's interface language, the script above will only work for the English interface. However, this can be easily adapted to work with other languages, by replacing the information highlighted below with the appropriate language text.

;------------------------------------------------------------------------------
;Replace All no longer requires "Find Next" first, by Nora Díaz
;------------------------------------------------------------------------------
~LButton::
ifWinActive Find and Replace
{
  MouseGetPos,,,,Ctrl

  if (Ctrl = "WindowsForms10.BUTTON.app.0.29531c8_r9_ad19")

  {

  Controlclick, Find &NextFind and Replace
  Sleep 1000
  Controlclick, R&eplace All, Find and Replace

  }
}
Return

The yellow highlights are for the button names, while the blue highlights are for the window names.

To figure out what should be used to replace the highlighted text, have a look at your window in Studio. For example, for Spanish, the Find and Replace window looks like this:


The window is called Buscar y reemplazar
The buttons are called Buscar siguiente and Reemplazar todo

An ampersand (&) is needed right before the letter designated for the Alt shortcut in the button, which appears underlined in the buttons in the image above, so the text to be used in the script should be:

Buscar &siguiente
Ree&mplazar todo

Thus, the modified script for Spanish (which you can download here) would look like this:

;------------------------------------------------------------------------------
;Replace All no longer requires "Find Next" first, by Nora Díaz - Spanish
;------------------------------------------------------------------------------
~LButton::
ifWinActive Buscar y reemplazar
{
  MouseGetPos,,,,Ctrl

  if (Ctrl = "WindowsForms10.BUTTON.app.0.29531c8_r9_ad19")

  {

  Controlclick, Buscar &siguienteBuscar y reemplazar
  Sleep 1000
  Controlclick, Ree&mplazar todoBuscar y reemplazar

  }

Return

That's all it takes to adapt the script, but if, like me, you're learning about AutoHotkey and would like to know where this information came from, here's a little extra information.

While initially working on this script, I used AutoHotkey's Window Spy to determine the correct window and button names. To access this useful tool, right-click on the green AutoHotkey icon of any running script and select Window Spy, then click on the desired window, in this case Studio's Find and Replace window.

For the example below, I clicked on the Replace All (Reemplazar todo) button.


Tip: Use Win+A to freeze the display; otherwise, the information changes whenever you move the mouse. Use Win+A to unfreeze.

So, that's all. If you find this script useful and adapt it for other languages, feel free to share it in the Comments section for other users who may benefit from it.

And, of course, any improvements from more advanced AutoHotkey users are more than welcome!


Thursday, July 13, 2017

Searching File Contents in Translation Memories and Termbases (or Any File!) in Windows Explorer

While working on a Studio project that has old or multiple TMs, I often find myself trying to remember which TM was used for a specific topic or part of the project, and then opening multiple TMs and searching for key words until I find the one I need.

During a particularly frustrating hunt for the right TM today, it occurred to me that there had to be a faster and easier way. If only Windows were able to search the content of my Translation Memory and Termbase files the way it can search the content of other file types... Well, it turns out there is a way, and it's not terribly complicated to set it up.

Here are the steps for Windows 10, in case anybody else finds this useful.

1. Go to the Start menu and search for "Indexing Options"

2. Click the Advanced button

3. Go to the File Types tab

4. Locate the sdltm extension, and after selecting it, click the Index Properties and File Contents radio button. The Filter Description will change from File Properties filter to Plain Text Filter. Repeat with the sdltb extension (or any other file extension, for that matter).


 6. Click OK to close everything and exit Indexing Options.

It may take a while for your computer to reindex the files, but you should now be able to go to Windows Explorer, open a folder where TMs or Termbases are stored, do a search, and have the relevant TMs or Termbases be listed in the search results.








Tuesday, January 10, 2017

Autopropagating Segment Status in Review Mode in SDL Trados Studio

Aug. 2017 Update: This issue has been resolved in Studio 2017 SR1.

The problem: When in Review mode in Studio, segment status for repetitions is not propagated when Track Changes is on and no edits are made to the segment.



The workaround: An AutoHotkey script that disables track changes right before confirming the segment, then enables track changes again after the segment has been confirmed.



Until a change is made to Studio to allow segment status to propagate in all instances, the following workaround can be used to achieve the desired effect.

Step 1: AutoHotkey should be installed (if needed, you can download it here)

Step 2: Download my Review Macro AutoHotkey script, and load it by double-clicking on the file.

Script breakdown

$^Enter::  ;This is the hotkey (Ctrl+Enter, adapt if your Confirm and Move to Next Segment shortcut is different)
Sleep 300  ;a short delay before the script execution starts, for better reliability
Send, ^!{F10}  ;Toggle track changes off
Send, ^{Enter} ;Confirm segment (Ctrl+Enter, adapt if your Confirm and Move to Next Segment shortcut is different)
Send, ^!{F10} ;Toggle track changes on
Send, {Esc}
Return

#s::  ;Hotkey toggle to suspend/resume the macro (Windows Key+S)
Suspend
if (A_IsSuspended)
MsgBox, Review Macro suspended
else
MsgBox, Review Macro active
Return

Explanation
Once the script is loaded, to use it you would simply confirm your segments as you usually do (assuming that you use Ctrl+Enter as your shortcut; if not, adapt the script as needed). When the Confirm and Move to Next Unconfirmed Segment shortcut is used, the script will toggle Track Changes off, confirm the segment, then toggle Track Changes back on. What this means is that segment status will be correctly propagated, as Track Changes will be disabled right before confirming the segment, regardless of whether changes were made or not.

Warning notes:
1. If the script is loaded while in translation mode, there may be some undesired effects when the shortcut is used, as track changes is toggled on and off every time a segment is confirmed. Due to this, it's best to only load the script when in review mode and unload it once the review is done. To learn how to load and unload AutoHotkey scripts, watch the short video below.



2. For the script to work, track changes needs to be on before starting the review, otherwise, the first thing the script will do is enable track changes, which defeats the purpose of the script.

3. A limitation of the script is that if a change is made to a segment that had been previously confirmed and contained tracked changes, when confirming the segment again, the new edits won't propagate to repeated segments and won't be committed to the TM because Track Changes is off prior to confirming the segment. An error message will be displayed saying that reviewed content cannot be edited when review mode is off. To solve this, the script can be suspended while the segment in question is confirmed, then activated again by using the Windows Key+S shortcut as a toggle.

I hope you will find this useful!

Note: Edited 01-11-2017 to add warning #3 and update the script accordingly.