WordPress.WP.I18n.NonSingularStringLiteralContext
Non Singular String Literal Context
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 | Podlove Podcast Publisher | 18 | 2,354 | 1,433 | 3k+ | Output is not escaped | ||
| #2 | Brizy – Page Builder | 20 | 586 | 726 | 70k+ | Output is not escaped | ||
| #3 | Better Messages – Chat Rooms, Group Chat, Private Messages & AI Chat Bots | 21 | 1,621 | 2,038 | 10k+ | Direct Query | ||
| #4 | MotoPress Hotel Booking | 21 | 3,067 | 1,037 | 10k+ | Text Domain Mismatch | ||
| #5 | GeoDirectory – WP Business Directory Plugin and Classified Listings Directory | 22 | 4,465 | 3,985 | 10k+ | Output is not escaped | ||
| #6 | LearnPress – WordPress LMS Plugin for Create and Sell Online Courses | 22 | 2,433 | 3,594 | 70k+ | Non-prefixed global variable | ||
| #7 | Seraphinite Accelerator | 22 | 595 | 255 | 50k+ | Output is not escaped | ||
| #8 | Master Accordion ( Former WP Awesome FAQ Plugin ) | 22 | 1,774 | 1,286 | 700 | Non-prefixed global variable | ||
| #9 | WPSSO Core – Complete Schema Markup and Meta Tags | 22 | 1,409 | 414 | 5k+ | Missing Translators Comment | ||
| #10 | Heureka | 23 | 534 | 237 | 400 | Exception output is not escaped | ||
| #11 | Locatoraid Store Locator | 23 | 318 | 645 | 1k+ | Non-prefixed global variable | ||
| #12 | Order Bump for WooCommerce | 23 | 1,720 | 1,562 | 600 | Output is not escaped | ||
| #13 | Seraphinite Post .DOCX Source | 23 | 1,156 | 110 | 900 | Output is not escaped | ||
| #14 | Travelpayouts | 23 | 761 | 114 | 6k+ | Output is not escaped | ||
| #15 | WP Webhooks – Automate repetitive tasks by creating powerful automation workflows directly within WordPress | 23 | 4,380 | 888 | 20k+ | Output is not escaped | ||
| #16 | Event Tickets and Registration | 24 | 3,407 | 4,218 | 90k+ | Non-prefixed global variable | ||
| #17 | My Agile Privacy® – CMP, Cookie Consent & Privacy Tools | 24 | 1,329 | 705 | 7k+ | Text Domain Mismatch | ||
| #18 | PublishPress Revisions: Duplicate Posts, Submit, Approve and Schedule Content Changes | 24 | 422 | 601 | 10k+ | Missing Translators Comment | ||
| #19 | ShiftController Employee Shift Scheduling | 24 | 358 | 196 | 600 | Output is not escaped | ||
| #20 | WP RSS Aggregator – RSS Import, Feed to Post, Autoblogging, AI Content | 24 | 1,774 | 394 | 40k+ | Text Domain Mismatch | ||
| #21 | xili-language | 24 | 1,501 | 523 | 600 | Output is not escaped | ||
| #22 | Dynamic Pricing With Discount Rules for WooCommerce | 25 | 165 | 205 | 5k+ | Non-prefixed global variable | ||
| #23 | Conditional Payment Methods for WooCommerce | 25 | 548 | 1,398 | 1k+ | Non-prefixed global variable | ||
| #24 | XL NMI Gateway for WooCommerce | 26 | 695 | 436 | 1k+ | Text Domain Mismatch | ||
| #25 | Urvanov Syntax Highlighter | 30 | 221 | 87 | 3k+ | Output is not escaped | ||
| #26 | DEPRECATED – Shipmondo – A complete shipping solution for WooCommerce | 32 | 166 | 119 | 5k+ | Output is not escaped | ||
| #27 | Datafeedr Product Sets | 35 | 602 | 206 | 5k+ | Output is not escaped | ||
| #28 | Ultimate Post List | 35 | 186 | 84 | 2k+ | Missing Arg Domain | ||
| #29 | WP Mailto Links – Protect Email Addresses | 35 | 95 | 69 | 8k+ | Output is not escaped | ||
| #30 | wpLingua – Automatic translation – Translate and make website multilingual | 35 | 82 | 167 | 2k+ | Nonce verification recommended | ||
| #31 | Product Labels For Woocommerce (Sale Badges) | 36 | 90 | 48 | 10k+ | Output is not escaped | ||
| #32 | Language Switcher | 37 | 81 | 105 | 1k+ | Missing Translators Comment | ||
| #33 | SuperCPT | 37 | 172 | 27 | 600 | Output is not escaped | ||
| #34 | Tracking Script Manager | 37 | 82 | 57 | 2k+ | Non Singular String Literal Domain | ||
| #35 | Datafeedr WooCommerce Importer | 38 | 112 | 56 | 5k+ | Text Domain Mismatch | ||
| #36 | Super Simple Slider | 38 | 55 | 55 | 1k+ | Non-prefixed global variable | ||
| #37 | You can quote me on that | 39 | 57 | 37 | 400 | Output is not escaped | ||
| #38 | Cache control by Cacholong | 41 | 87 | 30 | 500 | Non Singular String Literal Domain | ||
| #39 | Clio Grow Form | 91 | 179 | 19 | 1k+ | Text Domain Mismatch |