WordPress.WP.I18n.NoEmptyStrings
No Empty Strings
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 |
|---|---|---|---|---|---|---|---|---|
| #401 | Bangladeshi Payment Gateways – Make Payment Using QR Code | 40 | 40 | 36 | 5k+ | Output is not escaped | ||
| #402 | Top-Bar CodeBulls | 40 | 91 | 13 | 700 | Text Domain Mismatch | ||
| #403 | Contact Form 7 styler for Elementor Page Builder | 40 | 126 | 10 | 900 | Unsafe printing function | ||
| #404 | Fast User Switching | 40 | 28 | 28 | 2k+ | Output is not escaped | ||
| #405 | Get Cash | 40 | 84 | 49 | 500 | Non Singular String Literal Domain | ||
| #406 | Header Footer Custom Html | 40 | 95 | 22 | 1k+ | Unsafe printing function | ||
| #407 | Loan Comparison | 40 | 27 | 192 | 400 | Request data is not unslashed | ||
| #408 | List Petfinder Pets | 40 | 121 | 46 | 400 | Output is not escaped | ||
| #409 | Responsive Plus – Elementor Templates & Starter Sites | 40 | 46 | 305 | 10k+ | Non-prefixed global variable | ||
| #410 | Responsive Sidebar | 40 | 43 | 12 | 700 | Output is not escaped | ||
| #411 | Responsive Slider | 40 | 28 | 15 | 3k+ | Output is not escaped | ||
| #412 | REST API Custom Fields | 40 | 44 | 16 | 800 | Text Domain Mismatch | ||
| #413 | Sendy Widget | 40 | 46 | 17 | 700 | Output is not escaped | ||
| #414 | WooBooster Partial COD for WooCommerce | 40 | 90 | 51 | 500 | Text Domain Mismatch | ||
| #415 | Widget Builder | 40 | 40 | 52 | 500 | Non-prefixed global variable | ||
| #416 | WP Ajax Load More Pagination and Infinite Scroll | 40 | 63 | 15 | 400 | Output is not escaped | ||
| #417 | Collapsed Archives | 41 | 54 | 4 | 1k+ | Output is not escaped | ||
| #418 | Genesis Footer Builder | 41 | 124 | 3 | 1k+ | Output is not escaped | ||
| #419 | iCount Payment Gateway | 41 | 153 | 22 | 500 | Text Domain Mismatch | ||
| #420 | Lazy Load Optimizer | 41 | 63 | 26 | 3k+ | Unsafe printing function | ||
| #421 | Most Popular Categories | 41 | 67 | 2 | 600 | Output is not escaped | ||
| #422 | Preload LCP Image | 41 | 110 | 31 | 4k+ | Unsafe printing function | ||
| #423 | Variation Swatches for WooCommerce | 41 | 29 | 126 | 9k+ | Missing nonce verification | ||
| #424 | Responsive Lightbox | 41 | 68 | 10 | 10k+ | Output is not escaped | ||
| #425 | M-Pesa(Kenya) Checkout for Woocommerce | 41 | 46 | 38 | 1k+ | Text Domain Mismatch | ||
| #426 | Bulk Change Media Author | 42 | 25 | 20 | 2k+ | Unsafe printing function | ||
| #427 | Change Background Color for Pages, Posts, Widgets | 42 | 35 | 7 | 500 | Text Domain Mismatch | ||
| #428 | Storefront Online Ordering by DoorDash | 42 | 76 | 10 | 600 | Output is not escaped | ||
| #429 | Prismatic | 42 | 61 | 29 | 2k+ | Output is not escaped | ||
| #430 | Auto Coupons for WooCommerce | 42 | 82 | 68 | 4k+ | Output is not escaped | ||
| #431 | Admin Menu Tree Page View | 43 | 17 | 69 | 10k+ | Nonce verification recommended | ||
| #432 | Checkout Field Manager (Checkout Manager) for WooCommerce | 43 | 161 | 154 | 80k+ | Non-prefixed global variable | ||
| #433 | Despacho vía Starken Pro para WooCommerce | 44 | 175 | 60 | 400 | Text Domain Mismatch | ||
| #434 | Multilevel Navigation Menu | 44 | 80 | 1 | 500 | Output is not escaped | ||
| #435 | Easy HTML Sitemap | 45 | 75 | 8 | 600 | Text Domain Mismatch | ||
| #436 | Simple Login Notification | 45 | 13 | 22 | 2k+ | Request data is not unslashed | ||
| #437 | TriPay Payment Gateway | 45 | 478 | 44 | 1k+ | Text Domain Mismatch | ||
| #438 | Responsive Cookie Consent | 46 | 50 | 4 | 2k+ | Unsafe printing function | ||
| #439 | Advanced Custom Fields – Location Field add-on | 48 | 51 | 6 | 900 | Output is not escaped | ||
| #440 | MWW Disclaimer Buttons | 48 | 21 | 16 | 400 | Output is not escaped | ||
| #441 | Schedule Post Changes With PublishPress Future: Unpublish, Delete, Change Status, Trash, Change Categories | 48 | 63 | 273 | 100k+ | Non-prefixed global variable | ||
| #442 | Advanced Custom Fields – Taxonomy Field add-on | 50 | 57 | 4 | 1k+ | Non Singular String Literal Domain | ||
| #443 | Full Screen Background | 52 | 24 | 26 | 2k+ | Missing direct file access protection | ||
| #444 | Products Per Page for WooCommerce | 52 | 22 | 28 | 10k+ | Output is not escaped | ||
| #445 | FakerPress | 53 | 66 | 152 | 10k+ | Non-prefixed global variable | ||
| #446 | RDFa Breadcrumb | 53 | 27 | 13 | 600 | Output is not escaped | ||
| #447 | Social Media Widget | 53 | 90 | 21 | 30k+ | Text Domain Mismatch | ||
| #448 | Auto Image Alt Attribute | 55 | 26 | 7 | 6k+ | Unsafe printing function | ||
| #449 | Page Animations And Transitions | 55 | 89 | 67 | 1k+ | Non Singular String Literal Domain | ||
| #450 | Seed Social | 56 | 36 | 7 | 6k+ | Output is not escaped |