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 |
|---|---|---|---|---|---|---|---|---|
| #2751 | Dashboard To-Do List | 50 | 21 | 8 | 1k+ | Unsafe printing function | ||
| #2752 | Block IPs for Gravity Forms | 50 | 8 | 36 | 1k+ | Request data is not unslashed | ||
| #2753 | HT Slider For Elementor | 50 | 884 | 40 | 20k+ | Text Domain Mismatch | ||
| #2754 | Mailster Gravity Forms | 50 | 46 | 32 | 800 | Text Domain Mismatch | ||
| #2755 | Meteo | 50 | 58 | 9 | 800 | Output is not escaped | ||
| #2756 | Pago por Redsys | 50 | 44 | 59 | 700 | Text Domain Mismatch | ||
| #2757 | PostmagThemes Demo Import | 50 | 191 | 114 | 1k+ | Text Domain Mismatch | ||
| #2758 | Product Open Pricing (Name Your Price) for WooCommerce | 50 | 105 | 37 | 6k+ | Text Domain Mismatch | ||
| #2759 | Table Addons for Elementor | 50 | 92 | 29 | 20k+ | wp function not compatible with requires wp | ||
| #2760 | BestWebSoft's Twitter | 50 | 477 | 174 | 900 | Text Domain Mismatch | ||
| #2761 | Ultimate WooCommerce Brands | 50 | 87 | 12 | 400 | Text Domain Mismatch | ||
| #2762 | User Activity Tracking and Log | 50 | 30 | 263 | 2k+ | Non-prefixed global variable | ||
| #2763 | WP SVG Images | 50 | 58 | 12 | 30k+ | Text Domain Mismatch | ||
| #2764 | ACF: User Role Selector | 51 | 41 | 2 | 600 | Output is not escaped | ||
| #2765 | Adjust Admin Categories | 51 | 30 | 12 | 10k+ | Output is not escaped | ||
| #2766 | Aspexi Social Media Slider | 51 | 177 | 15 | 2k+ | Text Domain Mismatch | ||
| #2767 | Feeds for TikTok – Display Video Feeds in Grid Layouts | 51 | 18 | 59 | 1k+ | Request data is not unslashed | ||
| #2768 | Booqable Rental Plugin | 51 | 81 | 18 | 1k+ | wp function not compatible with requires wp | ||
| #2769 | Bootstrap Modals | 51 | 43 | 8 | 1k+ | Output is not escaped | ||
| #2770 | WPML Multilingual for BuddyPress and BuddyBoss | 51 | 18 | 21 | 6k+ | SQL query is not prepared | ||
| #2771 | Dolyame Payment gateway | 51 | 122 | 10 | 700 | Text Domain Mismatch | ||
| #2772 | Gravity Forms No CAPTCHA reCAPTCHA | 51 | 30 | 17 | 10k+ | Text Domain Mismatch | ||
| #2773 | Lite Video Embed | 51 | 35 | 7 | 1k+ | Output is not escaped | ||
| #2774 | OnSale Page for WooCommerce | 51 | 30 | 44 | 2k+ | Text Domain Mismatch | ||
| #2775 | POLi Payments for WooCommerce | 51 | 62 | 26 | 500 | Text Domain Mismatch | ||
| #2776 | Quotes and Tips by BestWebSoft | 51 | 485 | 190 | 1k+ | Text Domain Mismatch | ||
| #2777 | Simple Cookie Notification Bar | 51 | 49 | 6 | 1k+ | Text Domain Mismatch | ||
| #2778 | The Paste | 51 | 19 | 11 | 10k+ | Unsafe printing function | ||
| #2779 | VK Filter Search | 51 | 35 | 71 | 6k+ | Nonce verification recommended | ||
| #2780 | REST API Log | 51 | 44 | 95 | 5k+ | Non-prefixed hook name | ||
| #2781 | Insert Code by Angie Makes | 51 | 43 | 8 | 900 | Output is not escaped | ||
| #2782 | WPFrom Email | 51 | 44 | 12 | 600 | Output is not escaped | ||
| #2783 | YayMail – WooCommerce Email Customizer | 51 | 163 | 788 | 50k+ | Non-prefixed global variable | ||
| #2784 | Affiliate Area Shortcodes by AffiliateWP | 52 | 56 | 16 | 2k+ | Text Domain Mismatch | ||
| #2785 | Firelight Lightbox | 52 | 78 | 97 | 200k+ | Non-prefixed global variable | ||
| #2786 | Podium | 52 | 21 | 23 | 5k+ | Missing direct file access protection | ||
| #2787 | Product Bundles – Variation Bundles | 52 | 23 | 13 | 600 | Output is not escaped | ||
| #2788 | Product Time Countdown for WooCommerce | 52 | 7 | 36 | 400 | Input is not sanitized | ||
| #2789 | SKU Generator for WooCommerce | 52 | 29 | 12 | 2k+ | Output is not escaped | ||
| #2790 | Custom Post Template By Templatic | 52 | 19 | 14 | 600 | Text Domain Mismatch | ||
| #2791 | Wenprise Pinyin Slug | 52 | 30 | 34 | 4k+ | Text Domain Mismatch | ||
| #2792 | Add to Cart Custom Redirect for WooCommerce | 52 | 33 | 13 | 2k+ | Text Domain Mismatch | ||
| #2793 | WP Eventbrite Embedded Checkout | 52 | 49 | 7 | 700 | Text Domain Mismatch | ||
| #2794 | WP Hooks Finder | 52 | 27 | 31 | 1k+ | Output is not escaped | ||
| #2795 | WP Secure Maintenance | 52 | 28 | 18 | 1k+ | Output is not escaped | ||
| #2796 | Automattic For Agencies Client | 53 | 249 | 184 | 20k+ | Text Domain Mismatch | ||
| #2797 | Bulk Actions Select All | 53 | 26 | 22 | 800 | Text Domain Mismatch | ||
| #2798 | Export Custom Pages | 53 | 22 | 19 | 700 | Output is not escaped | ||
| #2799 | Focus Videos | 53 | 36 | 9 | 400 | Text Domain Mismatch | ||
| #2800 | International Telephone Input for Contact Form 7 | 53 | 18 | 10 | 8k+ | Missing direct file access protection |