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 |
|---|---|---|---|---|---|---|---|---|
| #2901 | Web Accessibility Toolkit – Accessibility Checker & ARIA for WCAG, Section 508 & ADA Compliance | 58 | 9 | 20 | 500 | Output is not escaped | ||
| #2902 | Contact Form DB for Enfold | 58 | 21 | 14 | 700 | Output is not escaped | ||
| #2903 | Custom Meta Widget | 58 | 55 | 2 | 7k+ | Output is not escaped | ||
| #2904 | Debloat – Remove Unused CSS, Optimize JS | 58 | 24 | 20 | 30k+ | Nonce verification recommended | ||
| #2905 | Departamentos y Ciudades de Colombia para Woocommerce | 58 | 49 | 42 | 6k+ | Text Domain Mismatch | ||
| #2906 | Easy Sidebar Menu Widget | 58 | 32 | 7 | 2k+ | Output is not escaped | ||
| #2907 | PDF invoice for WP ERP | 58 | 96 | 134 | 2k+ | Non-prefixed global variable | ||
| #2908 | Error Log Viewer by BestWebSoft | 58 | 433 | 172 | 6k+ | Text Domain Mismatch | ||
| #2909 | Flexible FAQ | 58 | 27 | 26 | 1k+ | Text Domain Mismatch | ||
| #2910 | Gutenverse Form – Contact Form Builder, Block Form & Booking Form | 58 | 17 | 48 | 10k+ | Nonce verification recommended | ||
| #2911 | HAL | 58 | 106 | 24 | 500 | Text Domain Mismatch | ||
| #2912 | Nginx Cache | 58 | 12 | 8 | 10k+ | Unsafe printing function | ||
| #2913 | WP Online Active Users | 58 | 26 | 45 | 2k+ | Non-prefixed global variable | ||
| #2914 | PageLoader Lite – Loading Screen | 58 | 29 | 17 | 700 | Output is not escaped | ||
| #2915 | PW WooCommerce BOGO | 58 | 30 | 8 | 400 | Unsafe printing function | ||
| #2916 | Quickcreator – AI Blog Writer | 58 | 14 | 18 | 500 | Exception output is not escaped | ||
| #2917 | Remove CPT base | 58 | 15 | 16 | 10k+ | Input is not sanitized | ||
| #2918 | REVIEWS.io for WooCommerce | 58 | 71 | 161 | 1k+ | Non-prefixed global variable | ||
| #2919 | Safety Exit | 58 | 52 | 26 | 1k+ | Text Domain Mismatch | ||
| #2920 | Simple CSS for widgets | 58 | 11 | 15 | 1k+ | Missing nonce verification | ||
| #2921 | SportsPress for Basketball | 58 | 104 | 34 | 1k+ | Text Domain Mismatch | ||
| #2922 | SportsPress for Football (Soccer) | 58 | 107 | 34 | 6k+ | Text Domain Mismatch | ||
| #2923 | SportsPress for Volleyball | 58 | 107 | 34 | 500 | Text Domain Mismatch | ||
| #2924 | UiCore Elements – Free widgets and templates for Elementor | 58 | 29 | 30 | 40k+ | Output is not escaped | ||
| #2925 | Ultimate Member – Online Users | 58 | 25 | 4 | 3k+ | Output is not escaped | ||
| #2926 | Videopack | 58 | 28 | 108 | 10k+ | Input is not sanitized | ||
| #2927 | VRTs – Visual Regression Tests | 58 | 61 | 118 | 900 | Database parameter is not escaped | ||
| #2928 | Chat Button & Custom ChatGPT-Powered Bot by GetButton.io | 58 | 26 | 8 | 20k+ | Non-prefixed function | ||
| #2929 | Blog Designer | 59 | 62 | 83 | 10k+ | Text Domain Mismatch | ||
| #2930 | Posts Order | 59 | 59 | 20 | 1k+ | Text Domain Mismatch | ||
| #2931 | ELEX WooCommerce Name Your Price | 59 | 295 | 117 | 600 | Missing Arg Domain | ||
| #2932 | flowpaper | 59 | 13 | 31 | 10k+ | Non-prefixed function | ||
| #2933 | Gravity Forms: Notification Attachments | 59 | 18 | 7 | 500 | Output is not escaped | ||
| #2934 | GravityWP – Merge Tags | 59 | 16 | 172 | 2k+ | Non-prefixed global variable | ||
| #2935 | Icon List | 59 | 83 | 11 | 1k+ | Text Domain Mismatch | ||
| #2936 | Logo or Image Replace by mycore.global | 59 | 30 | 12 | 400 | Text Domain Mismatch | ||
| #2937 | Multiple Packages for WooCommerce | 59 | 34 | 4 | 600 | Text Domain Mismatch | ||
| #2938 | Post Type Select Field for Advanced Custom Fields | 59 | 48 | 1 | 900 | Text Domain Mismatch | ||
| #2939 | SureFeedback Client Site | 59 | 47 | 24 | 5k+ | Text Domain Mismatch | ||
| #2940 | Remove Add to Cart Button for WooCommerce | 59 | 115 | 18 | 500 | Text Domain Mismatch | ||
| #2941 | Resize Image After Upload | 59 | 15 | 11 | 80k+ | Output is not escaped | ||
| #2942 | Super Progressive Web Apps | 59 | 62 | 22 | 40k+ | wp function not compatible with requires wp | ||
| #2943 | Unlimited Addons For Gutenberg Blocks | 59 | 16 | 68 | 900 | slow db query meta key | ||
| #2944 | Konnect Payment Gateway for WooCommerce | 59 | 39 | 16 | 400 | Text Domain Mismatch | ||
| #2945 | Payment Gateway for LiqPay for Woocommerce | 59 | 84 | 31 | 1k+ | Text Domain Mismatch | ||
| #2946 | GST Invoice for WooCommerce | 59 | 10 | 42 | 1k+ | Missing nonce verification | ||
| #2947 | Variation Swatches for WooCommerce | 59 | 11 | 64 | 300k+ | Non-prefixed global variable | ||
| #2948 | WPML Widgets | 59 | 9 | 9 | 9k+ | Unsafe printing function | ||
| #2949 | Accesibilidad Web con el Widget de AccedeMe | 60 | 22 | 23 | 1k+ | Text Domain Mismatch | ||
| #2950 | Admin Menu Groups | 60 | 26 | 10 | 800 | Output is not escaped |