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 |
|---|---|---|---|---|---|---|---|---|
| #101 | Uber reCaptcha | 43 | 129 | 45 | 1k+ | Text Domain Mismatch | ||
| #102 | Despacho vía Starken Pro para WooCommerce | 44 | 175 | 60 | 400 | Text Domain Mismatch | ||
| #103 | Cyberpret – Calculettes | 44 | 41 | 17 | 500 | Output is not escaped | ||
| #104 | Trusty Whistleblowing Solution | 44 | 234 | 16 | 400 | Text Domain Mismatch | ||
| #105 | Zoho Mail for WordPress | 46 | 29 | 48 | 20k+ | Request data is not unslashed | ||
| #106 | Social Media Widget | 47 | 51 | 3 | 400 | Output is not escaped | ||
| #107 | Contact Form 7 BWP reCAPTCHA Extension | 48 | 92 | 10 | 400 | Non Singular String Literal Domain | ||
| #108 | Fixed And Sticky Header | 48 | 31 | 7 | 1k+ | Output is not escaped | ||
| #109 | Successful Redirection for Contact Form | 49 | 33 | 20 | 10k+ | Text Domain Mismatch | ||
| #110 | Read Meter – Reading Time & Progress Bar | 49 | 39 | 50 | 10k+ | Request data is not unslashed | ||
| #111 | Dolyame Payment gateway | 51 | 122 | 10 | 700 | Text Domain Mismatch | ||
| #112 | Trustpilot Reviews | 51 | 14 | 52 | 30k+ | Missing nonce verification | ||
| #113 | WP Hooks Finder | 52 | 27 | 31 | 1k+ | Output is not escaped | ||
| #114 | ONTRApages | 53 | 16 | 27 | 1k+ | Output is not escaped | ||
| #115 | Sp*tify Play Button for WordPress | 54 | 21 | 15 | 3k+ | Text Domain Mismatch | ||
| #116 | DevVn Float Left Right Ads | 55 | 42 | 2 | 1k+ | Output is not escaped | ||
| #117 | Admin Bar Fix | 56 | 40 | 18 | 400 | Text Domain Mismatch | ||
| #118 | FV Top Level Categories | 56 | 24 | 16 | 20k+ | Text Domain Mismatch | ||
| #119 | Image Optimization For SEO | 56 | 116 | 69 | 3k+ | Non Singular String Literal Domain | ||
| #120 | Change Login Page Logo | 57 | 69 | 8 | 1k+ | Output is not escaped | ||
| #121 | tinyWYM Editor | 57 | 55 | 3 | 1k+ | Text Domain Mismatch | ||
| #122 | PDF invoice for WP ERP | 58 | 96 | 134 | 2k+ | Non-prefixed global variable | ||
| #123 | Remove CPT base | 58 | 15 | 16 | 10k+ | Input is not sanitized | ||
| #124 | Gravity Forms: Notification Attachments | 59 | 18 | 7 | 500 | Output is not escaped | ||
| #125 | Contact Form 7 Modules | 60 | 47 | 15 | 5k+ | Text Domain Mismatch | ||
| #126 | Skyboot Custom Icons for Elementor – Elementor Icons library – 14300+ Icons | 60 | 91 | 9 | 200k+ | Text Domain Mismatch | ||
| #127 | Creative Commons | 61 | 103 | 17 | 700 | Text Domain Mismatch | ||
| #128 | Remove Featured Image | 61 | 21 | 12 | 1k+ | Missing Arg Domain | ||
| #129 | Slide everything for Elementor | 61 | 93 | 1 | 6k+ | Text Domain Mismatch | ||
| #130 | Live Simple Clock | 62 | 23 | 1 | 800 | Output is not escaped | ||
| #131 | Thumbnail Crop Position | 64 | 43 | 1 | 2k+ | Output is not escaped | ||
| #132 | WP Change Default From Email | 65 | 51 | 7 | 10k+ | Non Singular String Literal Domain | ||
| #133 | WPAdmin AWS CDN | 66 | 161 | 42 | 500 | Text Domain Mismatch | ||
| #134 | Cart links for WooCommerce | 67 | 13 | 16 | 500 | Text Domain Mismatch | ||
| #135 | WP Post Branches | 67 | 16 | 12 | 4k+ | Nonce verification recommended | ||
| #136 | Bulk menu creator | 69 | 27 | 4 | 1k+ | Text Domain Mismatch | ||
| #137 | Colorize Mobile Browser Address bar | 69 | 26 | 3 | 1k+ | Output is not escaped | ||
| #138 | ELEX WooCommerce Bulk Edit Products, Prices & Attributes (Basic) | 69 | 511 | 51 | 4k+ | Text Domain Mismatch | ||
| #139 | Custom Currency for WooCommerce | 70 | 63 | 5 | 2k+ | Missing direct file access protection | ||
| #140 | Show-Hide / Collapse-Expand | 70 | 18 | 15 | 10k+ | Missing direct file access protection | ||
| #141 | ACF Tooltip | 71 | 16 | 3 | 1k+ | Output is not escaped | ||
| #142 | WP Widget in Navigation | 71 | 37 | 15 | 3k+ | Non Singular String Literal Domain | ||
| #143 | Disable Title | 72 | 20 | 15 | 2k+ | Text Domain Mismatch | ||
| #144 | Sweet Custom Dashboard | 73 | 27 | 2 | 400 | Missing Arg Domain | ||
| #145 | ACF Columns | 74 | 47 | 4 | 4k+ | Text Domain Mismatch | ||
| #146 | ABC Crypto Checkout | 76 | 42 | 14 | 1k+ | Text Domain Mismatch | ||
| #147 | Pushover Integration for WooCommerce | 77 | 107 | 7 | 800 | Text Domain Mismatch | ||
| #148 | WP Faster | 78 | 7 | 12 | 1k+ | trademarked term | ||
| #149 | Custom Background Changer | 79 | 48 | 11 | 1k+ | Non Singular String Literal Domain | ||
| #150 | Grabber for QQWorld Auto Save Images | 79 | 17 | 3 | 400 | Non Singular String Literal Domain |