LWN.net Logo

Accelerator 1.0.0 released

From:  Mark Summerfield <mark-AT-qtrac.eu>
To:  lwn-AT-lwn.net
Subject:  Software Announcement: Accelerator 1.0.0 released
Date:  Thu, 8 May 2008 15:09:41 +0100
Message-ID:  <200805081509.41506.mark@qtrac.eu>

Hi,

Here's a software announcement for a GUI tool aimed at developers.


Accelerator 1.0.0 released

Accelerator is a GUI program that shows where keyboard accelerators should
go in menu option texts and dialog labels. The program produces optimal
results on the basis that the best accelerator is the first character, the
second best is the first character of a word, the third best is any
character, the worst is no accelerator at all, and no accelerator should be
used more than once. With this program developers can help improve
usability for users who can't use the mouse and for fast typists who don't
want to use the mouse. Accelerator is licensed under the GNU General Public
License v 3 open source license and its (C++/Qt4 cross-platform) source is
available from
http://www.qtrac.eu/accelerator.html

-- 
Mark Summerfield, Qtrac Ltd., www.qtrac.eu



(Log in to post comments)

optimality

Posted May 16, 2008 13:13 UTC (Fri) by pjm (subscriber, #2080) [Link]

Two comments on the goal function:

  • The announcement is incomplete in its specification of the goal function: it orders the possibilities for a given menu item, but doesn't say how to trade off a better assignment for some menu item(s) against a worse assignment for some other menu item(s).
  • It omits some important criteria such as consistency between applications for common menu items, and consistency between different locales (for people who sometimes use an app in one language and sometimes in another), and that more commonly used menu items are more deserving of being assigned better shortcuts.

Information about other applications is lossily available in /usr/share/locale/*/LC_MESSAGES/*.mo, decoded using msgunfmt. (Lossily because one doesn't know which strings are menu/button labels. Containing underscore is often a hint, of course.)

Information about other locales in the application is available in the project's *.po files — at least if the .po files are maintained along with the application, or are in some other way accessible to the developer. Unfortunately, translations are often unavailable at the time when shortcuts are being assigned.

Is information on how often a given menu item or button is selected available? This information would also be useful to translators trying to prioritize the hundreds or thousands of translatable strings.

optimality

Posted May 22, 2008 8:24 UTC (Thu) by m_n_summerfield (guest, #52198) [Link]

The announcement was designed to give a simple explanation of what the program does, not the
details of the algorithm.

The help text provided with the program gives a bit more detail, but to really understand how
it works you'd need to read the source (which also has some comments to help explain).

You can manually provide any shortcut you like (and you can set predefined shortcuts to ensure
consistency).

The program only works with lists of strings but the code for computing accelerators is quite
separate from the GUI, so it should be easy to create other tools that use the accelerator
functionality.

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds