CAT stands for Computer-Aided Translation (or Computer-Assisted Translation).
It is any computer program that is designed to aid the process of human language translation.
At the basic level, CAT software is like a word processor for the target language, but it also displays an uneditable version of the source language, broken into separate sentences or segments.
A translator reads each source language segment and types it into the matching target language segment. The translator may be assisted by an online dictionary, a spell checker and a glossary of terms, and even an initial machine translation, which can nearly always be improved upon.
There may also be facilities to reduce the amount of unproductive typing required, such as:
Copying strings from source to target that do not need translation, e.g. lists of names and numbers,
Automatically insert segments that have been translated before or are near matches.
For a multi-user CAT program that can support collaborative translations, additional features allows translators to comment on the meaning of a segment or why they have translated a segment in a particular way. A chat facility is often present, to allow translators to ask questions and discuss different approaches to translating a work.
CAT software can also provide and enforce a structured translation workflow along with different roles. For instance, translators may be restricted to a certain part of a document and cannot change another translators work. That role is performed by an editor, whose job is to correct and improve translations, ensuring consistency in style and tone of voice.