wpLingua – Automatic translation – Translate and make website multilingual Security & Risk Analysis

wordpress.org/plugins/wplingua

Make your websites multilingual and translate them automatically: no word limits, editable translations, SEO-friendly, no coding knowledge needed

2K active installs v2.11.3 PHP 7.4+ WP 6.0+ Updated Mar 13, 2026
languagelocalizationmultilingualtranslatetranslation
100
A · Safe
CVEs total0
Unpatched0
Last CVENever
Safety Verdict

Is wpLingua – Automatic translation – Translate and make website multilingual Safe to Use in 2026?

Generally Safe

Score 100/100

wpLingua – Automatic translation – Translate and make website multilingual has no known CVEs and is actively maintained. It's a solid choice for most WordPress installations.

No known CVEs Updated 21d ago
Risk Assessment

The plugin "wplingua" v2.11.3 demonstrates a generally good security posture with several positive indicators. Notably, all identified SQL queries are properly prepared, and a high percentage of output is correctly escaped, mitigating common injection and Cross-Site Scripting (XSS) risks. The absence of known vulnerabilities in its history and no recorded critical or high-severity taint flows are also strong positive signs, suggesting a mature and well-maintained codebase.

However, a significant concern arises from the static analysis, which reveals a substantial attack surface composed of 7 AJAX handlers, all of which lack authentication checks. This presents a considerable risk, as any unauthenticated user could potentially trigger these handlers, leading to unintended actions or information disclosure depending on their functionality. While the plugin has a decent number of capability checks, these are not applied to these exposed AJAX endpoints, creating a clear vulnerability. The lack of taint analysis findings is reassuring but should not overshadow the identified unprotected entry points.

In conclusion, while "wplingua" v2.11.3 excels in data handling and output sanitization, the presence of numerous unauthenticated AJAX handlers is a critical weakness that requires immediate attention. Addressing these unprotected entry points should be the priority to significantly improve the plugin's overall security.

Key Concerns

  • 7 AJAX handlers without auth checks
Vulnerabilities
None known

wpLingua – Automatic translation – Translate and make website multilingual Security Vulnerabilities

No known vulnerabilities — this is a good sign.
Code Analysis
Analyzed Mar 16, 2026

wpLingua – Automatic translation – Translate and make website multilingual Code Analysis

Dangerous Functions
0
Raw SQL Queries
0
9 prepared
Unescaped Output
31
371 escaped
Nonce Checks
3
Capability Checks
20
File Operations
12
External Requests
4
Bundled Libraries
0

SQL Query Safety

100% prepared9 total queries

Output Escaping

92% escaped402 total outputs
Attack Surface
7 unprotected

wpLingua – Automatic translation – Translate and make website multilingual Attack Surface

Entry Points10
Unprotected7

AJAX Handlers 7

authwp_ajax_wplng_ajax_translationwplingua.php:226
authwp_ajax_wplng_ajax_edit_modalwplingua.php:229
authwp_ajax_wplng_ajax_save_modalwplingua.php:232
authwp_ajax_wplng_ajax_heartbeatwplingua.php:235
noprivwp_ajax_wplng_ajax_heartbeatwplingua.php:236
authwp_ajax_wplng_ajax_slugwplingua.php:282
authwp_ajax_wplng_load_in_progresswplingua.php:324

Shortcodes 3

