Accelerator vs. Shortcut, revisited

by Michael S. Kaplan, published on 2008/06/19 03:01 -04:00, original URI:

In the before time, in the long long ago, when this blog was first finding its voice, I blogged two blogs:

And a recent conversation with some localizers made me think about these two items from the point of view of a localizer.

In a strangely ironic turn, LocStudio (the Microsoft internal and privished tool, mentioned previously) reportedly refers to both accelerators and shortcuts as accelerators.

Anyway, the message I sent out to try and contrast these two items from the standpoint of localization went something like this:

For shortcuts, localizers do need to translate the term for the key (e.g. CTRL vs. STRG), and they will usually put in the letter that appears on the keyboard layout the user of the language is most likely to be using for whatever is under VK_C (if they don't then the user will not know what the text means). The localizer has no way to change the behavior since it is VK-based and code mediated.

For accelerators, localizers still need to translate the term for the key (e.g. CTRL vs. STRG). But for the letter itself, they are fully in control of the accelerator (on menu or dialog) and can change it to anything they like, with the choice usually based on a letter in the word they have chosen in the translation. The localizer has the complete control to change the behavior (assuming the developer did not hardcode the strings!), since it is character based and localizable text mediated.

Localizers therefore have a much more controlling role for accelerators than for shortcuts; in the shortcut case they are forced to just be descriptive, and in rare interesting cases where the VK the code uses does not exist on the keyboard (a problem that has come up in the past), the localizer has no real choice since the application is broken when using that keyboard worldwide (and is just more noticeable in their language).

Thus the fact that the main tool used by MS localizers calls them by the same term even though they play very different roles in the work of those same MS localizers is pretty tragically ironic....

This blog brought to you by(U+0dab, aka SINHALA LETTER MUURDHAJA NAYANNA)

Mihai on 19 Jun 2008 2:32 PM:

The message is so confusing, I don't even understand it.

What is the difference between "shortcut" and "accelerator" (as used here)?

Reading your previous posts does not help, because they are kind of the reverse of what I use.

Why would I call stuff in accelerator table "shortcut" and the stuff outside the accelerator table "accelerator"?

My lingo:

1. Menu string: "&Replace\tCtrl+H"

2. "H",            ID_EDIT_REPLACE,           VIRTKEY, CONTROL


1. "O" in open (used for Alt-O) is a quick-key

 All things with ampersand &x are quick-keys (in menus or dialogs)

 Ctrl+O in the menu string is just "Accelerator description"

2 & 3 Ctrl+O and Shift-Insert are"accelerators", because they are stored in an accelerator table. If the stuff in the accelerator table uses VIRTKEY or ASCII is not relevant, that's still and accelerator.

Localization: changes all of them.

Very often the accelerator themselves are not changed, mostly because of laziness (and truth be told, it's not easy). But look at the Spanish Windows. "Find" is translated "Buscar" and the accelerator is Ctrl+B.

That can break "bold" (also Ctrl+B), so that has to change too.

Michael S. Kaplan on 19 Jun 2008 3:10 PM:

But the choice is not always available to localizers to make a change -- I am distinguishing the case where localization can change it from the one where they can't.

Mihai on 19 Jun 2008 4:42 PM:

"I am distinguishing the case where localization can change it from the one where they can't."

Ok, I see.

The name I use for the case when localization cannot change it is "internationalization bug" :-)

Please consider a donation to keep this archive running, maintained and free of advertising.
Donate €20 or more to receive an offline copy of the whole archive including all images.

go to newer or older post, or back to index or month or day