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 |
|---|---|---|---|---|---|---|---|---|
| #2401 | AdFlow – Easy Google AdSense Integration | 40 | 150 | 9 | 3k+ | Unsafe printing function | ||
| #2402 | Sinatra Core | 40 | 101 | 15 | 8k+ | Output is not escaped | ||
| #2403 | Specific Content For Mobile – Customize the mobile version without redirections | 40 | 26 | 155 | 4k+ | Nonce verification recommended | ||
| #2404 | SportsPress for Cricket | 40 | 122 | 34 | 500 | Text Domain Mismatch | ||
| #2405 | Statify Widget | 40 | 52 | 13 | 4k+ | Output is not escaped | ||
| #2406 | Stax Addons for Elementor | 40 | 143 | 81 | 500 | Output is not escaped | ||
| #2407 | CPS | Age Verification | 40 | 127 | 35 | 900 | Unsafe printing function | ||
| #2408 | Theme and plugin translation for Polylang (TTfP) | 40 | 102 | 62 | 10k+ | Text Domain Mismatch | ||
| #2409 | Multiple Shipping Addresses for WooCommerce (Address Book) | 40 | 21 | 208 | 2k+ | Non-prefixed global variable | ||
| #2410 | Track Geolocation Of Users Using Contact Form 7 | 40 | 17 | 173 | 900 | Nonce verification recommended | ||
| #2411 | turboSMTP | 40 | 114 | 112 | 400 | Unsafe printing function | ||
| #2412 | Ultimate Custom Cursor | 40 | 138 | 3 | 800 | Output is not escaped | ||
| #2413 | Unlimited Logo Carousel | 40 | 286 | 15 | 500 | Text Domain Mismatch | ||
| #2414 | Upcoming Events Lists | 40 | 75 | 17 | 900 | Text Domain Mismatch | ||
| #2415 | Url Rewrite Analyzer | 40 | 73 | 23 | 400 | Unsafe printing function | ||
| #2416 | UsersWP – ReCaptcha | 40 | 80 | 17 | 3k+ | Text Domain Mismatch | ||
| #2417 | UTM Leads Tracker – XLPlugins | 40 | 21 | 38 | 400 | Output is not escaped | ||
| #2418 | Visibility Control for LearnDash | 40 | 55 | 23 | 1k+ | Missing Arg Domain | ||
| #2419 | Visibility Control for LearnPress | 40 | 52 | 19 | 700 | Missing Arg Domain | ||
| #2420 | WooBooster Partial COD for WooCommerce | 40 | 90 | 51 | 500 | Text Domain Mismatch | ||
| #2421 | Where Did You Hear About Us Checkout Field for WooCommerce | 40 | 57 | 66 | 1k+ | Output is not escaped | ||
| #2422 | Weight Based Pricing for WooCommerce | 40 | 167 | 86 | 600 | Text Domain Mismatch | ||
| #2423 | Widget Visibility Without Jetpack | 40 | 74 | 47 | 5k+ | Text Domain Mismatch | ||
| #2424 | Wonder Video Embed | 40 | 94 | 4 | 4k+ | Output is not escaped | ||
| #2425 | NP Quote Request for WooCommerce | 40 | 91 | 145 | 9k+ | Non-prefixed global variable | ||
| #2426 | Total Sales Counts for WooCommerce | 40 | 121 | 62 | 700 | SQL query is not prepared | ||
| #2427 | yubikey-plugin | 40 | 64 | 33 | 400 | Text Domain Mismatch | ||
| #2428 | All In One SEO Pack for WooCommerce | 40 | 57 | 25 | 3k+ | Text Domain Mismatch | ||
| #2429 | WP Compress for MainWP | 40 | 20 | 36 | 700 | Output is not escaped | ||
| #2430 | Custom CSS/JS | 40 | 58 | 34 | 700 | Text Domain Mismatch | ||
| #2431 | WP Date and Time Shortcode | 40 | 90 | 12 | 10k+ | Output is not escaped | ||
| #2432 | WP All Import – Job Listing Import for WP Job Manager | 40 | 35 | 27 | 2k+ | Output is not escaped | ||
| #2433 | WP Posts Carousel | 40 | 199 | 12 | 3k+ | Unsafe printing function | ||
| #2434 | Sentry for WordPress | 40 | 80 | 40 | 10k+ | Text Domain Mismatch | ||
| #2435 | Social Share Buttons & Analytics Plugin – GetSocial.io | 40 | 97 | 25 | 2k+ | Output is not escaped | ||
| #2436 | XLTab – Accordions and Tabs for Elementor Page Builder | 40 | 317 | 65 | 1k+ | Text Domain Mismatch | ||
| #2437 | My YouTube Channel | 40 | 54 | 38 | 5k+ | Output is not escaped | ||
| #2438 | ACF: Advanced Taxonomy Selector | 41 | 56 | 15 | 1k+ | Output is not escaped | ||
| #2439 | Add-on Contact Form 7 – MailPoet 3 | 41 | 88 | 12 | 3k+ | Output is not escaped | ||
| #2440 | Advance Bank Payment Transfer Gateway | 41 | 105 | 62 | 1k+ | Text Domain Mismatch | ||
| #2441 | ACF: Google Map Extended | 41 | 141 | 8 | 800 | Text Domain Mismatch | ||
| #2442 | AffiliateWP – Affiliate Product Rates | 41 | 84 | 24 | 2k+ | Output is not escaped | ||
| #2443 | AH Display Widgets | 41 | 52 | 16 | 8k+ | Text Domain Mismatch | ||
| #2444 | Schema – All In One Schema Rich Snippets | 41 | 598 | 180 | 30k+ | Text Domain Mismatch | ||
| #2445 | Announcer – Sticky Message Banner & Notification Bar | 41 | 110 | 27 | 10k+ | Output is not escaped | ||
| #2446 | ATP Call Now | 41 | 98 | 7 | 700 | Output is not escaped | ||
| #2447 | Authenticator | 41 | 59 | 44 | 1k+ | Output is not escaped | ||
| #2448 | Beam me up Scotty – Back to Top Button | 41 | 71 | 38 | 1k+ | Output is not escaped | ||
| #2449 | Beautiful Cookie Consent Banner | 41 | 33 | 76 | 40k+ | Non-prefixed global variable | ||
| #2450 | Bop Search Box Item Type For Nav Menus | 41 | 52 | 14 | 1k+ | Output is not escaped |