westfw wrote:Wrapping a user interface around it would probably be a challenge.
Aren't there software-only products (replacement keyboard drivers) that do most of this?
Yes and no. There are layouts that can be created and imported into the operating system. However as I stated earlier login screens are QWERTY only and not all applications work with the layouts. For example, there are many bugs when using Dvorak (a pre-installed layout in Windows) with Excel where the application is not responding to the proper keys. There are also applications that you can run in the background simply by clicking on them (ie: Colemak has Colemak.exe) however you may use a computer (work, library, paranoid friends) that have a policy against running such applications.
But even if there were fully functional drivers if you want to use someone elses PC and not have to mess with it, you can simply carry along your USB bablefish and plug it in. And as long as computers support USB this device would be future proof: ANY operating system will be able to support the layout.
As far as the interface is concerned I thought long and hard about it and here is the best solution I thought of:
Along with this translator will be a very small cache of non-volatile memory. We all know things on flash drives won't last forever however if the amount of memory was decreased exponentially to favor extreme high reliability/durability I would feel safe with it. This memory would store layouts in files named "dvorak.txt, colemak.txt". This layout would be an easily modifying settings map. To preload the map you could create it on a pc and drag it onto this bablefish key.
If the engineer felt uneasy about using flash for this memory, perhaps the ability to burn layouts to ROM and then socket them in? This is a device I predict being in service for over 15+ years.
To access the map, you would go to any text editor and hit a key combination that would active a menu and print out into the text editor:
(clicks specific key combo)
(message prints in text editor):Current Layouts on Bablefish:
x. etc, etc, etc
It will cycle through all layouts in alphabetic order and display a numeric in front of it. The user would not have to program this menu, it simply adds a numeric and then the filename minus extension.
This numeric would then load the layout into the translator/or exit.
After that you can leave the text editor or keep typing. You will NOT have to do this every time you login/reboot - it will remember the last selected layout.
The advantage to keeping the layouts this way is that it makes it very easy to redistribute them on backup units and online.
And yes, if the price is right people won't hesitate to buy 2-3 backups.