WordPress.WP.I18n.NonSingularStringLiteralText
Non Singular String Literal 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 |
|---|---|---|---|---|---|---|---|---|
| #1951 | Photospace Responsive Gallery | 83 | 115 | 14 | 900 | Text Domain Mismatch | ||
| #1952 | ClickShip | 84 | 13 | 5 | 1k+ | Output is not escaped | ||
| #1953 | FEWC – Extra Checkout Fields For WooCommerce | 84 | 7 | 41 | 700 | Non-prefixed global variable | ||
| #1954 | Stape Conversion Tracking | 84 | 22 | 4 | 10k+ | Non Singular String Literal Domain | ||
| #1955 | WP PDF Generator | 84 | 21 | 22 | 1k+ | Request data is not unslashed | ||
| #1956 | MD5 Media Renamer | 85 | 8 | 19 | 400 | Non-prefixed global variable | ||
| #1957 | All Currencies for WooCommerce | 85 | 17 | 3 | 1k+ | Missing Translators Comment | ||
| #1958 | WP Upload Restriction | 86 | 59 | 16 | 2k+ | Text Domain Mismatch | ||
| #1959 | Farsi Font for Elementor | 87 | 11 | 2 | 1k+ | Missing Translators Comment | ||
| #1960 | Minimum Purchase Amount For Woo Cart – For WooCommerce | 87 | 72 | 8 | 5k+ | Text Domain Mismatch | ||
| #1961 | Security Header Generator | 87 | 10 | 20 | 500 | Non Singular String Literal Text | ||
| #1962 | Variations as Single Product – Display Single Variation for WooCommerce | 87 | 8 | 33 | 1k+ | Direct Query | ||
| #1963 | Text Unfold For Elementor | 88 | 122 | 0 | 3k+ | Text Domain Mismatch | ||
| #1964 | The Events Calendar: Category Colors | 88 | 18 | 42 | 5k+ | Non-prefixed global variable | ||
| #1965 | Divi Carousel Free (Divi5 Support) | 88 | 268 | 26 | 30k+ | Text Domain Mismatch | ||
| #1966 | Automatically Hierarchic Categories in Menu | 89 | 9 | 4 | 2k+ | Post Not In exclude | ||
| #1967 | RT Slider | 89 | 9 | 2 | 800 | Missing direct file access protection | ||
| #1968 | Shipping by City for Woocommerce | 89 | 13 | 2 | 400 | Text Domain Mismatch | ||
| #1969 | Wbcom Designs – Shortcodes & Elementor Widgets For BuddyPress | 89 | 26 | 184 | 600 | Non-prefixed hook name | ||
| #1970 | Széchenyi 2020 Logo | 89 | 140 | 9 | 900 | Text Domain Mismatch | ||
| #1971 | Password Strength Settings for WooCommerce | 89 | 17 | 6 | 10k+ | Missing Arg Domain | ||
| #1972 | Avantex Companion | 90 | 35 | 100 | 1k+ | Non-prefixed global variable | ||
| #1973 | Continue Shopping Anywhere for WooCommerce | 90 | 21 | 10 | 700 | Text Domain Mismatch | ||
| #1974 | Disable RSS | 90 | 8 | 0 | 500 | Missing Arg Domain | ||
| #1975 | Multiple Columns for Gravity Forms | 90 | 11 | 7 | 10k+ | Missing direct file access protection | ||
| #1976 | Loan Calculator WP | 90 | 16 | 5 | 2k+ | Non Singular String Literal Text | ||
| #1977 | Order Status Control for WooCommerce | 90 | 23 | 4 | 5k+ | Text Domain Mismatch | ||
| #1978 | PHP Native Password Hash | 90 | 7 | 6 | 2k+ | Non-prefixed global variable | ||
| #1979 | getLaw WP API Client | 91 | 11 | 4 | 600 | curl curl setopt | ||
| #1980 | WPSSO Tune WP Image Editors | 91 | 35 | 10 | 900 | Missing Translators Comment | ||
| #1981 | Remove RSS Feed | 92 | 5 | 0 | 1k+ | Missing Arg Domain | ||
| #1982 | Serious Slider | 93 | 6 | 2 | 20k+ | Missing Arg Domain | ||
| #1983 | Organic Widget Area Block | 94 | 5 | 4 | 800 | Text Domain Mismatch | ||
| #1984 | Visual Composer Templates Library | 94 | 25 | 11 | 600 | Missing direct file access protection | ||
| #1985 | WP Plugin Manager – Deactivate plugins per page | 94 | 18 | 11 | 3k+ | Missing direct file access protection | ||
| #1986 | WPGraphQL Yoast SEO Addon | 95 | 42 | 13 | 10k+ | Text Domain Mismatch | ||
| #1987 | leadlovers for Elementor | 95 | 34 | 5 | 2k+ | Text Domain Mismatch | ||
| #1988 | Supreme Maps | 95 | 38 | 15 | 2k+ | Text Domain Mismatch | ||
| #1989 | Fixed Bottom Menu | 96 | 15 | 45 | 5k+ | Non-prefixed hook name | ||
| #1990 | Require Post Category | 96 | 6 | 4 | 1k+ | Discouraged text-domain loading | ||
| #1991 | Before + After Images for Divi | 97 | 12 | 3 | 3k+ | Missing direct file access protection | ||
| #1992 | Default Image Settings | 97 | 25 | 3 | 500 | Missing Arg Domain | ||
| #1993 | Linked Variations for WooCommerce – Link Separate Products by Attribute with Swatches, Quick View & Shortcodes | 97 | 12 | 34 | 500 | Non-prefixed global variable | ||
| #1994 | Podlove Web Player | 97 | 8 | 4 | 4k+ | Missing direct file access protection | ||
| #1995 | Simple Blog Card | 97 | 6 | 18 | 3k+ | Non-prefixed global variable | ||
| #1996 | What Template | 97 | 6 | 0 | 1k+ | Missing Arg Domain | ||
| #1997 | Custom Fee Woocommerce | 97 | 24 | 3 | 400 | Text Domain Mismatch | ||
| #1998 | Advanced Posts Listing – Show Post List Easily | 98 | 31 | 5 | 3k+ | Missing Arg Domain | ||
| #1999 | ProvenExpert | 98 | 8 | 10 | 900 | wp function not compatible with requires wp | ||
| #2000 | Tablentor – Smart Table Builder for Elementor | 98 | 6 | 7 | 1k+ | Post Not In exclude |