Translations
Better Messages is fully translatable using WordPress's native i18n system. Every user-facing string is wrapped with standard WordPress translation functions, so any translation tool — Loco Translate, WPML, Polylang, or hand-edited .po files — works out of the box. Translations are distributed through WordPress.org's translation platform: when your site language matches a published translation, WordPress installs the .mo file automatically into wp-content/languages/plugins/.
What it adds#
- Every user-facing string is translatable through standard WordPress tools
- WordPress.org auto-installs translations for the site language whenever they're available
- Customize beyond translation — rephrase strings to match your brand voice
- Compatible with Loco Translate, WPML, Polylang, and any
.po/.moworkflow - Text domain:
bp-better-messages - RTL languages (Arabic, Hebrew, Persian, Urdu) mirror the entire UI automatically
Available translations#
Better Messages is community-translated on translate.wordpress.org. The plugin ships with the source bp-better-messages.pot template; WordPress.org fills in .mo files for every locale that has been translated to the required coverage threshold. To see the current status of your locale (and contribute missing strings), visit the WordPress.org translations dashboard for the plugin.
How it works#
WordPress determines which language to load based on the site's WordPress language setting (or per-user language if a multilingual plugin is active). Better Messages relies on the standard WordPress .mo lookup — the file in wp-content/languages/plugins/ (auto-installed from WordPress.org, or a custom file you place there) is loaded for the current locale.
| Translation source | Priority |
|---|---|
| Loco Translate site-specific overrides | Highest — overrides everything |
Custom .po/.mo in wp-content/languages/plugins/ | Higher than the WordPress.org default |
| WPML / Polylang per-user language | Per-user override |
| WordPress.org auto-installed translation | Default fallback when no custom file exists |
When to translate#
| Audience | Approach |
|---|---|
| Single-language site | Bundled translation activates automatically with site language |
| Multilingual site (per-user language) | Use WPML or Polylang — each user sees their language |
| Brand-customized strings | Loco Translate — override individual strings even in English |
| Untranslated language | Hand-create a .po file via Loco Translate or POEdit |
| RTL site | See RTL support — direction auto-mirrors |
How to translate#
Using Loco Translate (recommended)#
- Install and activate the Loco Translate plugin
- Navigate to WP Admin → Loco Translate → Plugins → Better Messages
- Click New language to add a translation
- Translate strings using the built-in editor
- Save — strings activate immediately
Using WPML or Polylang#
These plugins automatically detect translatable strings from Better Messages and include them in their translation workflows. Each user sees the language they selected.
Manual translation#
Place your .po/.mo files in wp-content/languages/plugins/ following WordPress naming: bp-better-messages-{locale}.po.
Frequently asked questions#
Can different chat rooms have different languages?#
The plugin renders in the user's session language, not per-room. To force a specific language per-room, hook the standard WordPress locale filter (or determine_locale) and return a custom locale based on the request context — Better Messages will then load the matching .mo file.
Are AI bot replies translated?#
The AI bot replies in whatever language the conversation is in (the LLM detects context). UI strings around the message (timestamps, sender labels) are translated via standard i18n.
How do I contribute translations back to the project?#
Translations are managed via Loco Translate locally. To contribute back to the bundled set, contact support — community translations are accepted and bundled in future releases.
What if a string isn't translated yet — does it break the UI?#
No — untranslated strings fall back to English. The UI never breaks; users see English text for any string not yet translated in their language.
Does the mobile app respect translations too?#
Yes — the mobile app uses the same translation files. The OS language determines what's loaded.
See also#
- RTL layout support — Arabic, Hebrew, Persian, Urdu
- AI message translation — auto-translate user messages between languages (WebSocket version)
- Translate WordPress chat blog post — feature overview