Поделиться через


Localizing accelerators

As per old, well established conventions, several languages localized certain accelerators. The most common ones are Ctrl+I, Ctrl+B and Ctrl+U. If an application uses these for Italic, Bold or Underline, the accelerator may be switched during localization.

In Swedish, the word "bold" is "fet", "italic" is "kursiv" and "underline" is "understruken", so in Swedish Word the accelerators Ctrl+I and Ctrl+K are switched, as are Ctrl+B and Ctrl+F. The same is true in e.g. Norwegian and Danish. Whether this is good or bad, well, I guess that it doesn't really matter much now. This is how it is, and it's even prescribed in my copy of the GUI Guide from '93. (I must say that it bugs me though, 'cause I often switch between English and Swedish office, and so I always end up making text Bold when I want to Find)

Only thing is, this causes bugs. Subtle bugs, but bugs nonetheless. One example was reported to me by Pelle at www.pellesoft.se over a year ago, and can be illustrated by this HTML markup:

<html>
 <head />
 <body>
 <div contenteditable style="height:100px;width:500px;border:solid 1px black"></div>

 </body>
</html>

If you save this as an html page and browse it, you see an editable text field. In it you can use Ctrl+I, Ctrl+B and Ctrl+U to format the text, just as one would expect. The control has a lot of interesting features, for instance you can press Ctrl+K to insert a hyperlink. Go on, try it.

The problem is though, that if you have Swedish IE, Ctrl+K does not bring up the Hyperlink dialog. Instead it makes text italic. Ctrl+I in turn does not bring up the dialog either; that one shows/hides the Favorites pane. Funnily, even though Swedish, Danish and Norwegian should do the same mapping, on Norwegian and Danish IE, Ctrl+K does bring up the dialog, whereas there's no key combination that makes text italic.

The same issue gives symptoms in Outlook too. When you author a mail in Outlook, you can enter someone's e-mail alias in the To line and press Ctrl+K to try and resolve the alias to a user in the address book. In Swedish Outlook, this does not work if input focus is in the e-mail's text area, because there Ctrl+K gives you italic text. However, if input focus is on any of the other text fields, Ctrl+K does resolve the address. Ctrl+I however, doesn't do much.

Norwegian Outlook is even funnier. There, how Ctrl+K works depends on whether the mail message is in HTML format or Rich Text format. Sometimes it brings up the Hyperlink dialog, sometimes it makes text italic. Danish Outlook

I'm not sure what's going on here. Maybe the inconsistencies between Swedish, Norwegian and Danish is because Outlook and IE use the same control for editable HTML content and Outlook uses different controls for editing Rich Text and HTML, and we just happen to have some differences in localization. I really don't know. Right now I'm trying to track down where the accelerators used in the editable HTML control are actually defined, and then I'll see what I can do in Swedish IE7 to make it possible for the user to bring up the Hyperlink control through an accelerator.

It's these rather subtle bugs that make the job interesting, and it's enormously gratifying that for every new Windows version, I am able to change pretty much any part of the localization that I'm unhappy with in the previous versions of Swedish Windows - terminology, translations, cosmetic issues, functional bugs, anything...


This posting is provided "AS IS" with no warranties, and confers no rights.

Comments

  • Anonymous
    June 30, 2006
    Random stuff.