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 |
|---|---|---|---|---|---|---|---|---|
| #1 | Event Espresso – Event Registration & Ticketing Sales | 21 | 12,710 | 2,136 | 600 | Text Domain Mismatch | ||
| #2 | AI Infographic Maker | 21 | 1,311 | 456 | 600 | Output is not escaped | ||
| #3 | Motors – Car Dealership & Classified Listings Plugin | 21 | 5,437 | 6,146 | 9k+ | Text Domain Mismatch | ||
| #4 | Smart Forms – when you need more than just a contact form | 21 | 776 | 574 | 5k+ | Output is not escaped | ||
| #5 | IS-theme-companion | 21 | 3,559 | 511 | 1k+ | Non Singular String Literal Domain | ||
| #6 | Pay For Post with WooCommerce | 21 | 958 | 1,477 | 1k+ | Non-prefixed global variable | ||
| #7 | DirectoryPress – Business Directory And Classified Ad Listing | 22 | 4,787 | 2,795 | 700 | Text Domain Mismatch | ||
| #8 | easyReservations | 22 | 5,307 | 2,480 | 700 | Text Domain Mismatch | ||
| #9 | PAYCOMET for WooCommerce | 22 | 1,223 | 423 | 2k+ | Text Domain Mismatch | ||
| #10 | Advanced AJAX Product Filters | 23 | 2,850 | 1,254 | 50k+ | Text Domain Mismatch | ||
| #11 | Advanced Product Labels for WooCommerce | 24 | 956 | 538 | 10k+ | Text Domain Mismatch | ||
| #12 | Deployer for Git | 24 | 541 | 1,348 | 500 | Non-prefixed global variable | ||
| #13 | Grid/List View for WooCommerce | 24 | 1,069 | 545 | 2k+ | Output is not escaped | ||
| #14 | Load More Products for WooCommerce | 24 | 726 | 443 | 20k+ | Text Domain Mismatch | ||
| #15 | My Agile Privacy® – CMP, Cookie Consent & Privacy Tools | 24 | 1,338 | 704 | 7k+ | Text Domain Mismatch | ||
| #16 | Print Anywhere & Create PDFs of Order Receipts, Invoices, Labels & More. | 24 | 1,467 | 443 | 1k+ | Text Domain Mismatch | ||
| #17 | Sequential Order Numbers for WooCommerce | 24 | 693 | 456 | 900 | Text Domain Mismatch | ||
| #18 | Softaculous | 24 | 115 | 50 | 10k+ | file system operations fread | ||
| #19 | Agile Store Locator | 25 | 3,348 | 1,834 | 10k+ | Text Domain Mismatch | ||
| #20 | Bulk Edit Categories and Tags – Create Thousands Quickly on the Editor | 25 | 1,041 | 1,016 | 3k+ | Text Domain Mismatch | ||
| #21 | Bulk Edit and Create User Profiles – WP Sheet Editor | 25 | 995 | 1,001 | 1k+ | Text Domain Mismatch | ||
| #22 | Smart Online Order for Clover | 25 | 1,751 | 1,161 | 1k+ | Text Domain Mismatch | ||
| #23 | FlatPM – Ad Manager, AdSense and Custom Code | 25 | 3,017 | 557 | 10k+ | Text Domain Mismatch | ||
| #24 | Hardcore Google Fonts Localizer | 25 | 331 | 261 | 800 | Text Domain Mismatch | ||
| #25 | Seers AI | Cookie Consent Banner – GDPR & CCPA Compliant Consent Management Platform | 25 | 1,446 | 421 | 1k+ | Output is not escaped | ||
| #26 | Bulk Edit Products for WooCommerce – WP Sheet Editor | 25 | 957 | 968 | 10k+ | Text Domain Mismatch | ||
| #27 | Bulk Edit Coupons for WooCommerce – WP Sheet Editor | 25 | 1,022 | 982 | 500 | Text Domain Mismatch | ||
| #28 | Bulk Edit Posts and Products in Spreadsheet | 25 | 934 | 944 | 8k+ | Text Domain Mismatch | ||
| #29 | WP Frontend Admin – Display WP Admin Pages in the Frontend | 26 | 347 | 337 | 400 | Non Singular String Literal Domain | ||
| #30 | SV Proven Expert | 26 | 747 | 380 | 800 | Output is not escaped | ||
| #31 | Data Tables Generator by Supsystic | 27 | 138 | 132 | 10k+ | Exception output is not escaped | ||
| #32 | Social Web Suite – Social Media Auto Post, Social Media Auto Publish | 27 | 74 | 164 | 500 | Non-prefixed global variable | ||
| #33 | SV Tracking Manager | 27 | 968 | 129 | 1k+ | Output is not escaped | ||
| #34 | Mihdan: Ajax Edit Comments | 27 | 1,300 | 523 | 400 | Text Domain Mismatch | ||
| #35 | Terms descriptions | 28 | 222 | 423 | 1k+ | Non-prefixed function | ||
| #36 | CloudSecure WP Security | 29 | 74 | 321 | 100k+ | Request data is not unslashed | ||
| #37 | Geo Mashup | 29 | 774 | 232 | 1k+ | Text Domain Mismatch | ||
| #38 | Page Restrict for WooCommerce | 29 | 579 | 374 | 700 | Text Domain Mismatch | ||
| #39 | Tilda-publishing | 29 | 219 | 78 | 700 | Output is not escaped | ||
| #40 | BrightEdge Autopilot | 30 | 107 | 31 | 500 | curl curl setopt | ||
| #41 | Mailrelay | 31 | 317 | 170 | 1k+ | Text Domain Mismatch | ||
| #42 | Posti Shipping | 32 | 652 | 157 | 1k+ | Text Domain Mismatch | ||
| #43 | Awesome Widgets for SiteOrigin Page Builder | 33 | 314 | 59 | 500 | Text Domain Mismatch | ||
| #44 | IP2Location Redirection | 33 | 203 | 130 | 7k+ | Output is not escaped | ||
| #45 | SMTP2GO for WordPress – Email Made Easy | 33 | 186 | 111 | 30k+ | Output is not escaped | ||
| #46 | WP Dummy Content Generator | 34 | 93 | 130 | 5k+ | Output is not escaped | ||
| #47 | YourChannel: Everything you want in a YouTube plugin. | 34 | 262 | 115 | 9k+ | Text Domain Mismatch | ||
| #48 | CF7 Spreadsheets | 35 | 100 | 62 | 300 | Text Domain Mismatch | ||
| #49 | Gutenberg Blocks Library & Toolkit – Editor Plus | 35 | 27 | 11 | 6k+ | Text Domain Mismatch | ||
| #50 | IP2Location Country Blocker | 35 | 328 | 94 | 30k+ | Output is not escaped |