Translating Benecaster
Benecaster ships the translation catalog, not translations. No language arrives ready to use — making one is yours to do, and the workflow is the standard WordPress one, so any tool you already use will work. Every string in the plugin is available for translation, the PHP side and the React admin alike.
What Is and Isn’t Translatable
The catalog at languages/benecaster.pot covers both halves of the plugin: the PHP source and the React admin interface. Nothing is missing from one and present in the other, so translating the .pot translates the whole product.
Email templates are the one exception. They are not part of the string catalog — they are template files you edit directly, so translating them means customizing the template rather than supplying a .po file. Benecaster resolves each subscriber’s locale and checks for a matching template before falling back to the default: ship a translated copy at {theme}/benecaster/emails/{locale}/{template}.php (for example {theme}/benecaster/emails/fr_FR/welcome.php) and it is used automatically for subscribers in that locale — no additional hooking needed. Use the benecaster_email_template_locale filter to normalize locale codes or map unsupported locales to a fallback. See Send locale-aware email templates to subscribers in their own language for a worked example, and Customizing Emails for the base template customization pattern.
Creating a Translation
- Start from the catalog. Open
languages/benecaster.potin Poedit, or install Loco Translate and point it at Benecaster to work inside WordPress. - Translate the strings and save. You’ll get a
.pofile (the editable source) and a.mofile (the compiled version WordPress actually reads). Both should be named for your locale —benecaster-fr_FR.poandbenecaster-fr_FR.mo, for example. - Place the files in
wp-content/languages/plugins/. That directory survives plugin updates. The plugin’s ownlanguages/folder also works, but its contents are replaced whenever Benecaster updates, so anything you put there will be lost. - Activate the locale in Settings → Language so Benecaster uses it when communicating with subscribers in that language. See Language Settings — a translation file on disk is not used until its locale is in the supported list.
If you’d rather contribute your translation back so every Benecaster user gets it, get in touch — community translations are welcome and we’ll fold them into the shipped catalog.
See Also
Need this built rather than just documented? See our services →