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 |
|---|---|---|---|---|---|---|---|---|
| #2801 | LearnPress – bbPress Integration | 53 | 19 | 14 | 2k+ | Output is not escaped | ||
| #2802 | LuckyWP ACF Menu Field | 53 | 46 | 9 | 5k+ | Short PHP open tag found | ||
| #2803 | Multiple external product URLs for WooCommerce | 53 | 28 | 17 | 400 | Text Domain Mismatch | ||
| #2804 | pretix widget | 53 | 25 | 39 | 400 | Non-prefixed global variable | ||
| #2805 | Send Email From Admin | 53 | 27 | 13 | 700 | Text Domain Mismatch | ||
| #2806 | Shamor | 53 | 55 | 12 | 400 | wp function not compatible with requires wp | ||
| #2807 | Simple Copy Post Button | 53 | 14 | 24 | 400 | Input is not sanitized | ||
| #2808 | Skroutz Analytics for WooCommerce | 53 | 57 | 15 | 1k+ | Text Domain Mismatch | ||
| #2809 | Social Media Widget | 53 | 90 | 21 | 30k+ | Text Domain Mismatch | ||
| #2810 | SoundPress Plugin | 53 | 44 | 3 | 1k+ | Output is not escaped | ||
| #2811 | Texty – SMS Notification for WordPress, WooCommerce, Dokan and more | 53 | 31 | 34 | 8k+ | Output is not escaped | ||
| #2812 | Morning for WooCommerce | 53 | 7 | 59 | 1k+ | Non-prefixed global variable | ||
| #2813 | Weight Based Shipping for WooCommerce | 53 | 48 | 41 | 60k+ | Missing direct file access protection | ||
| #2814 | WP User Switch | 53 | 8 | 46 | 1k+ | Input is not sanitized | ||
| #2815 | AffiliateWP – Order Details For Affiliates | 54 | 62 | 27 | 2k+ | Output is not escaped | ||
| #2816 | Blockskit | 54 | 33 | 29 | 8k+ | Text Domain Mismatch | ||
| #2817 | Boostify Header Footer Builder for Elementor | 54 | 419 | 55 | 7k+ | Text Domain Mismatch | ||
| #2818 | CSV Importer | 54 | 24 | 11 | 3k+ | Missing direct file access protection | ||
| #2819 | Disqus Comment System | 54 | 17 | 33 | 40k+ | Non-prefixed hook name | ||
| #2820 | Easy Font Resize | 54 | 33 | 6 | 700 | Setting is missing a sanitization callback | ||
| #2821 | Expandable Row for Beaver Builder | 54 | 116 | 9 | 900 | Text Domain Mismatch | ||
| #2822 | Extended User Search In WP-Admin | 54 | 14 | 17 | 1k+ | SQL query is not prepared | ||
| #2823 | Gravity Forms + Custom Post Types | 54 | 44 | 7 | 10k+ | Output is not escaped | ||
| #2824 | Helpie FAQ — Accordion, Docs & Knowledge Base | 54 | 96 | 89 | 9k+ | Nonce verification recommended | ||
| #2825 | Juiz Lang Attribute | 54 | 26 | 27 | 2k+ | Text Domain Mismatch | ||
| #2826 | Quick Buy Now Button for WooCommerce | 54 | 136 | 25 | 40k+ | Text Domain Mismatch | ||
| #2827 | Reorder Terms | 54 | 17 | 38 | 1k+ | Nonce verification recommended | ||
| #2828 | Responsive Like Box, Like Box Widget | 54 | 43 | 4 | 1k+ | Output is not escaped | ||
| #2829 | EMI Calculator | 54 | 28 | 12 | 700 | Output is not escaped | ||
| #2830 | AI Agent by SiteGround | 54 | 28 | 6 | 1m+ | Exception output is not escaped | ||
| #2831 | SpeedSize Image & Video AI-Optimizer | 54 | 98 | 17 | 400 | Text Domain Mismatch | ||
| #2832 | Sp*tify Play Button for WordPress | 54 | 21 | 15 | 3k+ | Text Domain Mismatch | ||
| #2833 | Sticky Floating Forms Lite | 54 | 26 | 29 | 900 | Non-prefixed global variable | ||
| #2834 | Post Badges | 54 | 19 | 13 | 400 | Output is not escaped | ||
| #2835 | WC Duplicate Order | 54 | 12 | 15 | 500 | Nonce verification recommended | ||
| #2836 | WP Call Button – Easy Click to Call Button for WordPress | 54 | 21 | 38 | 40k+ | Non-prefixed global variable | ||
| #2837 | WP Menu Icons | 54 | 68 | 52 | 20k+ | Text Domain Mismatch | ||
| #2838 | YITH Proteo Toolkit | 54 | 130 | 64 | 1k+ | Text Domain Mismatch | ||
| #2839 | Admin Bar User Switching | 55 | 16 | 31 | 2k+ | Input is not validated | ||
| #2840 | Advanced Custom Order Status for WooCommerce | 55 | 44 | 33 | 500 | Text Domain Mismatch | ||
| #2841 | AI Assistant for Elementor – Auto Content Writer, OpenAI, ChatGPT | 55 | 151 | 24 | 400 | Text Domain Mismatch | ||
| #2842 | Ascending Posts by Fly Plugins | 55 | 23 | 13 | 500 | Text Domain Mismatch | ||
| #2843 | Auto Image Alt Attribute | 55 | 26 | 7 | 6k+ | Unsafe printing function | ||
| #2844 | Quick Buy Now Button for WooCommerce | 55 | 37 | 39 | 5k+ | Output is not escaped | ||
| #2845 | Custom Upload Dir | 55 | 63 | 7 | 5k+ | Missing Arg Domain | ||
| #2846 | DevVn Float Left Right Ads | 55 | 42 | 2 | 1k+ | Output is not escaped | ||
| #2847 | Email Template Customizer for WooCommerce | 55 | 552 | 248 | 20k+ | Text Domain Mismatch | ||
| #2848 | JetWidgets For Elementor | 55 | 99 | 279 | 10k+ | Non-prefixed global variable | ||
| #2849 | LoginPress | wp-login Custom Login Page Customizer | 55 | 125 | 308 | 200k+ | Non-prefixed function | ||
| #2850 | Marvy – Background Animations for Elementor | 55 | 63 | 34 | 4k+ | Text Domain Mismatch |