This post is part of the sub-series on Internationalizing a ClassicPress plugin which is part of the Internationalizing a ClassicPress plugin series.
A text domain is a unique identifier which makes sure ClassicPress can distinguish between all loaded translations and apply the correct one.
The text domain should be a unique string, not used by any other translation (which would include plugins and themes) and so is recommended to match the plugin slug. So if you have a plugin with the slug of my-classicpress-plugin the text domain should be the same.
If the text domain matches the plugin slug, ClassicPress does not require the text domain to be defined in th plugin header (although it is very much recommended that it does i order to avoid collisions with other plugins or themes), but if the text domain is different to the plugin slug, then you need to include the following highlighted line in the header:
/*
* Plugin Name: My ClassicPress Plugin
* Author: Ian Grieve
* Text Domain: my-classicpress-plugin
*/
One important point to remember, is that a text domain cannot include underscores.