WordPress uses three different types of files for managing translations:
.potfiles contain a list of all translatable strings in the code.
.pofiles contain a list of translations for a particular language. They are generated from the
.mofiles are machine-readable versions of
.pofiles. They are used by the software to output translations.
Languages and Locales Languages and Locales
WordPress distinguishes between languages, like Portuguese, and locales, like Portuguese for Brazil.
The distinction is done via the naming. Language files only contain the language code, in this case
pt.po. Locale files contain the language and the locale code, so
Correct naming is required for WordPress to find the correct translations. WordPress will look for the language file first, and then for the locale second.
Localisation Tools Localisation Tools
The first tool we’ll use is node-wp-i18n. This Node module includes a command line tool for extracting translatable strings from code.
The second tool we’ll use is Poedit, a MacOS app to create translations.
Creating Translations Creating Translations
Creating the POT File Creating the POT File
To generate the POT file, open a Terminal window, and navigate to the root folder of your plugin or theme. Then run
Assuming that the code is translation-ready, you’ll see that a
.pot files has been created in the root directory.
Creating the PO File Creating the PO File
- Start Poedit, and select Create New Translation from the welcome menu.
- Navigate to the directory containing the previously generated POT file, and open it.
- The UI will prompt you for the language of the translation. Make sure to select the right language and locale. This will ensure that the PO files are named correctly.
- Translate the strings.
- Save the PO file into the
languagesdirectory of your theme or plugin.
Creating the MO File Creating the MO File
Open an existing PO file in Poedit, and select File > Compile to MO. Save the MO file along the PO file in the
Without the MO file, WordPress will not be able to load the translations.
Updating Existing Translations Updating Existing Translations
- Open an existing PO file using File > Open.
- Select Catalogue > Update from POT. This will refresh the strings in the PO file.