Desktop Hacker may be altered to work in another language. If more than one language is available, the language may be picked from the Choices window. Currently available languages are English (UK) and German (D). To make a new language, shift-double-click on !dHacker and copy the 'UK' directory with the name of the new language.
The language directory contains a Messages file and a Templates file. The Messages file is self-explanatory, but in the Templates file Desktop Hacker uses its own system of 3D borders, which you will not be able to see in a template editor. However, they have a similar numbering system to the WimpExt and Interface modules, so if you have an editor that supports either of these modules you'll be able to see them if you alter all '¤bnumber' validation commands to 'wnumber' for WimpExt, or 'bnumber' for Interface.
The borders are not quite the same, especially as their look can be configured; 0-6 are the same as WimpExt (6 being a new-style group title), and 7 is a version of 0 that can also be slabbed in by pressing Menu (for menu arrows). Remember to change the valiation commands back to '¤bnumber' once you have finished!
Desktop Hacker supports some other validation commands, again prefixed with '¤'. You shouldn't need to tamper with these when translating templates to other langusges, but for the record they are:
When the down-arrow key, or Tab is pressed with the caret in this icon, the caret moves to icon number current icon+offset.
Note that ¤r, ¤e, ¤u, and ¤d do the same thing with icons affected: If they're writable, the caret will be moved to the icon, if they are option icons, they are selected (deselecting others in the ESG), and otherwise a Mouse_Click event is generated for the icon (possibly making it pop in too).
Note that the validations ¤r, ¤e, ¤u and ¤d may be used more than once in the same validation, as long as all except the last one select icons rather than position the caret or click icons. For example, the Compare window sets two options and then clicks Compare when Return is pressed in any of the bottom three fields.
You must keep the red 'help' icons in the right place, but you will find that you have to move them around in order to get at the icons beneath them. The help_icon system works by checking each help icon and seeing whether the pointer lies under it. If it does, the icon's message (translated from the token in the red help_icon) is sent to !Help. This is not hierarchical - it is always the first match that is copied. So if icon areas overlap, it is the lowest numbered icon's message that is used.
The only window sizes that are fixed are:
|Disser||Must retain its current width|
|DisserLink||Must retain its current size|
|ListLink||Must retain its current size|
|XferSend||Must retain its current height and icon vertical positions|
|Must retain its current height and icon vertical positions|
|ProgInfo||Must retain its current width and icon horizontal positions|
All other window dimensions and icon positionings may be altered, for example to accomodate any larger icons. If you do make any bits of window bigger, remember to move the help icons over them! Oh, and remember when you alter icons that the fonts may eventually be bigger than those you're using so leave lots of space in the icons.
If you drag Desktop Hacker's Sprites file to your template editor, you notice you can't actually see the icons. This is because Desktop Hacker processes the sprite names in the file to allow the icons to change on a mode change. To see the icons properly, make a copy of sprite file, and rename all sprites called '22_name' (for VGA-res) or '24_name' (for TV-res) to 'name>'. Then drag this new file into the template editor.
Leave all icons deselected. On startup, Desktop Hacker sets the default option and radio icons itself. Setting any others may mess it up. Also, leave all writable icons empty save for list selectors, the slowdown selector, and the print_copies selector, which should have the default (1) in them. All writable icons must be indirected.
History of Desktop Hacker
Format of list files