[wplng_switcher] wplingua.php:398
[wplng_notranslate] wplingua.php:399
[wplng_only] wplingua.php:400
WordPress Hooks 92
actionwp_rocket_loadedinc\cache.php:120
actioninitwplingua.php:111
actioninitwplingua.php:114
actionadmin_noticeswplingua.php:117
actionadmin_noticeswplingua.php:118
actionadmin_noticeswplingua.php:119
actionadmin_noticeswplingua.php:120
actionadmin_noticeswplingua.php:121
actionadmin_initwplingua.php:134
actionactivated_pluginwplingua.php:140
filteradmin_footer_textwplingua.php:143
filterupdate_footerwplingua.php:144
actiontoplevel_page_wplingua-settingswplingua.php:147
actionadmin_menuwplingua.php:152
actionadmin_enqueue_scriptswplingua.php:155
actionadmin_noticeswplingua.php:158
actionadmin_menuwplingua.php:167
actionadmin_bar_menuwplingua.php:170
actionadmin_bar_menuwplingua.php:171
actionadmin_enqueue_scriptswplingua.php:174
actionadmin_head-nav-menus.phpwplingua.php:175
actionwp_nav_menu_item_custom_fieldswplingua.php:176
actionadmin_enqueue_scriptswplingua.php:179
actionadmin_enqueue_scriptswplingua.php:180
actionadmin_enqueue_scriptswplingua.php:181
actionadmin_enqueue_scriptswplingua.php:182
actionadmin_enqueue_scriptswplingua.php:183
actionupdate_option_wplng_flags_stylewplingua.php:186
actionupdate_option_wplng_api_keywplingua.php:189
filterpage_row_actionswplingua.php:192
filterpost_row_actionswplingua.php:193
actioninitwplingua.php:200
actionadd_meta_boxes_wplng_translationwplingua.php:203
actionsave_post_wplng_translationwplingua.php:206
actiontrashed_postwplingua.php:209
actionuntrash_postwplingua.php:210
actiondelete_postwplingua.php:211
actionadmin_print_scripts-post.phpwplingua.php:214
actionadmin_print_scripts-edit.phpwplingua.php:217
actionpre_get_postswplingua.php:220
filterpost_row_actionswplingua.php:223
filterget_user_option_edit_wplng_translation_per_pagewplingua.php:239
actionrestrict_manage_postswplingua.php:242
filterparse_querywplingua.php:243
filterpost_classwplingua.php:246
filterpost_row_actionswplingua.php:247
filtermanage_wplng_translation_posts_columnswplingua.php:248
actionmanage_wplng_translation_posts_custom_columnwplingua.php:249
actioninitwplingua.php:256
actionadd_meta_boxes_wplng_slugwplingua.php:259
actionsave_post_wplng_slugwplingua.php:262
actiontrashed_postwplingua.php:265
actionuntrash_postwplingua.php:266
actiondelete_postwplingua.php:267
actionadmin_print_scripts-post.phpwplingua.php:270
actionadmin_print_scripts-edit.phpwplingua.php:273
actionpre_get_postswplingua.php:276
filterpost_row_actionswplingua.php:279
filterget_user_option_edit_wplng_slug_per_pagewplingua.php:285
actionrestrict_manage_postswplingua.php:288
filterparse_querywplingua.php:289
filterpost_classwplingua.php:292
filterpost_row_actionswplingua.php:293
filtermanage_wplng_slug_posts_columnswplingua.php:294
actionmanage_wplng_slug_posts_custom_columnwplingua.php:295
actionwp_enqueue_scriptswplingua.php:302
actionwp_headwplingua.php:305
actionwp_footerwplingua.php:308
actionwp_footerwplingua.php:311
filterwp_nav_menu_objectswplingua.php:314
filternav_menu_link_attributeswplingua.php:315
actionwp_headwplingua.php:318
actionlanguage_attributeswplingua.php:321
actioninitwplingua.php:331
actiontemplate_redirectwplingua.php:334
filterload_script_translation_filewplingua.php:341
actionupgrader_process_completewplingua.php:348
actionactivated_pluginwplingua.php:351
actiondeactivated_pluginwplingua.php:352
actionswitch_themewplingua.php:355
actionupdate_option_WPLANGwplingua.php:358
actionupdate_option_wplng_website_languagewplingua.php:361
actionupdate_option_wplng_target_languageswplingua.php:362
filteraioseo_sitemap_postwplingua.php:373
filteraioseo_sitemap_termwplingua.php:374
actionparse_querywplingua.php:381
filterwplng_url_is_translatablewplingua.php:383
actionwp_headwplingua.php:389
actiontemplate_redirectwplingua.php:391
filterblock_categories_allwplingua.php:406
actioninitwplingua.php:407
actionenqueue_block_editor_assetswplingua.php:408
Maintenance & Trust

wpLingua – Automatic translation – Translate and make website multilingual Maintenance & Trust

Maintenance Signals

WordPress version tested6.9.4
Last updatedMar 13, 2026
PHP min version7.4
Downloads44K

Community Trust

Rating98/100
Number of ratings29
Active installs2K
Developer Profile

wpLingua – Automatic translation – Translate and make website multilingual Developer Profile

wpLingua Translation Service

1 plugin · 2K total installs

