ACSLogo, in common with most other Mac OS X applications, has always allowed a certain amount of localisation by the knowledgeable user — menus and dialogs may have their constant fields translated into a non-English language by editing the resources in the ACSLogo application bundle:
Version 1.4b adds to this by allowing translated commands to be used instead of the English ones. For example, in a German translation, Vorwart might be used instead of Forward.
This means that ACSLogo can be localised for a new language without any program coding changes (and without any work by me!).
There are three parts to localisation:
|The GUI||Localising the static text in menus, dialogs, etc. Also localising dynamic text such as Hide/Show menus and Undo strings.|
|Logo Commands||Translating the Logo commands into your chosen language.|
|Help and Tutorials||Localising the help files and tutorials included in the help menu.|
There's no compulsion to do all of these — you could for instance just do the GUI.
You need to have the free OS X Developer Tools installed. These come on a separate disk with the operating system. With my version of Panther, the disk was called 'XCode Tools'.
In the Finder, a program looks like a single file. In fact it is a 'bundle' — a directory of files and sub-directories including the runnable code and a number of resources. To see the structure, right-click (control-click) on the ACSLogo icon and choose ‘Show Package contents’:
This will give you an icon view of the bundle. Choose column view to see the structure. Everything we need is in the Resources directory:
In this folder, you can see an icon and some TIFF images that are used by the program, and also a number of language folders such as English.lproj and French.lproj. It's these folders that we're interested in. English.lproj is the ‘original’ folder that holds all the english language resources. You can see that some localisation has been done for German, French, and Spanish. To add another language, you would create an additional folder for that language.
Look in the English.lproj folder:
You can see the .nib files, which are the interface files representing menus, windows, etc. The Logo commands folder contains the help files.
Now have a look in the French.lproj folder:
You can see that there are fewer nib files, because some interface elements don't need localising. There's no Logo Commands folder, because the help hasn't been localised. There are an extra couple of files — Localizable.strings is a list of English strings used in the program and their French equivalents; commandmap.plist is a property list file mapping the French Commands to English ones.
You first need to create a .lproj folder for your chosen language. For example, to localise in Italian, you would create a folder called Italian.lproj (if you look in the Resources folder for OS X programs such as Textedit or iCal, you will see the sorts of names you can use). All the localisation will be done in this folder.
The three localisation tasks are described in the following sections: