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 |
|---|---|---|---|---|---|---|---|---|
| #2951 | Admin Menu Groups | 60 | 26 | 10 | 800 | Output is not escaped | ||
| #2952 | Contact Form 7 – Phone mask field | 60 | 21 | 7 | 20k+ | Unsafe printing function | ||
| #2953 | Contact Form 7 Modules | 60 | 47 | 15 | 5k+ | Text Domain Mismatch | ||
| #2954 | EPROLO-Dropshipping | 60 | 16 | 34 | 1k+ | Missing nonce verification | ||
| #2955 | FancyBox for WordPress | 60 | 175 | 33 | 30k+ | Text Domain Mismatch | ||
| #2956 | GamiPress – Button | 60 | 34 | 8 | 900 | Text Domain Mismatch | ||
| #2957 | Genesis Featured Widget Amplified | 60 | 126 | 12 | 2k+ | Text Domain Mismatch | ||
| #2958 | HelloAsso | 60 | 132 | 89 | 4k+ | Short PHP open tag found | ||
| #2959 | iubenda | All-in-one Compliance for GDPR / CCPA Cookie Consent + more | 60 | 405 | 271 | 200k+ | Text Domain Mismatch | ||
| #2960 | Mailster AmazonSES Integration | 60 | 52 | 25 | 1k+ | Missing Arg Domain | ||
| #2961 | Skyboot Custom Icons for Elementor – Elementor Icons library – 14300+ Icons | 60 | 91 | 9 | 200k+ | Text Domain Mismatch | ||
| #2962 | Stratum Widgets for Elementor | 60 | 66 | 366 | 20k+ | Non-prefixed global variable | ||
| #2963 | MultiStep Checkout for WooCommerce | 60 | 46 | 57 | 4k+ | Non Singular String Literal Text | ||
| #2964 | WP Blog Post Layouts | 60 | 36 | 249 | 10k+ | Non-prefixed global variable | ||
| #2965 | WP Bottom Menu | 60 | 74 | 52 | 20k+ | Non-prefixed hook name | ||
| #2966 | Accessibility Font Resizer | 61 | 54 | 1 | 800 | Text Domain Mismatch | ||
| #2967 | Add Quantity Field on Shop Page for WooCommerce | 61 | 33 | 7 | 700 | Output is not escaped | ||
| #2968 | Ads.txt Manager | 61 | 33 | 16 | 4k+ | Text Domain Mismatch | ||
| #2969 | In-Post Ads | 61 | 27 | 10 | 600 | Text Domain Mismatch | ||
| #2970 | Custom Buttons for WooCommerce – Add To Cart Button for Product Types | 61 | 58 | 4 | 2k+ | Text Domain Mismatch | ||
| #2971 | Compact WP Audio Player | 61 | 12 | 21 | 20k+ | Non-prefixed function | ||
| #2972 | Constructor for SiteOrigin | 61 | 29 | 6 | 600 | Output is not escaped | ||
| #2973 | Creative Commons | 61 | 103 | 17 | 700 | Text Domain Mismatch | ||
| #2974 | Documents for WooCommerce | 61 | 16 | 13 | 500 | Output is not escaped | ||
| #2975 | ELEX WooCommerce Catalog Mode | 61 | 97 | 49 | 10k+ | Text Domain Mismatch | ||
| #2976 | GamiPress – Link | 61 | 32 | 5 | 800 | Output is not escaped | ||
| #2977 | GetPaid Stripe Payments | 61 | 206 | 44 | 2k+ | Text Domain Mismatch | ||
| #2978 | Country and State Selection Addon for Gravity Forms | 61 | 14 | 26 | 1k+ | Non-prefixed constant | ||
| #2979 | GutenKit – Page Builder Blocks, Patterns, and Templates for Gutenberg Block Editor | 61 | 9 | 119 | 80k+ | Non-prefixed global variable | ||
| #2980 | Magic Tooltips For Contact Form 7 | 61 | 37 | 21 | 700 | Text Domain Mismatch | ||
| #2981 | Reorder Posts – Quick Post Type and Page Ordering | 61 | 10 | 23 | 10k+ | Request data is not unslashed | ||
| #2982 | Newspack Newsletters | 61 | 53 | 47 | 1k+ | Request data is not unslashed | ||
| #2983 | Order On Mobile for WooCommerce | 61 | 37 | 15 | 2k+ | Text Domain Mismatch | ||
| #2984 | PRyC WP: Add custom content to post and page (top/bottom) | 61 | 63 | 7 | 1k+ | Text Domain Mismatch | ||
| #2985 | PW WooCommerce Copy Coupon | 61 | 15 | 17 | 1k+ | Text Domain Mismatch | ||
| #2986 | SEOPress for MainWP | 61 | 240 | 106 | 900 | Text Domain Mismatch | ||
| #2987 | Slide everything for Elementor | 61 | 93 | 1 | 6k+ | Text Domain Mismatch | ||
| #2988 | whatwedo ACF Cleaner | 61 | 8 | 20 | 800 | Input is not validated | ||
| #2989 | Wistia WordPress Plugin | 61 | 42 | 12 | 2k+ | Output is not escaped | ||
| #2990 | Order Weight for WooCommerce | 61 | 24 | 34 | 600 | Text Domain Mismatch | ||
| #2991 | Products Restricted Users for WooCommerce | 61 | 31 | 24 | 400 | wp function not compatible with requires wp | ||
| #2992 | More Sorting Options for WooCommerce | 61 | 27 | 17 | 3k+ | Output is not escaped | ||
| #2993 | Bulk Edit YOAST SEO fields in Spreadsheet | 61 | 56 | 16 | 1k+ | Non Singular String Literal Domain | ||
| #2994 | Related Products Slider for WooCommerce – Boost Sales with Smart Product Recommendations | 61 | 81 | 13 | 1k+ | Text Domain Mismatch | ||
| #2995 | AMS Post And Page Duplicator | 62 | 14 | 13 | 600 | Text Domain Mismatch | ||
| #2996 | Column Separator for Beaver Builder | 62 | 61 | 17 | 400 | Output is not escaped | ||
| #2997 | Custom Site Logo | 62 | 26 | 4 | 1k+ | Unsafe printing function | ||
| #2998 | Devices for Elementor | 62 | 22 | 13 | 400 | Output is not escaped | ||
| #2999 | Genesis Accessible | 62 | 49 | 17 | 500 | Text Domain Mismatch | ||
| #3000 | Get Chat App | 62 | 10 | 62 | 400 | Request data is not unslashed |