WordPress.WP.I18n.NonSingularStringLiteralText
Non Singular String Literal Text
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 |
|---|---|---|---|---|---|---|---|---|
| #1251 | Brevo for WooCommerce | 35 | 116 | 67 | 30k+ | Output is not escaped | ||
| #1252 | Easy Accept Payments via PayPal | 35 | 322 | 128 | 7k+ | Text Domain Mismatch | ||
| #1253 | WP Geo | 35 | 180 | 84 | 900 | Output is not escaped | ||
| #1254 | Auto Publish for Google My Business | 35 | 216 | 192 | 10k+ | Input is not validated | ||
| #1255 | WP GPX Maps | 35 | 27 | 100 | 4k+ | Non-prefixed global variable | ||
| #1256 | Mail logging – WP Mail Catcher | 35 | 232 | 157 | 20k+ | Text Domain Mismatch | ||
| #1257 | WP Mailto Links – Protect Email Addresses | 35 | 95 | 69 | 8k+ | Output is not escaped | ||
| #1258 | WP-PageNavi | 35 | 84 | 95 | 500k+ | Non Singular String Literal Domain | ||
| #1259 | WP Post Nav | 35 | 73 | 242 | 400 | Non-prefixed global variable | ||
| #1260 | WP All Import – Property Import for WP Residence | 35 | 41 | 32 | 700 | Output is not escaped | ||
| #1261 | WPD Beaver Builder Additions | 35 | 406 | 35 | 600 | Non Singular String Literal Domain | ||
| #1262 | WP Views Counter | 35 | 81 | 42 | 2k+ | Output is not escaped | ||
| #1263 | WPElemento Importer | 35 | 126 | 123 | 9k+ | Text Domain Mismatch | ||
| #1264 | wpLingua – Automatic translation – Translate and make website multilingual | 35 | 79 | 167 | 2k+ | Nonce verification recommended | ||
| #1265 | WPZOOM Addons for Elementor – Starter Templates & Widgets | 35 | 160 | 130 | 20k+ | Output is not escaped | ||
| #1266 | TypeSquare Webfonts for エックスサーバー | 35 | 183 | 98 | 100k+ | Missing Arg Domain | ||
| #1267 | Embeds for YouTube | 35 | 255 | 307 | 10k+ | Non-prefixed global variable | ||
| #1268 | 2C2P Redirect API for WooCommerce | 36 | 136 | 62 | 900 | wp function not compatible with requires wp | ||
| #1269 | Affiliate Links – Link Cloaking and Management | 36 | 26 | 136 | 3k+ | Non-prefixed global variable | ||
| #1270 | Age Verification for your checkout page. Verify your customer's identity | 36 | 155 | 238 | 500 | Output is not escaped | ||
| #1271 | Awesome GDPR Compliant Cookie Consent and Notice | 36 | 653 | 201 | 500 | Text Domain Mismatch | ||
| #1272 | BlockStrap Page Builder – Bootstrap Blocks | 36 | 81 | 89 | 2k+ | Missing direct file access protection | ||
| #1273 | Blog, Posts and Category Filter for Elementor | 36 | 159 | 55 | 1k+ | Text Domain Mismatch | ||
| #1274 | BP Disable Activation Reloaded | 36 | 147 | 28 | 800 | Output is not escaped | ||
| #1275 | BP Profile Search | 36 | 321 | 85 | 5k+ | Output is not escaped | ||
| #1276 | bpost shipping | 36 | 97 | 43 | 700 | Output is not escaped | ||
| #1277 | BuddyMeet | 36 | 114 | 32 | 700 | Unsafe printing function | ||
| #1278 | Bulk Post Update Date | 36 | 96 | 66 | 10k+ | Unsafe printing function | ||
| #1279 | Better WordPress Recent Comments | 36 | 319 | 69 | 600 | Text Domain Mismatch | ||
| #1280 | Carousel Ultimate | 36 | 450 | 284 | 700 | Text Domain Mismatch | ||
| #1281 | Carousel Horizontal Posts Content Slider | 36 | 271 | 59 | 2k+ | Text Domain Mismatch | ||
| #1282 | Multi Step for Contact Form 7 | 36 | 61 | 106 | 10k+ | Missing nonce verification | ||
| #1283 | Contact Form 7 Polylang Module | 36 | 32 | 45 | 5k+ | Output is not escaped | ||
| #1284 | CM Header and Footer – Add custom scripts and styles to your header and footer with ease | 36 | 230 | 198 | 1k+ | Output is not escaped | ||
| #1285 | Conditional Payments for WooCommerce | 36 | 292 | 184 | 10k+ | Text Domain Mismatch | ||
| #1286 | Conditional Shipping for WooCommerce | 36 | 93 | 196 | 10k+ | Non-prefixed global variable | ||
| #1287 | Custom PHP Settings | 36 | 153 | 76 | 10k+ | Output is not escaped | ||
| #1288 | Depicter — Popup & Slider Builder | 36 | 130 | 121 | 80k+ | Exception output is not escaped | ||
| #1289 | Doneren met Mollie | 36 | 420 | 351 | 4k+ | SQL query is not prepared | ||
| #1290 | Duitku Payment Gateway | 36 | 507 | 107 | 700 | Text Domain Mismatch | ||
| #1291 | Product Carousel Slider for Elementor | 36 | 148 | 63 | 1k+ | Text Domain Mismatch | ||
| #1292 | Envo's Templates & Widgets for Elementor and WooCommerce | 36 | 1,065 | 54 | 10k+ | Text Domain Mismatch | ||
| #1293 | Happy WooCommerce FAQs – Ultimate Product FAQ Plugin | 36 | 65 | 119 | 1k+ | Nonce verification recommended | ||
| #1294 | FreePay for WooCommerce | 36 | 114 | 102 | 400 | Output is not escaped | ||
| #1295 | GetPaid > Wallet | 36 | 149 | 174 | 700 | Text Domain Mismatch | ||
| #1296 | Google SEO Pressor for Rich snippets | 36 | 51 | 160 | 400 | Missing nonce verification | ||
| #1297 | Gutena Kit – Gutenberg Blocks and Templates | 36 | 39 | 87 | 1k+ | Nonce verification recommended | ||
| #1298 | Header Footer Code Manager | 36 | 81 | 180 | 600k+ | Non-prefixed global variable | ||
| #1299 | Optimize Social Share | 36 | 203 | 61 | 3k+ | Unsafe printing function | ||
| #1300 | HTML Forms – Simple WordPress Forms Plugin | 36 | 231 | 166 | 10k+ | Output is not escaped |