textdomain_mismatch
textdomain 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 |
|---|---|---|---|---|---|---|---|---|
| #651 | ELEX WooCommerce Role Based Pricing | 44 | 213 | 196 | 2k+ | Non-prefixed global variable | ||
| #652 | Minimum Order Amount for Woocommerce | 44 | 50 | 16 | 2k+ | Text Domain Mismatch | ||
| #653 | Narrative Publisher | 44 | 28 | 37 | 1k+ | Text Domain Mismatch | ||
| #654 | Notix – Web Push Notifications | 44 | 22 | 41 | 600 | Non-prefixed global variable | ||
| #655 | QR Code Woocommerce | 44 | 37 | 36 | 1k+ | Output is not escaped | ||
| #656 | Shippit for WooCommerce | 44 | 127 | 26 | 900 | Text Domain Mismatch | ||
| #657 | SmartVideo – Video Player and CDN | 44 | 295 | 44 | 1k+ | Text Domain Mismatch | ||
| #658 | Easy HTML Sitemap | 45 | 75 | 8 | 600 | Text Domain Mismatch | ||
| #659 | Icons Font Loader – Load Web Fonts and Icon Libraries | 45 | 47 | 33 | 2k+ | Text Domain Mismatch | ||
| #660 | TriPay Payment Gateway | 45 | 478 | 44 | 1k+ | Text Domain Mismatch | ||
| #661 | wpDataTables integration for Forminator Forms | 45 | 62 | 38 | 1k+ | Text Domain Mismatch | ||
| #662 | Enhanced AJAX Add to Cart for WooCommerce | 46 | 90 | 78 | 700 | Missing Arg Domain | ||
| #663 | Material Design Icons for Page Builders | 46 | 69 | 46 | 20k+ | Missing direct file access protection | ||
| #664 | N360 | Splash Screen | 46 | 32 | 13 | 600 | Output is not escaped | ||
| #665 | Ultimate FAQ Solution | 46 | 285 | 97 | 600 | Text Domain Mismatch | ||
| #666 | 404 Image Redirection (Replace Broken Images) | 47 | 118 | 85 | 600 | Text Domain Mismatch | ||
| #667 | Cashfree for WooCommerce | 47 | 21 | 21 | 8k+ | Nonce verification recommended | ||
| #668 | Do Shortcodes for Rank Math SEO | 47 | 117 | 3 | 1k+ | Output is not escaped | ||
| #669 | Security Ninja For MainWP | 47 | 246 | 71 | 500 | Text Domain Mismatch | ||
| #670 | WP Prefix Changer | 47 | 27 | 16 | 900 | Missing Arg Domain | ||
| #671 | Add Polylang support for Customizer | 48 | 18 | 20 | 2k+ | Nonce verification recommended | ||
| #672 | Advanced Custom Fields – Location Field add-on | 48 | 51 | 6 | 900 | Output is not escaped | ||
| #673 | AnWP Post Grid and Post Carousel Slider for Elementor | 48 | 758 | 171 | 20k+ | Text Domain Mismatch | ||
| #674 | bxSlider integration for WordPress | 48 | 126 | 21 | 500 | Text Domain Mismatch | ||
| #675 | JW Player for WordPress | 48 | 289 | 80 | 1k+ | Text Domain Mismatch | ||
| #676 | WC Provincia Canton Distrito | 48 | 103 | 14 | 1k+ | Text Domain Mismatch | ||
| #677 | WP Remote Users Sync | 48 | 355 | 117 | 6k+ | Text Domain Mismatch | ||
| #678 | CallPage – Callback Widget | 49 | 41 | 17 | 1k+ | Non Singular String Literal Domain | ||
| #679 | Download Media Library | 49 | 22 | 40 | 1k+ | Text Domain Mismatch | ||
| #680 | Drag and Drop Multiple File Upload for WooCommerce | 49 | 114 | 29 | 5k+ | Text Domain Mismatch | ||
| #681 | Import into Easy Property Listings | 49 | 335 | 24 | 1k+ | Text Domain Mismatch | ||
| #682 | OneClick Chat to Order | 49 | 677 | 41 | 40k+ | Text Domain Mismatch | ||
| #683 | PostmagThemes Demo Import | 49 | 192 | 114 | 1k+ | Text Domain Mismatch | ||
| #684 | Simple Post Expiration | 49 | 47 | 10 | 400 | Text Domain Mismatch | ||
| #685 | SKT Themes Demo Import | 49 | 218 | 104 | 4k+ | Text Domain Mismatch | ||
| #686 | WP Swiper | 49 | 67 | 28 | 5k+ | Text Domain Mismatch | ||
| #687 | Advanced Custom Fields – Taxonomy Field add-on | 50 | 57 | 4 | 1k+ | Non Singular String Literal Domain | ||
| #688 | Aspexi Social Media Sidebox | 50 | 175 | 12 | 700 | Text Domain Mismatch | ||
| #689 | Bangla Fonts Collection | 50 | 47 | 3 | 400 | Text Domain Mismatch | ||
| #690 | HT Slider For Elementor | 50 | 884 | 40 | 20k+ | Text Domain Mismatch | ||
| #691 | Mailster Gravity Forms | 50 | 46 | 32 | 800 | Text Domain Mismatch | ||
| #692 | Meteo | 50 | 58 | 9 | 800 | Output is not escaped | ||
| #693 | Pago por Redsys | 50 | 44 | 59 | 700 | Text Domain Mismatch | ||
| #694 | Product Open Pricing (Name Your Price) for WooCommerce | 50 | 105 | 37 | 6k+ | Text Domain Mismatch | ||
| #695 | WP SVG Images | 50 | 58 | 12 | 30k+ | Text Domain Mismatch | ||
| #696 | Adjust Admin Categories | 51 | 30 | 12 | 10k+ | Output is not escaped | ||
| #697 | Aspexi Social Media Slider | 51 | 177 | 15 | 2k+ | Text Domain Mismatch | ||
| #698 | Feeds for TikTok – Display Video Feeds in Grid Layouts | 51 | 18 | 59 | 1k+ | Request data is not unslashed | ||
| #699 | Bootstrap Modals | 51 | 43 | 8 | 1k+ | Output is not escaped | ||
| #700 | Gravity Forms No CAPTCHA reCAPTCHA | 51 | 30 | 17 | 10k+ | Text Domain Mismatch |