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 |
|---|---|---|---|---|---|---|---|---|
| #1601 | Give – Divi Donation Modules | 35 | 286 | 12 | 600 | Text Domain Mismatch | ||
| #1602 | Glossary | 35 | 169 | 93 | 2k+ | Non Singular String Literal Domain | ||
| #1603 | Gravitec.net – Web Push Notifications | 35 | 47 | 52 | 1k+ | wp function not compatible with requires wp | ||
| #1604 | Gum Addon for Elementor | 35 | 660 | 72 | 50k+ | Text Domain Mismatch | ||
| #1605 | HivePress – Business Directory, Listings & Classified Ads Plugin | 35 | 38 | 180 | 10k+ | Direct Query | ||
| #1606 | PDF Compressor & Watermark – iLovePDF | 35 | 216 | 5 | 600 | Text Domain Mismatch | ||
| #1607 | ImageMagick Engine | 35 | 63 | 29 | 60k+ | Unsafe printing function | ||
| #1608 | Import Users & Customers with Meta | WP Ultimate CSV Importer Add-on | 35 | 27 | 140 | 5k+ | Interpolated SQL is not prepared | ||
| #1609 | Inspiro Starter Sites – 20+ Free Demo Templates for Gutenberg & Elementor | 35 | 6 | 200 | 10k+ | Non-prefixed global variable | ||
| #1610 | Social Feed Gallery | 35 | 104 | 52 | 80k+ | Text Domain Mismatch | ||
| #1611 | iPages – FlipBook Image & PDF Viewer | 35 | 467 | 177 | 2k+ | Text Domain Mismatch | ||
| #1612 | Issuu PDF Sync | 35 | 159 | 28 | 900 | Text Domain Mismatch | ||
| #1613 | JetStyleManager for Gutenberg | 35 | 20 | 64 | 20k+ | Nonce verification recommended | ||
| #1614 | Jetpack VideoPress | 35 | 710 | 241 | 7k+ | Text Domain Mismatch | ||
| #1615 | Kadence for WooCommerce and Elementor | 35 | 39 | 21 | 3k+ | Output is not escaped | ||
| #1616 | Kargo Takip | 35 | 84 | 142 | 3k+ | Missing nonce verification | ||
| #1617 | Kiyoh customer review | 35 | 173 | 68 | 500 | Output is not escaped | ||
| #1618 | Kustom Checkout for WooCommerce | 35 | 101 | 505 | 10k+ | Dynamic hook name | ||
| #1619 | Klarna Order Management for WooCommerce | 35 | 22 | 37 | 10k+ | Non-prefixed hook name | ||
| #1620 | Lead Call Buttons | 35 | 113 | 81 | 5k+ | Output is not escaped | ||
| #1621 | Lead Form Builder & Contact Form | 35 | 400 | 345 | 9k+ | Output is not escaped | ||
| #1622 | Topic Progression Using Storyline/Captivate for LearnDash | 35 | 382 | 25 | 400 | Text Domain Mismatch | ||
| #1623 | Lenix scss compiler | 35 | 133 | 34 | 800 | Exception output is not escaped | ||
| #1624 | LiteSpeed Cache | 35 | 286 | 893 | 7m+ | Non-prefixed global variable | ||
| #1625 | MainWP Child Reports | 35 | 49 | 116 | 100k+ | Non-prefixed hook name | ||
| #1626 | Mark Posts | 35 | 30 | 34 | 1k+ | Output is not escaped | ||
| #1627 | Marquee image crawler | 35 | 168 | 136 | 700 | Non-prefixed global variable | ||
| #1628 | Mechanic Visitor Counter | 35 | 240 | 66 | 7k+ | Output is not escaped | ||
| #1629 | MeetingHub – Webinar & Meeting Plugin for Zoom, Google Meet, Webex, Microsoft Teams, & Jitsi Meet | 35 | 33 | 289 | 400 | Non-prefixed global variable | ||
| #1630 | Restaurant Menu – Food Ordering System – Table Reservation | 35 | 317 | 186 | 8k+ | Unsafe printing function | ||
| #1631 | Mighty Pros & Cons | 35 | 12 | 6 | 800 | Text Domain Mismatch | ||
| #1632 | Mini Ajax Cart for WooCommerce | 35 | 297 | 240 | 900 | Text Domain Mismatch | ||
| #1633 | Mini Cart for WooCommerce – Add a Stylish Sliding Cart | 35 | 42 | 160 | 600 | Non-prefixed global variable | ||
| #1634 | MONEI Payments for WooCommerce | 35 | 15 | 65 | 500 | Non-prefixed hook name | ||
| #1635 | mosparo Integration | 35 | 114 | 301 | 900 | Missing nonce verification | ||
| #1636 | myPOS Checkout | 35 | 151 | 8 | 4k+ | Text Domain Mismatch | ||
| #1637 | NewsPlugin | 35 | 84 | 53 | 400 | Text Domain Mismatch | ||
| #1638 | Nginx Cache Controller | 35 | 79 | 96 | 1k+ | Text Domain Mismatch | ||
| #1639 | Ni WooCommerce Sales Report | 35 | 236 | 256 | 500 | Text Domain Mismatch | ||
| #1640 | Nooz | 35 | 287 | 108 | 500 | Text Domain Mismatch | ||
| #1641 | NS Cloner – Site Cloner and Multisite Duplicator | 35 | 29 | 16 | 7k+ | Missing direct file access protection | ||
| #1642 | Email Marketing for WooCommerce by Omnisend | 35 | 12 | 21 | 40k+ | Non-prefixed function | ||
| #1643 | One Page Express Companion | 35 | 132 | 65 | 10k+ | Output is not escaped | ||
| #1644 | ONet Regenerate Thumbnails | 35 | 190 | 64 | 1k+ | Text Domain Mismatch | ||
| #1645 | Order Delivery Date for WooCommerce | 35 | 2,075 | 73 | 10k+ | wp function not compatible with requires wp | ||
| #1646 | OSM Map Widget for Elementor | 35 | 183 | 14 | 9k+ | Text Domain Mismatch | ||
| #1647 | OT Flatsome Vertical Menu | 35 | 126 | 26 | 10k+ | Text Domain Mismatch | ||
| #1648 | Otter Blocks – Gutenberg Blocks, Page Builder for Gutenberg Editor & FSE | 35 | 131 | 41 | 300k+ | Missing direct file access protection | ||
| #1649 | Paybox WooCommerce Payment Gateway | 35 | 165 | 88 | 500 | Non Singular String Literal Domain | ||
| #1650 | Paytrail for WooCommerce | 35 | 28 | 46 | 3k+ | Non-prefixed global variable |