WordPress.WP.I18n.InterpolatedVariableText
Interpolated Variable 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 |
|---|---|---|---|---|---|---|---|---|
| #101 | Arconix Shortcodes | 33 | 129 | 107 | 4k+ | Output is not escaped | ||
| #102 | Books Gallery – Book Showcase, Library & Affiliate Plugin | 33 | 1,753 | 178 | 2k+ | Output is not escaped | ||
| #103 | CSS JS Manager, Async JavaScript, Defer Render Blocking CSS | 34 | 76 | 106 | 1k+ | Input is not validated | ||
| #104 | CrowdSec | 35 | 130 | 119 | 2k+ | Output is not escaped | ||
| #105 | TS Webfonts for さくらのレンタルサーバ | 35 | 183 | 100 | 30k+ | Missing Arg Domain | ||
| #106 | TypeSquare Webfonts for エックスサーバー | 35 | 183 | 98 | 100k+ | Missing Arg Domain | ||
| #107 | Motors VIN Decoder | 36 | 87 | 88 | 500 | Output is not escaped | ||
| #108 | PublishPress Statuses – Custom Post Status and Workflow | 36 | 232 | 79 | 1k+ | Missing Arg Domain | ||
| #109 | Clearpay Gateway for WooCommerce | 37 | 185 | 63 | 1k+ | Text Domain Mismatch | ||
| #110 | Publish to Schedule | 37 | 195 | 43 | 4k+ | Text Domain Mismatch | ||
| #111 | Conditional Discounts for WooCommerce – A simple yet complete woocommerce dynamic pricing plugin | 37 | 99 | 33 | 10k+ | Text Domain Mismatch | ||
| #112 | Advanced Sermons | 38 | 833 | 184 | 1k+ | Unsafe printing function | ||
| #113 | Afterpay Gateway for WooCommerce | 38 | 183 | 62 | 10k+ | Text Domain Mismatch | ||
| #114 | Kali Forms — Contact Form & Drag-and-Drop Builder | 38 | 3 | 252 | 10k+ | Dynamic hook name | ||
| #115 | PostLinks | 38 | 107 | 10 | 700 | Output is not escaped | ||
| #116 | WP Maintenance Mode & Site Under Construction | 38 | 72 | 57 | 3k+ | Output is not escaped | ||
| #117 | Simpaisa Wallet (Jazzcash & Easypaisa) Payment Services | 39 | 67 | 74 | 1k+ | Interpolated Variable Text | ||
| #118 | Categories Metabox Enhanced | 40 | 77 | 36 | 1k+ | Output is not escaped | ||
| #119 | Pixel Tag Manager for WooCommerce – Google Analytics 4, Google Ads, and More Pixels | 40 | 68 | 249 | 3k+ | Missing nonce verification | ||
| #120 | Sentry for WordPress | 40 | 80 | 40 | 10k+ | Text Domain Mismatch | ||
| #121 | Cache control by Cacholong | 41 | 87 | 30 | 500 | Non Singular String Literal Domain | ||
| #122 | Page Specific Menu Items | 41 | 78 | 19 | 2k+ | Output is not escaped | ||
| #123 | TotalSurvey for Survey, Quiz and Form | 46 | 290 | 33 | 600 | Missing direct file access protection | ||
| #124 | Section Widget | 50 | 24 | 35 | 500 | Nonce verification recommended | ||
| #125 | Enhanced Category Pages | 55 | 23 | 25 | 2k+ | Direct Query | ||
| #126 | Quick and Easy FAQs | 70 | 93 | 9 | 10k+ | Non Singular String Literal Domain | ||
| #127 | Stitch Express | 70 | 9 | 6 | 400 | Output is not escaped | ||
| #128 | Panda Video | 80 | 29 | 17 | 3k+ | Non-prefixed global variable |