CatComp and Installer¶
CatComp — Catalog Compiler¶
CatComp (NDK_3.1/SWToolkit3/CatComp) is the tool that compiles locale.library message catalogs. It translates human-written .cd (catalog description) and .ct (catalog translation) files into machine-readable .catalog files and C/assembly headers.
The localization toolchain¶
.cd file (English strings + numbers)
│
├──→ CatComp CFILE=app_strings.h → C header with #define MSG_*
│
├──→ CatComp CTFILE=blank.ct → blank template for translators
│
└──→ CatComp .ct (translated) CATALOG=app.catalog → .catalog file
↓
LOCALE:Catalogs/<lang>/
.cd file format¶
;
; Example catalog description
;
MSG_TITLE (1) "My Application"
MSG_OK (2) "OK"
MSG_FILE (3) "File"
MSG_QUIT (4) "Quit"
Each line: identifier, number in parentheses, English string in quotes. Optional min/max length constraints after the string.
C header generation¶
#define CATCOMP_NUMBERS
#include "app_strings.h"
/* Produces:
* #define MSG_TITLE 1
* #define MSG_OK 2
* #define MSG_FILE 3
* #define MSG_QUIT 4
*/
#define CATCOMP_STRINGS
#include "app_strings.h"
/* Produces:
* STRPTR CatCompStrings[] = { "My Application", "OK", "File", "Quit", NULL };
*/
Building a catalog¶
CatComp myapp.cd german.ct CATALOG=LOCALE:Catalogs/deutsch/myapp.catalog
Without german.ct (translation file), use CTFILE= to generate a blank translation template for a new language.
Optimization¶
By default CatComp skips strings where the translation is identical to the English original (saves space in the catalog). NOOPTIM disables this.
Installer (V43)¶
The Amiga Installer (Extras/Tools/Installer-43.3/) is the standard script-driven installation system for AmigaOS applications. Every properly written Amiga application ships an Installer script.
Installer scripts¶
Installer uses a LISP-like scripting language with parenthesized commands:
(welcome)
(message "Welcome to MyApp installation!")
(askdir
(prompt "Where do you want to install MyApp?")
(help "Choose the destination directory")
(default "SYS:")
(dest @dest))
(copyfiles
(source "MyApp")
(dest @dest)
(infos))
(complete)
Key Installer commands¶
| Command | Purpose |
|---|---|
(welcome) |
Display welcome screen |
(message) |
Show a message |
(askdir) / (askfile) / (askchoice) |
User input |
(copyfiles) |
Copy files with progress |
(makedir) |
Create directory |
(startup) |
Initialize installation |
(complete) |
Mark installation done |
(exit) |
Exit installer |
(working) |
Show working indicator |
(foreach) |
Iterate over files |
(if) / (while) / (select) |
Control flow |
(commandlog) |
Log actions for uninstall |
(debug) |
Debug output |
(procedure) |
Define reusable procedure |
Running Installer¶
From Workbench: double-click the Install icon (which invokes L:Installer with the script). From shell: Installer APPDIR:Install.
Style guide¶
The Installer guide includes a style guide that all installation scripts should follow for consistency: use (welcome)/(complete) brackets, provide (help) text on every prompt, use (prompt) that's clear and concise, always provide (default) values.
See Also¶
Sources: ESCOM AG / Heinz Wrobel, CatComp Documentation V40.5 and Installer.guide V1.19 (1995-1996).
Raw: raw/debugging/toolkit-catcomp-installer.md
Updated: 2026-08-04