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 |
|---|---|---|---|---|---|---|---|---|
| #51 | پلاگین پرداخت دلخواه | 20 | 584 | 446 | 900 | Text Domain Mismatch | ||
| #52 | PeachPay — Payments & Express Checkout for WooCommerce (supports Stripe, PayPal, Square, Authorize.net, NMI) | 20 | 440 | 750 | 400 | Missing direct file access protection | ||
| #53 | Pix por Piggly (para Woocommerce) | 20 | 547 | 195 | 4k+ | Exception output is not escaped | ||
| #54 | Powered Cache – Caching and Optimization for WordPress – Easily Improve PageSpeed & Web Vitals Score | 20 | 147 | 231 | 3k+ | Exception output is not escaped | ||
| #55 | Events Manager – OpenStreetMaps | 20 | 559 | 444 | 700 | Output is not escaped | ||
| #56 | Trace My IP – Visitor IP Tracker, Stats Analytics & Page Views Counter with Email Alerts | 20 | 866 | 338 | 1k+ | wp function not compatible with requires wp | ||
| #57 | Web Directory Free | 20 | 808 | 174 | 400 | Missing direct file access protection | ||
| #58 | Razorpay for WooCommerce | 20 | 974 | 855 | 100k+ | Non-prefixed function | ||
| #59 | WP Minify Fix | 20 | 306 | 380 | 800 | Output is not escaped | ||
| #60 | WPJAM Basic | 20 | 328 | 356 | 4k+ | Output is not escaped | ||
| #61 | School Management System – WPSchoolPress | 20 | 353 | 5,275 | 1k+ | Non-prefixed global variable | ||
| #62 | Store Locator WordPress | 21 | 2,372 | 1,572 | 10k+ | Text Domain Mismatch | ||
| #63 | Backup Migration | 21 | 981 | 1,093 | 80k+ | Non-prefixed global variable | ||
| #64 | Forumax – AI Powered Advanced Community Forum Plugin | 21 | 4,936 | 4,357 | 600 | Text Domain Mismatch | ||
| #65 | bbPress | 21 | 929 | 3,672 | 100k+ | Non-prefixed function | ||
| #66 | Booking Ultra Pro Appointments Booking Calendar Plugin | 21 | 761 | 2,083 | 400 | Request data is not unslashed | ||
| #67 | BWD Elementor Addons | 21 | 670 | 1,168 | 400 | Non-prefixed global variable | ||
| #68 | CallTrackingMetrics | 21 | 923 | 286 | 3k+ | Unsafe printing function | ||
| #69 | Captcha Them All | 21 | 300 | 323 | 6k+ | Output is not escaped | ||
| #70 | CartFlows – Funnel Builder & Checkout Plugin for WooCommerce | 21 | 462 | 654 | 200k+ | Text Domain Mismatch | ||
| #71 | Smart Grid-Layout Design for Contact Form 7 | 21 | 1,126 | 734 | 10k+ | Output is not escaped | ||
| #72 | SMS Extension for Contact Form 7 | 21 | 720 | 1,387 | 400 | Non-prefixed global variable | ||
| #73 | Comet Cache | 21 | 857 | 245 | 20k+ | Output is not escaped | ||
| #74 | Cost Calculator Builder | 21 | 322 | 766 | 30k+ | Non-prefixed global variable | ||
| #75 | DELUCKS SEO | 21 | 362 | 1,171 | 400 | Missing nonce verification | ||
| #76 | Free Downloads WooCommerce | 21 | 430 | 359 | 4k+ | Output is not escaped | ||
| #77 | Duplicator – Backups & Migration Plugin – Cloud Backups, Scheduled Backups, & More | 21 | 2,572 | 1,277 | 1m+ | Output is not escaped | ||
| #78 | Ebook Store | 21 | 666 | 1,087 | 700 | Non-prefixed global variable | ||
| #79 | Envo Extra | 21 | 878 | 600 | 20k+ | Text Domain Mismatch | ||
| #80 | eRoom – Webinar & Meeting Plugin for Zoom, Google Meet, Microsoft Teams | 21 | 186 | 437 | 9k+ | Non-prefixed global variable | ||
| #81 | ERP: Complete HR, Recruitment, Accounting & CRM Suite with WooCommerce CRM Support | 21 | 829 | 5,966 | 5k+ | Direct Query | ||
| #82 | Eupago Gateway For Woocommerce | 21 | 612 | 320 | 2k+ | Output is not escaped | ||
| #83 | EventPrime – Events Calendar, Bookings and Tickets | 21 | 872 | 4,297 | 7k+ | Non-prefixed global variable | ||
| #84 | Feeds for YouTube (YouTube video, channel, and gallery plugin) | 21 | 558 | 978 | 100k+ | Output is not escaped | ||
| #85 | FileOrganizer – WordPress File Manager | 21 | 536 | 241 | 200k+ | unlink unlink | ||
| #86 | Front End Users | 21 | 719 | 2,759 | 400 | Non-prefixed global variable | ||
| #87 | Frontend Dashboard | 21 | 384 | 945 | 500 | Non-prefixed function | ||
| #88 | If-So Dynamic Content – Elementor & All Page Builders Personalization | 21 | 889 | 725 | 7k+ | Unsafe printing function | ||
| #89 | JCH Optimize | 21 | 953 | 133 | 4k+ | Output is not escaped | ||
| #90 | LA-Studio Element Kit for Elementor | 21 | 8,390 | 1,964 | 10k+ | Text Domain Mismatch | ||
| #91 | Mapster WP Maps | 21 | 3,440 | 2,903 | 3k+ | Text Domain Mismatch | ||
| #92 | Mergado Pack | 21 | 2,323 | 588 | 700 | Output is not escaped | ||
| #93 | Modular DS: Monitor, update, and backup multiple websites | 21 | 159 | 81 | 40k+ | Exception output is not escaped | ||
| #94 | Mooberry Book Manager | 21 | 1,040 | 399 | 1k+ | Text Domain Mismatch | ||
| #95 | MotoPress Hotel Booking | 21 | 3,061 | 1,037 | 10k+ | Text Domain Mismatch | ||
| #96 | Points Management System For Gamification, Ranks, Badges, and Loyalty Rewards Program – myCred | 21 | 1,469 | 3,333 | 10k+ | Non-prefixed global variable | ||
| #97 | Oasis Workflow | 21 | 775 | 575 | 700 | Text Domain Mismatch | ||
| #98 | Paid Membership Subscriptions – Effortless Memberships, Recurring Payments & Content Restriction | 21 | 1,918 | 5,065 | 10k+ | Non-prefixed hook name | ||
| #99 | User Profile Builder – Beautiful User Registration Forms, User Profiles & User Role Editor | 21 | 696 | 1,483 | 50k+ | Nonce verification recommended | ||
| #100 | PublishPress Planner – Editorial Calendar, Marketing Content, Kanban Board | 21 | 603 | 890 | 6k+ | Output is not escaped |