textdomain_invalid_format
textdomain invalid format
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 |
|---|---|---|---|---|---|---|---|---|
| #51 | SMTP2GO for WordPress – Email Made Easy | 33 | 186 | 111 | 30k+ | Output is not escaped | ||
| #52 | IP2Location Country Blocker | 34 | 295 | 88 | 30k+ | Output is not escaped | ||
| #53 | WP Dummy Content Generator | 34 | 93 | 130 | 6k+ | Output is not escaped | ||
| #54 | YourChannel: Everything you want in a YouTube plugin. | 34 | 262 | 115 | 10k+ | Text Domain Mismatch | ||
| #55 | CF7 Spreadsheets | 35 | 100 | 62 | 400 | Text Domain Mismatch | ||
| #56 | Gutenberg Blocks Library & Toolkit – Editor Plus | 35 | 27 | 11 | 6k+ | Text Domain Mismatch | ||
| #57 | Import Users & Customers with Meta | WP Ultimate CSV Importer Add-on | 35 | 27 | 140 | 5k+ | Interpolated SQL is not prepared | ||
| #58 | iPages – FlipBook Image & PDF Viewer | 35 | 467 | 177 | 2k+ | Text Domain Mismatch | ||
| #59 | NewsPlugin | 35 | 84 | 53 | 400 | Text Domain Mismatch | ||
| #60 | Paytm Payment Gateway | 35 | 92 | 104 | 3k+ | Missing Arg Domain | ||
| #61 | Scroll Styler | 35 | 52 | 21 | 900 | Output is not escaped | ||
| #62 | TinyMCE Templates | 35 | 41 | 27 | 20k+ | Text Domain Mismatch | ||
| #63 | uCalc | 35 | 78 | 8 | 600 | Text Domain Mismatch | ||
| #64 | Mail logging – WP Mail Catcher | 35 | 232 | 157 | 20k+ | Text Domain Mismatch | ||
| #65 | WP-Paginate | 35 | 37 | 55 | 20k+ | Input is not validated | ||
| #66 | WP Spam Question Filter | 35 | 63 | 30 | 2k+ | Output is not escaped | ||
| #67 | DeveloPress Sticky Footer Bar | 36 | 165 | 49 | 400 | Output is not escaped | ||
| #68 | Multiple Sidebars | 36 | 109 | 75 | 600 | Non Singular String Literal Domain | ||
| #69 | Zoho ZeptoMail | 36 | 32 | 110 | 5k+ | Request data is not unslashed | ||
| #70 | avalex – Automatisch sichere Rechtstexte | 37 | 25 | 85 | 1k+ | Direct Query | ||
| #71 | PNG to JPG | 37 | 130 | 173 | 10k+ | Interpolated SQL is not prepared | ||
| #72 | resmio button & widget | 37 | 99 | 36 | 400 | Text Domain Mismatch | ||
| #73 | ValidateCertify Free | 37 | 123 | 97 | 1k+ | Text Domain Mismatch | ||
| #74 | Innovs WPBakery Visual Composer WHMCS Elements | 37 | 154 | 24 | 2k+ | Text Domain Mismatch | ||
| #75 | Yada Wiki | 37 | 207 | 45 | 2k+ | Text Domain Mismatch | ||
| #76 | Cecabank WooCommerce Plugin | 38 | 63 | 32 | 3k+ | Text Domain Mismatch | ||
| #77 | Custom post type templates for Elementor | 38 | 289 | 33 | 700 | Text Domain Mismatch | ||
| #78 | Datafeedr WooCommerce Importer | 38 | 112 | 56 | 5k+ | Text Domain Mismatch | ||
| #79 | Easy WP Cleaner | 38 | 58 | 124 | 2k+ | Non-prefixed global variable | ||
| #80 | Multiple Domain Mapping on Single Site | 38 | 135 | 51 | 6k+ | Text Domain Mismatch | ||
| #81 | Better Random Redirect | 39 | 88 | 40 | 700 | Text Domain Mismatch | ||
| #82 | Culqi | 39 | 571 | 88 | 1k+ | Text Domain Mismatch | ||
| #83 | WeShareAI – AI-Powered Share Buttons (formerly E-MAILiT) | 39 | 165 | 24 | 700 | Unsafe printing function | ||
| #84 | Recent Posts with Excerpts | 39 | 138 | 2 | 700 | Output is not escaped | ||
| #85 | Sync Post With Other Site | 39 | 179 | 21 | 3k+ | Non Singular String Literal Domain | ||
| #86 | Bulk Add Terms | 40 | 74 | 27 | 800 | Text Domain Mismatch | ||
| #87 | Catalog for Woocommerce | 40 | 92 | 75 | 1k+ | Output is not escaped | ||
| #88 | Category Featured Images Extended | 40 | 177 | 40 | 400 | Text Domain Mismatch | ||
| #89 | Country State City Dropdown CF7 | 40 | 35 | 54 | 5k+ | Direct Query | ||
| #90 | My Social Feeds – Social Feeds Embedder Plugin for WP | 40 | 8 | 77 | 400 | Request data is not unslashed | ||
| #91 | Recent & Featured Posts Widget | 40 | 124 | 2 | 600 | Output is not escaped | ||
| #92 | Select Post Export | 40 | 51 | 18 | 500 | Output is not escaped | ||
| #93 | CF7 Invisible reCAPTCHA | 41 | 19 | 52 | 7k+ | Request data is not unslashed | ||
| #94 | Duplicate Page and Post | 41 | 26 | 21 | 80k+ | Unsafe printing function | ||
| #95 | (Simply) Guest Author Name | 41 | 35 | 36 | 2k+ | Output is not escaped | ||
| #96 | LH Agree to Terms | 41 | 59 | 32 | 800 | Output is not escaped | ||
| #97 | SQL Chart Builder | 41 | 38 | 52 | 600 | Text Domain Mismatch | ||
| #98 | Taxonomy Filter | 41 | 143 | 40 | 800 | Output is not escaped | ||
| #99 | Agoda Affiliate Partners Text Link Generator | 42 | 4 | 40 | 500 | Interpolated SQL is not prepared | ||
| #100 | FormCraft – Form Builder | 42 | 186 | 156 | 2k+ | Text Domain Mismatch |