WordPress.WP.I18n.MissingTranslatorsComment
Missing Translators Comment
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 |
|---|---|---|---|---|---|---|---|---|
| #2101 | Activity Log – Monitor & Record User Changes | 38 | 81 | 149 | 200k+ | Nonce verification recommended | ||
| #2102 | Ashe Extra | 38 | 109 | 54 | 3k+ | Text Domain Mismatch | ||
| #2103 | Autologin Links | 38 | 73 | 74 | 8k+ | Output is not escaped | ||
| #2104 | Blogger Importer | 38 | 44 | 39 | 50k+ | Output is not escaped | ||
| #2105 | BuddyPress Follow | 38 | 114 | 67 | 1k+ | Text Domain Mismatch | ||
| #2106 | Cache Warmer | 38 | 32 | 219 | 1k+ | Interpolated SQL is not prepared | ||
| #2107 | Car Route Planner Plugin | 38 | 135 | 17 | 400 | Output is not escaped | ||
| #2108 | Category Posts Widget | 38 | 153 | 26 | 40k+ | Output is not escaped | ||
| #2109 | Cecabank WooCommerce Plugin | 38 | 63 | 32 | 3k+ | Text Domain Mismatch | ||
| #2110 | WPAppsDev – CF7 Form Submission Limit | 38 | 104 | 33 | 1k+ | Text Domain Mismatch | ||
| #2111 | Contact Form 7 – Post Fields | 38 | 167 | 25 | 3k+ | Text Domain Mismatch | ||
| #2112 | CF7 to Webhook | 38 | 102 | 72 | 30k+ | Unsafe printing function | ||
| #2113 | Checkout Files Upload for WooCommerce | 38 | 57 | 120 | 7k+ | Input is not sanitized | ||
| #2114 | Clever Mega Menu for Visual Composer | 38 | 500 | 87 | 1k+ | Output is not escaped | ||
| #2115 | Clever Mega Menu for Elementor | 38 | 835 | 44 | 1k+ | Output is not escaped | ||
| #2116 | Chatbot for WordPress by Collect.chat ⚡️ | 38 | 58 | 36 | 6k+ | Unsafe printing function | ||
| #2117 | Colorlib 404 Customizer | 38 | 65 | 15 | 5k+ | Missing direct file access protection | ||
| #2118 | Crop-Thumbnails | 38 | 33 | 27 | 40k+ | Missing direct file access protection | ||
| #2119 | One page checkout and layouts for woocommerce | 38 | 83 | 52 | 3k+ | Non-prefixed global variable | ||
| #2120 | Custom Menu Wizard Widget | 38 | 326 | 30 | 2k+ | Output is not escaped | ||
| #2121 | WP Page Templates | 38 | 92 | 28 | 400 | Non Singular String Literal Domain | ||
| #2122 | Customize Posts | 38 | 31 | 77 | 1k+ | Non-prefixed hook name | ||
| #2123 | Datafeedr Comparison Sets | 38 | 450 | 53 | 3k+ | Output is not escaped | ||
| #2124 | Datafeedr WooCommerce Importer | 38 | 112 | 56 | 5k+ | Text Domain Mismatch | ||
| #2125 | Availability Datepicker – Booking Calendar for Contact Form 7 – Input WP | 38 | 344 | 30 | 20k+ | Text Domain Mismatch | ||
| #2126 | Decent Comments | 38 | 93 | 28 | 2k+ | Output is not escaped | ||
| #2127 | Product Badge, Label, Countdown Timer for WooCommerce – Sale Booster | 38 | 37 | 102 | 5k+ | Interpolated SQL is not prepared | ||
| #2128 | Elemailer Lite – Elementor email template & campaign builder | 38 | 44 | 50 | 5k+ | Output is not escaped | ||
| #2129 | Export User Data | 38 | 187 | 62 | 6k+ | Text Domain Mismatch | ||
| #2130 | Social Photo Fetcher | 38 | 151 | 43 | 1k+ | Output is not escaped | ||
| #2131 | Foyer – Digital Signage for WordPress | 38 | 148 | 191 | 1k+ | Non-prefixed global variable | ||
| #2132 | Front-end Editor | 38 | 78 | 62 | 500 | Output is not escaped | ||
| #2133 | Gecka Submenu | 38 | 326 | 36 | 3k+ | Output is not escaped | ||
| #2134 | GoDaddy Payments for WooCommerce | 38 | 58 | 65 | 2k+ | Output is not escaped | ||
| #2135 | GoUrl WooCommerce – Bitcoin Altcoin Payment Gateway Addon | 38 | 279 | 24 | 600 | Non Singular String Literal Domain | ||
| #2136 | Greek Multi Tool – Greeklish Slugs, Permalinks & Transliteration | 38 | 160 | 82 | 1k+ | Unsafe printing function | ||
| #2137 | HashThemes Demo Importer | 38 | 71 | 44 | 6k+ | Output is not escaped | ||
| #2138 | CAOS | Host Google Analytics Locally | 38 | 124 | 44 | 10k+ | Output is not escaped | ||
| #2139 | Icegram Mailer – Reliable Email Deliverability, No-code SMTP Replacement & Email logs | 38 | 36 | 106 | 1k+ | Non-prefixed global variable | ||
| #2140 | Illdy Companion | 38 | 187 | 23 | 6k+ | Output is not escaped | ||
| #2141 | ThumbPress – Compress Images, Manage Thumbnails, Detect Image Issues, WebP/AVIF, Lazy Loading, Hotlinking & More | 38 | 20 | 89 | 30k+ | Direct Query | ||
| #2142 | imoje | 38 | 62 | 160 | 2k+ | Nonce verification recommended | ||
| #2143 | JC Submenu | 38 | 279 | 32 | 4k+ | Output is not escaped | ||
| #2144 | Maintenance Redirect | 38 | 244 | 132 | 10k+ | Missing Arg Domain | ||
| #2145 | Jock On Air Now (JOAN) | 38 | 121 | 224 | 500 | Output is not escaped | ||
| #2146 | jQuery Pin It Button for Images | 38 | 129 | 36 | 10k+ | Output is not escaped | ||
| #2147 | Jupiter X Core | 38 | 71 | 767 | 70k+ | Non-prefixed global variable | ||
| #2148 | Lana Downloads Manager | 38 | 146 | 78 | 3k+ | Unsafe printing function | ||
| #2149 | Lightning Advanced Unit | 38 | 189 | 27 | 3k+ | Output is not escaped | ||
| #2150 | Log Deprecated Notices | 38 | 92 | 73 | 900 | Text Domain Mismatch |