Understanding gettext files

YACS uses the GNU Gettext localization framework. Gettext is a mature, widely used framework for modular translation of software. It is the de facto standard for localization in the open source/free software realm.

There are three types of files used in the Gettext translation framework. Depending on the tool you use to translate, you will need to be familiar with some or all of these files.

POT (Portable Object Template) files
The first step in the localization process. A program is used to search through the YACS source code and pick out every string passed to i18n::s() or i18n::c() functions. This list is put together in a specially-formatted template file that will form the basis of all translations.
PO (Portable Object) files
The second step in the localization process. Using the POT file as a template, the list of messages are translated and saved as a PO file.
MO (Machine Object) files
The final step in the localization process. The PO file is run through a program that turns it into an optimized machine-readable binary file, which is the MO file. Compiling the translations to machine code makes the localized program much faster in retrieving the translations while it is running.

Now you have understood that .pot files are the outcome of the internationalization process , that .po files are delivered by translators, and that .mo files are localised files actually used by YACS at run-time.