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 |
|---|---|---|---|---|---|---|---|---|
| #3001 | Nimbata Call Tracking | 62 | 13 | 11 | 400 | Non-prefixed function | ||
| #3002 | Responsive Slider Gallery – Responsive Image Photo Slider | 62 | 32 | 122 | 2k+ | Non-prefixed global variable | ||
| #3003 | Easy SSL Plugin for SAKURA Rental Server | 62 | 23 | 17 | 50k+ | Input is not sanitized | ||
| #3004 | SEO Image Toolbox | 62 | 19 | 14 | 1k+ | Output is not escaped | ||
| #3005 | Single Post Template | 62 | 14 | 8 | 4k+ | Text Domain Mismatch | ||
| #3006 | Testimonial Carousel For Elementor | 62 | 34 | 56 | 10k+ | No Html Wrapped Strings | ||
| #3007 | Topic SEO Content Optimization Tool | 62 | 35 | 15 | 1k+ | curl curl close | ||
| #3008 | Embed Videos For Product Image Gallery Using WooCommerce | 62 | 21 | 16 | 400 | Text Domain Mismatch | ||
| #3009 | WooCommerce Product Fees | 62 | 6 | 25 | 2k+ | Missing nonce verification | ||
| #3010 | WP Category Sort | 62 | 15 | 22 | 500 | Text Domain Mismatch | ||
| #3011 | Zen Menu Logic | 62 | 19 | 3 | 1k+ | Output is not escaped | ||
| #3012 | Automatic Featured Images from Videos | 63 | 13 | 13 | 7k+ | Missing direct file access protection | ||
| #3013 | Creative Clans Embed Script | 63 | 10 | 9 | 600 | Input is not sanitized | ||
| #3014 | Dadevarzan Beaver Builder Modules | 63 | 167 | 5 | 600 | Text Domain Mismatch | ||
| #3015 | Dehkadeh Fonts | 63 | 117 | 5 | 800 | Text Domain Mismatch | ||
| #3016 | Happierleads – Identify your B2B website visitors even if they work remotely | 63 | 32 | 7 | 600 | wp function not compatible with requires wp | ||
| #3017 | Hide Admin Bar From Front End | 63 | 8 | 17 | 1k+ | Input is not validated | ||
| #3018 | Include Klaviyo for Elementor pro | 63 | 60 | 10 | 2k+ | Missing Arg Domain | ||
| #3019 | Integrate GA4 Google Analytics | 63 | 33 | 3 | 500 | Text Domain Mismatch | ||
| #3020 | Latest Posts | 63 | 27 | 1 | 5k+ | Output is not escaped | ||
| #3021 | Mantenimiento web | 63 | 49 | 15 | 20k+ | Text Domain Mismatch | ||
| #3022 | Missed Scheduled Posts Publisher by WPBeginner | 63 | 16 | 17 | 30k+ | Text Domain Mismatch | ||
| #3023 | One Tap Google Sign in | 63 | 6 | 30 | 900 | Request data is not unslashed | ||
| #3024 | Order auto complete for WooCommerce | 63 | 56 | 22 | 1k+ | Text Domain Mismatch | ||
| #3025 | Simple Membership After Login Redirection | 63 | 4 | 24 | 10k+ | Missing nonce verification | ||
| #3026 | Simple WWW Redirect | 63 | 26 | 5 | 1k+ | Output is not escaped | ||
| #3027 | Contact Form to Chat Apps | Click to Chat to Order – FormyChat | 63 | 30 | 134 | 3k+ | Direct Query | ||
| #3028 | Review & testimonial widgets | 63 | 62 | 9 | 1k+ | Text Domain Mismatch | ||
| #3029 | UniqueID for Contact Form 7 | 64 | 21 | 18 | 2k+ | Text Domain Mismatch | ||
| #3030 | Collapsing Archives | 64 | 36 | 9 | 3k+ | date date | ||
| #3031 | Advanced Comment Form | 64 | 68 | 6 | 4k+ | Output is not escaped | ||
| #3032 | Delete Unscaled Images | 64 | 24 | 4 | 800 | Text Domain Mismatch | ||
| #3033 | Disabler | 64 | 212 | 38 | 900 | Text Domain Mismatch | ||
| #3034 | Dotdigital for WordPress | 64 | 41 | 123 | 400 | Dynamic hook name | ||
| #3035 | Easy Duplicate Woo Order | 64 | 17 | 10 | 1k+ | Unsafe printing function | ||
| #3036 | ELEX WooCommerce Product Price Custom Text (Before & After Text) and Discount | 64 | 444 | 137 | 2k+ | Missing Arg Domain | ||
| #3037 | Estonian Shipping Methods for WooCommerce | 64 | 97 | 16 | 1k+ | Text Domain Mismatch | ||
| #3038 | Icon Element – Icon Pack for Elementor Page Builder (6718 icons) | 64 | 30 | 16 | 40k+ | wp function not compatible with requires wp | ||
| #3039 | Online Payments with iK Pay Gateway | 64 | 12 | 28 | 1k+ | Missing nonce verification | ||
| #3040 | Image Hover Effects – Elementor Addon | 64 | 117 | 7 | 40k+ | Text Domain Mismatch | ||
| #3041 | Integrate Firebase | 64 | 26 | 7 | 500 | Output is not escaped | ||
| #3042 | New Recent Posts Select Categories By Thao Marky | 64 | 33 | 1 | 500 | Text Domain Mismatch | ||
| #3043 | Retrigger Notifications Gravity Forms | 64 | 55 | 8 | 1k+ | Text Domain Mismatch | ||
| #3044 | Simple HTTPS Redirect | 64 | 19 | 5 | 900 | Output is not escaped | ||
| #3045 | Click to Call Button | 64 | 58 | 3 | 1k+ | Output is not escaped | ||
| #3046 | Stag Custom Sidebars | 64 | 10 | 12 | 2k+ | Text Domain Mismatch | ||
| #3047 | Stancer for WooCommerce | 64 | 2 | 108 | 400 | Non-prefixed global variable | ||
| #3048 | Thumbnail Crop Position | 64 | 43 | 1 | 2k+ | Output is not escaped | ||
| #3049 | JTL-Connector for WooCommerce | 64 | 7 | 166 | 1k+ | Direct Query | ||
| #3050 | ACF: Sidebar Selector | 65 | 27 | 2 | 800 | Output is not escaped |