94
trust score
Avg Security Score
100/100
Avg Patch Time
30 days
View full developer profile
Detection Fingerprints

How We Detect wpLingua – Automatic translation – Translate and make website multilingual

Patterns used to identify this plugin on WordPress sites during automated security audits and web crawling.

Asset Fingerprints

Asset Paths
/wp-content/plugins/wplingua/assets/css/frontend/switcher.css/wp-content/plugins/wplingua/assets/css/frontend/flags.css/wp-content/plugins/wplingua/assets/css/frontend/wplingua.css/wp-content/plugins/wplingua/assets/js/frontend/wplingua.js/wp-content/plugins/wplingua/assets/js/frontend/ switcher.js/wp-content/plugins/wplingua/assets/js/frontend/flags.js/wp-content/plugins/wplingua/assets/js/frontend/localization.js/wp-content/plugins/wplingua/assets/js/frontend/frontend.js+19 more
Script Paths
/wp-content/plugins/wplingua/assets/js/frontend/wplingua.js/wp-content/plugins/wplingua/assets/js/frontend/ switcher.js/wp-content/plugins/wplingua/assets/js/frontend/flags.js/wp-content/plugins/wplingua/assets/js/frontend/localization.js/wp-content/plugins/wplingua/assets/js/frontend/frontend.js/wp-content/plugins/wplingua/assets/js/frontend/editor.js+10 more
Version Parameters
wplingua/assets/css/frontend/switcher.css?ver=wplingua/assets/css/frontend/flags.css?ver=wplingua/assets/css/frontend/wplingua.css?ver=wplingua/assets/js/frontend/wplingua.js?ver=wplingua/assets/js/frontend/ switcher.js?ver=wplingua/assets/js/frontend/flags.js?ver=wplingua/assets/js/frontend/localization.js?ver=wplingua/assets/js/frontend/frontend.js?ver=wplingua/assets/js/frontend/editor.js?ver=wplingua/assets/js/admin/settings.js?ver=wplingua/assets/js/admin/switcher.js?ver=wplingua/assets/js/admin/exclusions.js?ver=wplingua/assets/js/admin/dictionary.js?ver=wplingua/assets/js/admin/link_media.js?ver=wplingua/assets/js/admin/register.js?ver=wplingua/assets/js/admin/translation_edit.js?ver=wplingua/assets/js/admin/translation_list.js?ver=wplingua/assets/js/admin/api.js?ver=wplingua/assets/js/admin/api_key.js?ver=wplingua/assets/css/admin/settings.css?ver=wplingua/assets/css/admin/switcher.css?ver=wplingua/assets/css/admin/exclusions.css?ver=wplingua/assets/css/admin/dictionary.css?ver=wplingua/assets/css/admin/link_media.css?ver=wplingua/assets/css/admin/register.css?ver=wplingua/assets/css/admin/translation_edit.css?ver=wplingua/assets/css/admin/translation_list.css?ver=

HTML / DOM Fingerprints

CSS Classes
wplingua-switcher-flagswplingua-language-switcherwplng-btnwplng-titlewplng-closewplng-input-wrapperwplng-inputwplng-label+125 more
HTML Comments
<!-- wpLingua: The Best WordPress Translation Plugin --><!-- wpLingua: Global Translation --><!-- wpLingua: Translation Settings --><!-- wpLingua: Language Switcher Settings -->+14 more
Data Attributes
data-wplng-iddata-wplng-textdata-wplng-original-textdata-wplng-source-languagedata-wplng-target-languagedata-wplng-is-translated+25 more
JS Globals
wplng_settingswplng_translationswplng_languageswplng_ switcher_optionswplng_localizewplng_admin_params+13 more
REST Endpoints
/wp-json/wplingua/v1/languages/wp-json/wplingua/v1/translations/wp-json/wplingua/v1/translate/wp-json/wplingua/v1/save-translation/wp-json/wplingua/v1/delete-translation/wp-json/wplingua/v1/sync-translations/wp-json/wplingua/v1/settings/wp-json/wplingua/v1/api-key/wp-json/wplingua/v1/flags/wp-json/wplingua/v1/get-translation/wp-json/wplingua/v1/save-options/wp-json/wplingua/v1/register-site
FAQ

Frequently Asked Questions about wpLingua – Automatic translation – Translate and make website multilingual