WordPress.WP.I18n.TextDomainMismatch
Text Domain Mismatch
A translation or text-domain pattern does not match WordPress internationalization expectations.
Why It Shows Up
Plugin Check found missing text domains, mismatched domains, missing translator comments, variable-only strings, placeholder issues, or deprecated translation loading patterns.
Why It Matters
Translation issues make the plugin harder to localize and can break strings for non-English WordPress users.
How to Fix
- Use the plugin slug as the text domain unless the plugin intentionally declares a different one.
- Keep translatable strings literal and move variables into placeholders.
- Add translator comments before strings with placeholders or ambiguous context.
References
Affected Plugins
| Rank | Plugin | Score | Errors | Warnings | Installs | Added | Updated | Top Issue |
|---|---|---|---|---|---|---|---|---|
| #1701 | Theme Blvd Layout Builder | 35 | 207 | 169 | 2k+ | Output is not escaped | ||
| #1702 | ThemeRain Core | 35 | 69 | 61 | 1k+ | Text Domain Mismatch | ||
| #1703 | Themify Icons | 35 | 33 | 12 | 3k+ | Output is not escaped | ||
| #1704 | Themify Shortcodes | 35 | 36 | 16 | 7k+ | Output is not escaped | ||
| #1705 | Thumbnail Editor | 35 | 187 | 68 | 600 | wp function not compatible with requires wp | ||
| #1706 | TinyMCE Templates | 35 | 41 | 27 | 20k+ | Text Domain Mismatch | ||
| #1707 | Tockify Events Calendar | 35 | 35 | 12 | 2k+ | Output is not escaped | ||
| #1708 | uCalc | 35 | 78 | 8 | 600 | Text Domain Mismatch | ||
| #1709 | Uptime Robot Plugin for WordPress | 35 | 398 | 324 | 600 | Text Domain Mismatch | ||
| #1710 | UTM for Woocommerce | 35 | 14 | 4 | 800 | Output is not escaped | ||
| #1711 | Video Grid | 35 | 253 | 106 | 1k+ | Output is not escaped | ||
| #1712 | Void Elementor Post Grid Addon for Elementor Page builder | 35 | 189 | 93 | 3k+ | Text Domain Mismatch | ||
| #1713 | Voyapp Chile – Lugares y Cotizador de Despachos | 35 | 225 | 84 | 400 | Output is not escaped | ||
| #1714 | Wavy Divider | 35 | 10 | 1 | 700 | Hidden files included | ||
| #1715 | WC Cancel Order | 35 | 52 | 122 | 5k+ | Non-prefixed hook name | ||
| #1716 | WC Moneris Payment Gateway | 35 | 104 | 28 | 900 | Text Domain Mismatch | ||
| #1717 | Conditional Payments and Shipping for WooCommerce | 35 | 338 | 27 | 1k+ | Text Domain Mismatch | ||
| #1718 | Spreadconnect | 35 | 128 | 126 | 700 | Output is not escaped | ||
| #1719 | WC Ukraine Shipping – Integration of Nova Poshta and Ukrposhta for WooCommerce | 35 | 504 | 164 | 7k+ | Text Domain Mismatch | ||
| #1720 | wePOS – Point Of Sale (POS) for WooCommerce & Dokan | 35 | 47 | 66 | 2k+ | Output is not escaped | ||
| #1721 | Which Elementor Addon | 35 | 26 | 3 | 500 | Text Domain Mismatch | ||
| #1722 | All-in-One Addons for Elementor – WidgetKit | 35 | 60 | 311 | 8k+ | Non-prefixed global variable | ||
| #1723 | Open Graph and Twitter Card Tags | 35 | 15 | 27 | 50k+ | error log error log | ||
| #1724 | ALD – Dropshipping and Fulfillment for AliExpress and WooCommerce | 35 | 51 | 344 | 10k+ | Request data is not unslashed | ||
| #1725 | Asaas Gateway for WooCommerce | 35 | 12 | 109 | 8k+ | Non-prefixed global variable | ||
| #1726 | CardCom Payment Gateway | 35 | 201 | 84 | 3k+ | Text Domain Mismatch | ||
| #1727 | Sola Payment Gateway for WooCommerce | 35 | 107 | 116 | 700 | Missing Translators Comment | ||
| #1728 | WP Courseware for WooCommerce | 35 | 55 | 49 | 1k+ | Text Domain Mismatch | ||
| #1729 | Require Login for WooCommerce | 35 | 10 | 6 | 2k+ | wp function not compatible with requires wp | ||
| #1730 | Save and Share Cart for WooCommerce | 35 | 125 | 51 | 600 | Text Domain Mismatch | ||
| #1731 | DPD Baltic Shipping | 35 | 91 | 202 | 2k+ | Text Domain Mismatch | ||
| #1732 | Abandoned Cart Lite for WooCommerce | 35 | 84 | 161 | 20k+ | Non-prefixed global variable | ||
| #1733 | Conversion Tracking for WooCommerce | 35 | 74 | 61 | 20k+ | Output is not escaped | ||
| #1734 | Custom Payment Gateway for WooCommerce | 35 | 11 | 12 | 8k+ | Missing nonce verification | ||
| #1735 | Payment Gateway for PayPal Pro & PayPal Checkout for WooCommerce | 35 | 67 | 147 | 2k+ | Request data is not unslashed | ||
| #1736 | Invoices for WooCommerce | 35 | 55 | 168 | 10k+ | Non-prefixed global variable | ||
| #1737 | Brevo for WooCommerce | 35 | 116 | 67 | 30k+ | Output is not escaped | ||
| #1738 | Wholesale Suite – B2B, Dynamic Pricing & WooCommerce Wholesale Prices | 35 | 22 | 52 | 20k+ | Direct Query | ||
| #1739 | Kybernaut IČO DIČ | 35 | 79 | 68 | 3k+ | Missing nonce verification | ||
| #1740 | Wooplatnica | 35 | 27 | 24 | 400 | Non-prefixed class | ||
| #1741 | Easy Accept Payments via PayPal | 35 | 322 | 128 | 7k+ | Text Domain Mismatch | ||
| #1742 | Bitly's WordPress Plugin | 35 | 6 | 23 | 2k+ | Non-prefixed function | ||
| #1743 | Category Dropdown by GCS Design | 35 | 93 | 52 | 1k+ | Output is not escaped | ||
| #1744 | WP Compiler | 35 | 33 | 20 | 1k+ | Output is not escaped | ||
| #1745 | WP Content Copy Protection | 35 | 76 | 11 | 10k+ | Text Domain Mismatch | ||
| #1746 | WP Datepicker | 35 | 225 | 181 | 7k+ | Output is not escaped | ||
| #1747 | WP Duplicate Page | 35 | 44 | 50 | 60k+ | Text Domain Mismatch | ||
| #1748 | WP Geo | 35 | 180 | 84 | 900 | Output is not escaped | ||
| #1749 | Auto Publish for Google My Business | 35 | 216 | 192 | 10k+ | Input is not validated | ||
| #1750 | WP-KaTeX | 35 | 14 | 8 | 800 | Missing direct file access protection |