WordPress.WP.I18n.TextDomainMismatch
Text Domain Mismatch
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 | BulletProof Security | 0 | 5,048 | 4,949 | 20k+ | Output is not escaped | ||
| #2 | Live Shopping & Shoppable Videos For WooCommerce | 0 | 79 | 174 | 400 | Non-prefixed global variable | ||
| #3 | Plugin Check (PCP) | 0 | 128 | 140 | 10k+ | Non-prefixed global variable | ||
| #4 | Themify Builder | 9 | 5,334 | 2,171 | 5k+ | Text Domain Mismatch | ||
| #5 | JetBackup – Backup, Restore & Migrate | 10 | 1,567 | 156 | 200k+ | Exception output is not escaped | ||
| #6 | Easy WP SMTP – WordPress SMTP and Email Logs: Gmail SMTP, Office 365, Outlook, Custom SMTP, and more | 15 | 45 | 166 | 500k+ | Database parameter is not escaped | ||
| #7 | RestroPress – Online Food Ordering System | 16 | 536 | 3,206 | 1k+ | Non-prefixed global variable | ||
| #8 | MDTF – Meta Data and Taxonomies Filter | 16 | 1,550 | 1,956 | 1k+ | Non-prefixed global variable | ||
| #9 | AnyComment | 17 | 445 | 449 | 5k+ | Output is not escaped | ||
| #10 | Efí Bank | 17 | 886 | 553 | 400 | Exception output is not escaped | ||
| #11 | Shopping Cart & eCommerce Store | 17 | 8,038 | 17,464 | 3k+ | Non-prefixed global variable | ||
| #12 | wpForo Forum | 17 | 4,306 | 3,026 | 20k+ | Unsafe printing function | ||
| #13 | WPtouch – Make your WordPress Website Mobile-Friendly | 17 | 1,466 | 325 | 50k+ | Text Domain Mismatch | ||
| #14 | Administrator Z | 18 | 2,061 | 799 | 400 | Output is not escaped | ||
| #15 | Pagopar – WooCommerce Gateway | 18 | 530 | 1,215 | 400 | Non-prefixed global variable | ||
| #16 | Property Hive | 18 | 1,957 | 6,027 | 3k+ | Missing nonce verification | ||
| #17 | WPPizza – A Restaurant Plugin | 18 | 4,689 | 2,703 | 1k+ | Text Domain Mismatch | ||
| #18 | Element Pack Addons for Elementor – Elementor Widgets, Elementor Templates, Elementor Addons | 19 | 10,340 | 360 | 100k+ | Text Domain Mismatch | ||
| #19 | GiveWP – Donation Plugin and Fundraising Platform | 19 | 3,417 | 3,563 | 100k+ | Output is not escaped | ||
| #20 | Go Fetch Jobs (for WP Job Manager) | 19 | 1,410 | 1,741 | 700 | Non-prefixed global variable | ||
| #21 | JetFormBuilder — Dynamic Blocks Form Builder | 19 | 2,103 | 1,605 | 80k+ | Text Domain Mismatch | ||
| #22 | Netgsm | 19 | 334 | 308 | 1k+ | Setting is missing a sanitization callback | ||
| #23 | Verified Reviews (Avis Vérifiés) | 19 | 671 | 1,136 | 700 | Non-prefixed global variable | ||
| #24 | Razorpay Payment Button Plugin | 19 | 486 | 98 | 2k+ | Exception output is not escaped | ||
| #25 | Really Simple Security – Simple and Performant Security (formerly Really Simple SSL) | 19 | 531 | 374 | 3m+ | Missing Translators Comment | ||
| #26 | Membership Plugin – Kadence Memberships | 19 | 5,083 | 2,982 | 9k+ | Text Domain Mismatch | ||
| #27 | Scrollsequence – Cinematic Scroll Image Animation Plugin | 19 | 878 | 1,528 | 3k+ | Non-prefixed global variable | ||
| #28 | SendPress Newsletters | 19 | 2,293 | 1,422 | 1k+ | Output is not escaped | ||
| #29 | WP Email Template | 19 | 344 | 345 | 2k+ | Exception output is not escaped | ||
| #30 | WP Directory Kit | 19 | 1,502 | 2,641 | 2k+ | Non-prefixed global variable | ||
| #31 | Broadstreet | 20 | 434 | 273 | 800 | Output is not escaped | ||
| #32 | Post Form – Registration Form – Profile Form for User Profiles – Frontend Content Forms for User Submissions (UGC) | 20 | 736 | 2,112 | 900 | Non-prefixed global variable | ||
| #33 | Cost Calculator Builder | 20 | 323 | 766 | 20k+ | Non-prefixed global variable | ||
| #34 | SysBasics Customize My Account for WooCommerce – Live My Account Customizer | 20 | 743 | 911 | 8k+ | Non-prefixed global variable | ||
| #35 | Event Espresso – Event Registration & Ticketing Sales | 20 | 12,698 | 2,135 | 600 | Text Domain Mismatch | ||
| #36 | Event Organiser | 20 | 1,104 | 544 | 20k+ | Text Domain Mismatch | ||
| #37 | EventPrime – Events Calendar, Bookings and Tickets | 20 | 846 | 4,211 | 7k+ | Non-prefixed global variable | ||
| #38 | Microthemer Lite – Visual Editor to Customize CSS | 20 | 1,004 | 1,699 | 10k+ | Non-prefixed global variable | ||
| #39 | Nimble Page Builder | 20 | 1,591 | 1,684 | 30k+ | Missing Arg Domain | ||
| #40 | Shipping for Nova Poshta | 20 | 598 | 923 | 400 | Output is not escaped | ||
| #41 | پلاگین پرداخت دلخواه | 20 | 584 | 446 | 900 | Text Domain Mismatch | ||
| #42 | Pix por Piggly (para Woocommerce) | 20 | 547 | 195 | 4k+ | Exception output is not escaped | ||
| #43 | Quill Forms | Conversational Multi Step Forms, Surveys & quizzes | 20 | 400 | 371 | 3k+ | Text Domain Mismatch | ||
| #44 | Razorpay Payment Button Elementor Plugin | 20 | 479 | 62 | 1k+ | Exception output is not escaped | ||
| #45 | Remove Add to Cart WooCommerce | 20 | 616 | 1,378 | 4k+ | Non-prefixed global variable | ||
| #46 | Restrict User Access – Ultimate Membership & Content Protection | 20 | 977 | 1,848 | 10k+ | Non-prefixed global variable | ||
| #47 | Events Manager – OpenStreetMaps | 20 | 559 | 444 | 600 | Output is not escaped | ||
| #48 | Razorpay for WooCommerce | 20 | 975 | 859 | 100k+ | Non-prefixed function | ||
| #49 | Premium Packages – Sell Digital Products Securely | 20 | 2,017 | 2,182 | 2k+ | Non-prefixed global variable | ||
| #50 | School Management System – WPSchoolPress | 20 | 245 | 5,285 | 1k+ | Non-prefixed global variable |