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 |
|---|---|---|---|---|---|---|---|---|
| #451 | Page Animations And Transitions | 55 | 89 | 67 | 1k+ | Non Singular String Literal Domain | ||
| #452 | Seed Social | 56 | 36 | 7 | 6k+ | Output is not escaped | ||
| #453 | WP Old Post Date Remover | 57 | 25 | 7 | 2k+ | Unsafe printing function | ||
| #454 | Web Accessibility Toolkit – Accessibility Checker & ARIA for WCAG, Section 508 & ADA Compliance | 58 | 9 | 21 | 500 | Output is not escaped | ||
| #455 | Stratum Widgets for Elementor | 60 | 66 | 366 | 20k+ | Non-prefixed global variable | ||
| #456 | MultiStep Checkout for WooCommerce | 60 | 46 | 57 | 4k+ | Non Singular String Literal Text | ||
| #457 | Custom Buttons for WooCommerce – Add To Cart Button for Product Types | 61 | 58 | 4 | 2k+ | Text Domain Mismatch | ||
| #458 | Creative Commons | 61 | 103 | 17 | 700 | Text Domain Mismatch | ||
| #459 | Magic Tooltips For Contact Form 7 | 61 | 37 | 21 | 700 | Text Domain Mismatch | ||
| #460 | PRyC WP: Add custom content to post and page (top/bottom) | 61 | 63 | 7 | 1k+ | Text Domain Mismatch | ||
| #461 | Slide everything for Elementor | 61 | 93 | 1 | 6k+ | Text Domain Mismatch | ||
| #462 | Wistia WordPress Plugin | 61 | 42 | 12 | 2k+ | Output is not escaped | ||
| #463 | Checkout Countdown for WooCommerce – Boost Conversions & Reduce Cart Abandonment | 62 | 43 | 12 | 3k+ | Output is not escaped | ||
| #464 | Custom post types, Custom Fields & more | 63 | 101 | 22 | 3k+ | Missing Translators Comment | ||
| #465 | Dadevarzan Beaver Builder Modules | 63 | 167 | 5 | 600 | Text Domain Mismatch | ||
| #466 | Image Hover Effects – Elementor Addon | 64 | 117 | 7 | 40k+ | Text Domain Mismatch | ||
| #467 | Webyx for Elementor – Fullpage Fullscreen Scrolling Websites | 67 | 684 | 10 | 500 | Non Singular String Literal Domain | ||
| #468 | Contact Information Widget | 69 | 35 | 3 | 3k+ | Output is not escaped | ||
| #469 | Scroll Down Arrow | 69 | 30 | 30 | 800 | Missing Arg Domain | ||
| #470 | Zapper Payments | 69 | 11 | 11 | 600 | Output is not escaped | ||
| #471 | Xpro Slider For Beaver Builder – Lite | 70 | 147 | 13 | 500 | Text Domain Mismatch | ||
| #472 | Visual Bible Verse of the Day Widget | 71 | 27 | 1 | 900 | Output is not escaped | ||
| #473 | WP Widget in Navigation | 71 | 37 | 15 | 3k+ | Non Singular String Literal Domain | ||
| #474 | Robots.txt Editor | 72 | 10 | 7 | 10k+ | Input is not validated or sanitized | ||
| #475 | Product Bundles – Bulk Discounts | 73 | 31 | 7 | 600 | Text Domain Mismatch | ||
| #476 | Under Construction Light | 73 | 13 | 8 | 1k+ | Text Domain Mismatch | ||
| #477 | Post Carousel for DV Builder | 74 | 152 | 9 | 2k+ | Text Domain Mismatch | ||
| #478 | Anchor Episodes Index (Spotify for Podcasters) | 75 | 32 | 3 | 1k+ | Text Domain Mismatch | ||
| #479 | True Lazy Analytics | 75 | 11 | 13 | 6k+ | Nonce verification recommended | ||
| #480 | Custom Profile Menu for BuddyPress | 77 | 8 | 4 | 400 | Output is not escaped | ||
| #481 | Scroll Magic Addon for Elementor | 77 | 344 | 7 | 400 | Text Domain Mismatch | ||
| #482 | Popupsmart | 79 | 28 | 2 | 600 | Output is not escaped | ||
| #483 | Photospace Responsive Gallery | 83 | 115 | 14 | 900 | Text Domain Mismatch | ||
| #484 | Order on Mobile for WooCommerce | 84 | 14 | 1 | 7k+ | Output is not escaped | ||
| #485 | Payment Integration Wompi | 85 | 44 | 11 | 1k+ | Missing Arg Domain | ||
| #486 | Latest Posts Block – Dynamic Posts Grid, Posts List, Posts Tile with Stunning Layouts for WordPress Blogs & Pages | 86 | 9 | 8 | 7k+ | Missing Version | ||
| #487 | Dynamic Animations for Elementor | 88 | 77 | 17 | 1k+ | Non Singular String Literal Domain | ||
| #488 | Daddy Plus | 90 | 35 | 552 | 8k+ | Non-prefixed global variable | ||
| #489 | REST API Toolbox | 91 | 25 | 0 | 1k+ | Missing Arg Domain | ||
| #490 | Slivery Extender | 91 | 557 | 11 | 1k+ | Text Domain Mismatch | ||
| #491 | Storefront Add Slider | 92 | 11 | 1 | 800 | Text Domain Mismatch | ||
| #492 | Advanced Views – Display Custom Fields (ACF, Pods, MetaBox), Posts, CPT and Woo Products anywhere in Gutenberg, Elementor, Divi, Beaver… | 93 | 29 | 42 | 3k+ | Non-prefixed global variable | ||
| #493 | BeyondSEO – AI SEO to Improve Rankings, Listings & Online Visibility | 93 | 7 | 36 | 1k+ | Non-prefixed global variable | ||
| #494 | Better Block Editor (BBE) | 95 | 4 | 53 | 5k+ | Non-prefixed global variable | ||
| #495 | Admin Bar Toggle | 97 | 6 | 3 | 400 | Missing Arg Domain | ||
| #496 | WN Elementor Glassy Columns | 97 | 11 | 2 | 1k+ | Text Domain Mismatch | ||
| #497 | Product Addons and Product Options With Custom Fields – WowAddons | 100 | 2 | 1 | 3k+ | No Empty Strings |