WordPress.WP.I18n.LowLevelTranslationFunction
Low Level Translation Function
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 | WPPizza – A Restaurant Plugin | 18 | 4,689 | 2,703 | 1k+ | Text Domain Mismatch | ||
| #2 | Event Espresso – Event Registration & Ticketing Sales | 20 | 12,698 | 2,135 | 600 | Text Domain Mismatch | ||
| #3 | Microthemer Lite – Visual Editor to Customize CSS | 20 | 1,004 | 1,699 | 10k+ | Non-prefixed global variable | ||
| #4 | Events Manager – OpenStreetMaps | 20 | 559 | 444 | 700 | Output is not escaped | ||
| #5 | Forumax – AI Powered Advanced Community Forum Plugin | 21 | 4,936 | 4,353 | 600 | Text Domain Mismatch | ||
| #6 | bbPress | 21 | 929 | 3,672 | 100k+ | Non-prefixed function | ||
| #7 | Kadence Security – Password, Two Factor Authentication, and Brute Force Protection | 21 | 1,060 | 957 | 700k+ | Missing Translators Comment | ||
| #8 | MotoPress Hotel Booking | 21 | 3,067 | 1,037 | 10k+ | Text Domain Mismatch | ||
| #9 | WebTotem Security | 21 | 1,110 | 213 | 900 | Text Domain Mismatch | ||
| #10 | Events Manager – Calendar, Bookings, Tickets, and more! | 22 | 4,716 | 5,690 | 70k+ | Output is not escaped | ||
| #11 | If-So Dynamic Content – Elementor & All Page Builders Personalization | 22 | 966 | 839 | 7k+ | Output is not escaped | ||
| #12 | LearnPress – WordPress LMS Plugin for Create and Sell Online Courses | 22 | 2,433 | 3,594 | 70k+ | Non-prefixed global variable | ||
| #13 | oik | 22 | 489 | 180 | 2k+ | Non Singular String Literal Domain | ||
| #14 | Slim Jetpack | 22 | 2,586 | 1,947 | 2k+ | Text Domain Mismatch | ||
| #15 | FV Flowplayer Video Player | 23 | 1,311 | 1,454 | 20k+ | Output is not escaped | ||
| #16 | Listdom: AI-powered Business Directory with Classifieds Ads Listings | 23 | 4,673 | 3,336 | 1k+ | Output is not escaped | ||
| #17 | The Events Calendar | 23 | 3,507 | 3,850 | 600k+ | Text Domain Mismatch | ||
| #18 | Travelpayouts | 23 | 761 | 114 | 6k+ | Output is not escaped | ||
| #19 | ManageWP Worker | 23 | 506 | 565 | 1m+ | Non-prefixed class | ||
| #20 | 404 Solution | 24 | 483 | 1,355 | 10k+ | Non-prefixed class | ||
| #21 | FV Player 8 | 24 | 323 | 1,383 | 1k+ | Non-prefixed function | ||
| #22 | Photo Gallery – Responsive Image Galleries by Supsystic | 24 | 242 | 88 | 20k+ | Text Domain Mismatch | ||
| #23 | Mailchimp for WooCommerce | 24 | 523 | 663 | 200k+ | Non-prefixed global variable | ||
| #24 | PublishPress Revisions: Duplicate Posts, Submit, Approve and Schedule Content Changes | 24 | 422 | 601 | 10k+ | Missing Translators Comment | ||
| #25 | SiteOrigin Widgets Bundle | 24 | 605 | 455 | 400k+ | Output is not escaped | ||
| #26 | WPML Multilingual & Multicurrency for WooCommerce | 24 | 1,599 | 1,691 | 100k+ | SQL query is not prepared | ||
| #27 | xili-language | 24 | 1,501 | 523 | 600 | Output is not escaped | ||
| #28 | Online Scheduling and Appointment Booking System – Bookly | 25 | 1,095 | 900 | 60k+ | SQL query is not prepared | ||
| #29 | DecaLog | 25 | 943 | 236 | 1k+ | Exception output is not escaped | ||
| #30 | CheckView – Form & Checkout Testing | 26 | 69 | 334 | 1k+ | Direct Query | ||
| #31 | Bus Ticket Booking with Seat Reservation | 27 | 212 | 383 | 800 | Non-prefixed global variable | ||
| #32 | PublishPress Permissions: Control User Access for Posts, Pages, Categories, Tags | 27 | 424 | 323 | 10k+ | Missing Translators Comment | ||
| #33 | WP Hide & Security Enhancer | 27 | 124 | 375 | 50k+ | Input is not sanitized | ||
| #34 | Eway Payment Gateway | 30 | 509 | 92 | 800 | Missing Translators Comment | ||
| #35 | Lana Sitemap | 33 | 241 | 217 | 400 | Non-prefixed global variable | ||
| #36 | Save as PDF Plugin by PDFCrowd | 33 | 301 | 257 | 1k+ | Non-prefixed global variable | ||
| #37 | PW WooCommerce Gift Cards | 34 | 238 | 185 | 20k+ | Output is not escaped | ||
| #38 | Authors Widget | 35 | 170 | 19 | 1k+ | Output is not escaped | ||
| #39 | HivePress – Business Directory, Listings & Classified Ads Plugin | 35 | 38 | 183 | 10k+ | Direct Query | ||
| #40 | The Events Calendar Shortcode & Block | 36 | 70 | 127 | 10k+ | Non-prefixed hook name | ||
| #41 | Product Badge, Label, Countdown Timer for WooCommerce – Sale Booster | 38 | 37 | 102 | 5k+ | Interpolated SQL is not prepared | ||
| #42 | Sentry for WordPress | 40 | 80 | 40 | 10k+ | Text Domain Mismatch | ||
| #43 | Log Emails | 47 | 19 | 29 | 6k+ | Non-prefixed global variable | ||
| #44 | Product Categories/Tags Bottom Description for WooCommerce | 47 | 60 | 23 | 3k+ | Text Domain Mismatch | ||
| #45 | XML Sitemap & Google News | 47 | 270 | 224 | 100k+ | Non-prefixed global variable | ||
| #46 | Firelight Lightbox | 52 | 78 | 97 | 200k+ | Non-prefixed global variable | ||
| #47 | Pantheon Migrations | 57 | 15 | 26 | 1k+ | Output is not escaped | ||
| #48 | DreamHost Automated Migration | 62 | 15 | 23 | 20k+ | Output is not escaped | ||
| #49 | Migrate To Liquid Web & Nexcess | 62 | 15 | 23 | 2k+ | Output is not escaped | ||
| #50 | Pressable Automated Migration | 62 | 15 | 23 | 3k+ | Output is not escaped |