[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fnG56gXi1EL0FGWAZaWIbmNlnC3zp2TqNsc9SzS5snoU":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":39,"analysis":133,"fingerprints":279},"translation-stats","Translation Stats","1.3.2","Pedro Mendonça","https:\u002F\u002Fprofiles.wordpress.org\u002Fpedromendonca\u002F","\u003Cp>The plugin adds a “Translation Stats” column to the plugin list screen in WordPress admin.\u003C\u002Fp>\n\u003Cp>The translation stats are shown only for plugins that exist in \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002F\" rel=\"nofollow ugc\">translate.wordpress.org\u003C\u002Fa> and are \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fplugins\u002Finternationalization\u002Fhow-to-internationalize-your-plugin\u002F\" rel=\"nofollow ugc\">prepared for localization\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>If a plugin doesn’t have complete translation stats, you’ll see a notice with one of the reasons below:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Plugin not found on WordPress.org\u003C\u002Fli>\n\u003Cli>Translation project not found on WordPress.org\u003C\u002Fli>\n\u003Cli>The plugin is not properly prepared for localization\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The color scheme of the translation stats bars is exactly same used in \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fglotpress\u002F\" rel=\"ugc\">GlotPress\u003C\u002Fa> for consistency with the translation experience in \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002F\" rel=\"nofollow ugc\">translate.wp.org\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This plugin is properly prepared for localization.\u003C\u002Fp>\n","Show plugins translation stats on your WordPress install.",20,8734,100,6,"2025-10-04T15:19:00.000Z","6.9.4","4.9","7.4",[20,21,22,23,24],"i18n","internationalization","l10n","localization","translation","https:\u002F\u002Ftranslationstats.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftranslation-stats.1.3.2.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":35,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"pedromendonca",7,120,98,30,93,"2026-04-04T02:42:36.164Z",[40,58,77,96,115],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":35,"num_ratings":50,"last_updated":51,"tested_up_to":16,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":56,"download_link":57,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"performant-translations","Performant Translations","1.2.0","Pascal Birchler","https:\u002F\u002Fprofiles.wordpress.org\u002Fswissspidy\u002F","\u003Cp>Making internationalization\u002Flocalization in WordPress faster than ever before.\u003C\u002Fp>\n\u003Ch3>Disclaimer about WordPress 6.5\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Attention:\u003C\u002Fstrong> most functionality of this plugin has been merged into WordPress 6.5! You might not need it anymore.\u003C\u002Fp>\n\u003Cp>\u003Cem>However\u003C\u002Fem>, this plugin is still relevant for cases where language packs are not downloaded from WordPress.org but somewhere else, for example if you are developing your own plugins or using commercial plugins.\u003C\u002Fp>\n\u003Cp>The Performant Translations plugin converts the translation files of those plugins to the new file format introduced in WordPress 6.5, to really optimize them for speed.\u003C\u002Fp>\n\u003Ch3>What this plugin does\u003C\u002Fh3>\n\u003Cp>This project uses a new approach to handle translation files in WordPress, making localization blazing fast.\u003C\u002Fp>\n\u003Cp>An \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002F2023\u002F07\u002F24\u002Fi18n-performance-analysis\u002F\" rel=\"nofollow ugc\">in-depth i18n performance analysis\u003C\u002Fa> showed that localized WordPress sites load significantly slower than a site without translations.\u003C\u002Fp>\n\u003Cp>With this plugin’s new approach to localization, this overhead is massively reduced, making your site fast again. It does so by converting \u003Ccode>.mo\u003C\u002Fcode> translation files to \u003Ccode>.php\u003C\u002Fcode> files.\u003C\u002Fp>\n\u003Cp>If your site is using a language other than English (US), you should see immediate speed improvements simply by activating this plugin.\u003C\u002Fp>\n","Making internationalization\u002Flocalization in WordPress faster than ever before.",40000,192704,16,"2025-12-05T10:38:00.000Z","6.5","7.0",[20,21,23,55,24],"performance","https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fperformant-translations","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fperformant-translations.1.2.0.zip",{"slug":59,"name":60,"version":61,"author":44,"author_profile":45,"description":62,"short_description":63,"active_installs":64,"downloaded":65,"rating":13,"num_ratings":66,"last_updated":67,"tested_up_to":16,"requires_at_least":68,"requires_php":69,"tags":70,"homepage":72,"download_link":73,"security_score":74,"vuln_count":75,"unpatched_count":27,"last_vuln_date":76,"fetched_at":29},"preferred-languages","Preferred Languages","2.4.1","\u003Cp>Thanks to language packs it’s easier than ever before to change the main language of your site.\u003Cbr \u002F>\nHowever, in some cases a single locale is not enough. When WordPress can’t find a translation for the active locale, it falls back to the original English strings.\u003Cbr \u002F>\nThat’s a poor user experience for many non-English speakers.\u003C\u002Fp>\n\u003Cp>This feature project aims to change that by letting users choose multiple languages for displaying WordPress in.\u003Cbr \u002F>\nThat way you can set some sort of “fallback chain” where WordPress tries to load translations in your preferred order.\u003C\u002Fp>\n\u003Cp>Please help us test this plugin and let us know if something is not working as you think it should.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Keyboard Shortcuts\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>Arrow Up\u003C\u002Fcode>: Move selected locale one position up.\u003C\u002Fli>\n\u003Cli>\u003Ccode>Arrow Down\u003C\u002Fcode>: Move selected locale one position down.\u003C\u002Fli>\n\u003Cli>\u003Ccode>Home\u003C\u002Fcode>: Select first locale in the list.\u003C\u002Fli>\n\u003Cli>\u003Ccode>End\u003C\u002Fcode>: Select last locale in the list.\u003C\u002Fli>\n\u003Cli>\u003Ccode>Backspace\u003C\u002Fcode>\u002F\u003Ccode>Delete\u003C\u002Fcode>: remove the selected locale from the list.\u003C\u002Fli>\n\u003Cli>\u003Ccode>Alt+A\u003C\u002Fcode>: Add the current locale from the dropdown to the list.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: the Preferred Languages UI needs to be focused in order for the keyboard shortcuts to work.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Merging Translations\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Previously, only the first available translation for a given locale and domain will be loaded.\u003Cbr \u002F>\nHowever, when translations are incomplete, some strings might still be displayed in English.\u003Cbr \u002F>\nThat’s a poor user experience as well.\u003C\u002Fp>\n\u003Cp>To prevent this, Preferred Languages now automatically merges all incomplete translations in the list.\u003C\u002Fp>\n\u003Cp>the \u003Ccode>preferred_languages_merge_translations\u003C\u002Fcode> filter can be used to opt out of this behavior.\u003Cbr \u002F>\nIt provides three parameters:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Ccode>$merge\u003C\u002Fcode> – Whether translations should be merged. Defaults to \u003Ccode>true\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Ccode>$domain\u003C\u002Fcode> – The text domain\u003C\u002Fli>\n\u003Cli>\u003Ccode>$current_locale\u003C\u002Fcode> – The current locale.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Get Involved\u003C\u002Fh4>\n\u003Cp>Active development is taking place on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fpreferred-languages\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>If you want to get involved, check out \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fpreferred-languages\u002Fissues\" rel=\"nofollow ugc\">open issues\u003C\u002Fa> and join the \u003Ca href=\"https:\u002F\u002Fwordpress.slack.com\u002Fmessages\u002Fcore-i18n\" rel=\"nofollow ugc\">#core-i18n\u003C\u002Fa> channel on \u003Ca href=\"https:\u002F\u002Fwordpress.slack.com\u002F\" rel=\"nofollow ugc\">Slack\u003C\u002Fa>. If you don’t have a Slack account yet, you can sign up at \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fchat\u002F\" rel=\"nofollow ugc\">make.wordpress.org\u002Fchat\u002F\u003C\u002Fa>.\u003C\u002Fp>\n","Choose languages for displaying WordPress in, in order of preference.",2000,108228,17,"2025-11-28T15:06:00.000Z","6.6","7.2.24",[20,21,71,23,24],"language","https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fpreferred-languages\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpreferred-languages.2.4.1.zip",99,1,"2024-05-30 00:00:00",{"slug":78,"name":79,"version":80,"author":81,"author_profile":82,"description":83,"short_description":84,"active_installs":85,"downloaded":86,"rating":27,"num_ratings":27,"last_updated":87,"tested_up_to":88,"requires_at_least":89,"requires_php":90,"tags":91,"homepage":93,"download_link":94,"security_score":95,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"translator-with-baidu-service","Translator with Baidu Service","1.10","gongwan33","https:\u002F\u002Fprofiles.wordpress.org\u002Fgongwan33\u002F","\u003Cp>Translate your site in many languages with this plugin from JoyBin, Inc. (The service provider is Baidu.) Currently we support 25 languages: Chinese, English, Japanese, Korean, French, Spanish, Thai, Arabic, Russian, Portuguese, German, Italian, Greek, Dutch, Polish, Bulgarian, Estonia, Danish, Finnish, Czech, Romanian, Slovenia, Swedish, Hungarian, Vietnamese. And we support 4 kinds of Chinese: Simplified Chinese, Cantonese, Classical Chinese and Traditional Chinese.\u003C\u002Fp>\n","Translate your site in many languages with this plugin from JoyBin, Inc. The translating service provider is Baidu.",10,2837,"2017-02-23T04:34:00.000Z","4.7.32","3.8","",[20,21,23,24,92],"translator","http:\u002F\u002Fwww.joybin.cn\u002Fwordpress-plugins\u002Ftranslator-with-baidu-service.html","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftranslator-with-baidu-service.zip",85,{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":106,"num_ratings":107,"last_updated":108,"tested_up_to":16,"requires_at_least":68,"requires_php":18,"tags":109,"homepage":111,"download_link":112,"security_score":35,"vuln_count":113,"unpatched_count":27,"last_vuln_date":114,"fetched_at":29},"loco-translate","Loco Translate","2.8.3","Tim W","https:\u002F\u002Fprofiles.wordpress.org\u002Ftimwhitlock\u002F","\u003Cp>Loco Translate provides in-browser editing of WordPress translation files and integration with automatic translation services.\u003C\u002Fp>\n\u003Cp>It also provides Gettext\u002Flocalization tools for developers, such as extracting strings and generating templates.\u003C\u002Fp>\n\u003Cp>Features include:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Built-in translation editor within WordPress admin\u003C\u002Fli>\n\u003Cli>Integration with translation APIs including DeepL, Google, Lecto, Microsoft and OpenAI.\u003C\u002Fli>\n\u003Cli>Create and update language files directly in your theme or plugin\u003C\u002Fli>\n\u003Cli>Extraction of translatable strings from your source code\u003C\u002Fli>\n\u003Cli>Native MO file compilation without the need for Gettext on your system\u003C\u002Fli>\n\u003Cli>JSON (Jed) file compilation compatible with WordPress script localization\u003C\u002Fli>\n\u003Cli>Support for standard PO features including comments, references and plural forms\u003C\u002Fli>\n\u003Cli>PO source view with clickable source code references\u003C\u002Fli>\n\u003Cli>Protected language directory for saving custom translations\u003C\u002Fli>\n\u003Cli>Configurable PO file backups with diff and restore capability\u003C\u002Fli>\n\u003Cli>Built-in WordPress locale codes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Official \u003Ca href=\"https:\u002F\u002Flocalise.biz\u002F\" rel=\"nofollow ugc\">Loco\u003C\u002Fa> WordPress plugin by Tim Whitlock.\u003Cbr \u002F>\nFor more information please visit our \u003Ca href=\"https:\u002F\u002Flocalise.biz\u002Fwordpress\u002Fplugin\" rel=\"nofollow ugc\">plugin page\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Keyboard shortcuts\u003C\u002Fh3>\n\u003Cp>The PO file editor supports the following keyboard shortcuts for faster translating:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Done and Next: \u003Ccode>Ctrl ↵\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Next string: \u003Ccode>Ctrl \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">↓\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Previous string: \u003Ccode>Ctrl \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">↑\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Next untranslated: \u003Ccode>Shift Ctrl \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">↓\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Previous untranslated: \u003Ccode>Shift Ctrl \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">↑\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Copy from source text: \u003Ccode>Ctrl B\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Clear translation: \u003Ccode>Ctrl K\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Toggle Fuzzy: \u003Ccode>Ctrl U\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Save PO \u002F compile MO: \u003Ccode>Ctrl S\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Toggle invisibles: \u003Ccode>Shift Ctrl I\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Suggest translation: \u003Ccode>Ctrl J\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Mac users can use ⌘ Cmd instead of Ctrl.\u003C\u002Fp>\n","Translate WordPress plugins and themes directly in your browser. Versatile PO file editor with integrated AI translation providers.",1000000,34331592,96,447,"2026-03-14T11:53:00.000Z",[20,22,71,110,24],"multilingual","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Floco-translate\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Floco-translate.2.8.3.zip",3,"2024-06-21 00:00:00",{"slug":116,"name":117,"version":118,"author":119,"author_profile":120,"description":121,"short_description":122,"active_installs":123,"downloaded":124,"rating":106,"num_ratings":36,"last_updated":125,"tested_up_to":126,"requires_at_least":127,"requires_php":90,"tags":128,"homepage":131,"download_link":132,"security_score":95,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29},"admin-in-english","Admin in English","1.2.1","Nikolay Bachiyski","https:\u002F\u002Fprofiles.wordpress.org\u002Fnbachiyski\u002F","\u003Cp>Sometimes we want the front end of our blog to be translated for the users, but keep the backend admin panel in English. Admin in English does just that.\u003C\u002Fp>\n","Admin in English lets you have your administration panel in English, even if the rest of your blog is translated into another language.",1000,41439,"2017-11-28T20:39:00.000Z","3.6.1","3.2",[129,20,23,24,130],"admin","translations","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fadmin-in-english\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fadmin-in-english.1.2.1.zip",{"attackSurface":134,"codeSignals":221,"taintFlows":240,"riskAssessment":271,"analyzedAt":278},{"hooks":135,"ajaxHandlers":212,"restRoutes":218,"shortcodes":219,"cronEvents":220,"entryPointCount":75,"unprotectedCount":75},[136,142,147,152,156,160,164,167,170,174,178,182,185,189,193,196,200,204,206,210],{"type":137,"name":138,"callback":139,"file":140,"line":141},"action","admin_notices","activate_notice","includes\\class-activation.php",42,{"type":137,"name":143,"callback":144,"file":145,"line":146},"plugins_loaded","settings_db_check","includes\\class-db-update.php",31,{"type":148,"name":149,"callback":150,"file":151,"line":146},"filter","translation_stats_settings_pages","add_settings_debug_page","includes\\class-debug.php",{"type":137,"name":153,"callback":154,"priority":85,"file":151,"line":155},"translation_stats_setting_field__after","setting_field__debug",34,{"type":137,"name":157,"callback":158,"priority":85,"file":151,"line":159},"translation_stats_plugins_stats_widget__after","plugin_stats_widget__debug",37,{"type":148,"name":161,"callback":162,"file":163,"line":146},"manage_plugins_columns","add_translation_stats_column","includes\\class-plugins.php",{"type":137,"name":165,"callback":166,"priority":85,"file":163,"line":155},"manage_plugins_custom_column","render_plugin_stats_column",{"type":137,"name":168,"callback":169,"priority":85,"file":163,"line":159},"translation_stats_plugin_widget_title","plugin_widget_title",{"type":137,"name":171,"callback":172,"file":163,"line":173},"translation_stats_plugin_widget_title__actions","plugin_update_button",40,{"type":137,"name":175,"callback":176,"file":163,"line":177},"translation_stats_plugin_widget_content","plugin_widget_content",43,{"type":137,"name":179,"callback":180,"file":163,"line":181},"pre_current_active_plugins","plugins_filter_by_translation_stats",49,{"type":148,"name":183,"callback":183,"priority":75,"file":184,"line":146},"admin_footer_text","includes\\class-settings-footer.php",{"type":137,"name":186,"callback":187,"file":188,"line":146},"translation_stats_settings__before","settings__sidebar","includes\\class-settings-sidebar.php",{"type":137,"name":190,"callback":191,"file":192,"line":146},"translation_stats_settings_sidebar__content","settings_widget__about","includes\\class-settings-widgets.php",{"type":137,"name":194,"callback":194,"file":195,"line":141},"admin_menu","includes\\class-settings.php",{"type":137,"name":197,"callback":198,"file":195,"line":199},"admin_init","settings_sections",45,{"type":137,"name":201,"callback":202,"file":203,"line":146},"admin_enqueue_scripts","register_plugin_styles","includes\\class-translation-stats.php",{"type":137,"name":201,"callback":205,"file":203,"line":155},"register_plugin_scripts",{"type":137,"name":197,"callback":207,"file":208,"line":209},"anonymous","translation-stats.php",95,{"type":137,"name":138,"callback":207,"file":208,"line":211},125,[213],{"action":214,"nopriv":215,"callback":216,"hasNonce":215,"hasCapCheck":215,"file":163,"line":217},"translation_stats_plugin_widget_content_load",false,"plugin_widget_content_load",46,[],[],[],{"dangerousFunctions":222,"sqlUsage":223,"outputEscaping":230,"fileOperations":27,"externalRequests":75,"nonceChecks":232,"capabilityChecks":113,"bundledLibraries":239},[],{"prepared":224,"raw":75,"locations":225},4,[226],{"file":227,"line":228,"context":229},"uninstall.php",19,"$wpdb->get_col() with variable interpolation",{"escaped":231,"rawEcho":232,"locations":233},188,2,[234,237],{"file":195,"line":235,"context":236},297,"raw output",{"file":208,"line":238,"context":236},175,[],[241],{"entryPoint":242,"graph":243,"unsanitizedCount":75,"severity":270},"\u003Cclass-plugins> (includes\\class-plugins.php:0)",{"nodes":244,"edges":265},[245,250,256,259,263],{"id":246,"type":247,"label":248,"file":163,"line":249},"n0","source","$_POST",305,{"id":251,"type":252,"label":253,"file":163,"line":254,"wp_function":255},"n1","sink","echo() [XSS]",424,"echo",{"id":257,"type":247,"label":248,"file":163,"line":258},"n2",352,{"id":260,"type":261,"label":262,"file":163,"line":258},"n3","transform","→ render_stats_bar()",{"id":264,"type":252,"label":253,"file":163,"line":254,"wp_function":255},"n4",[266,268,269],{"from":246,"to":251,"sanitized":267},true,{"from":257,"to":260,"sanitized":215},{"from":260,"to":264,"sanitized":215},"medium",{"summary":272,"deductions":273},"The \"translation-stats\" plugin v1.3.2 exhibits a generally good security posture with strong adherence to several best practices, including near-perfect output escaping and a low number of SQL queries that are predominantly prepared. The absence of known vulnerabilities and the limited number of file operations and external HTTP requests are also positive indicators. However, a significant concern is the presence of one AJAX handler that lacks authentication checks, creating a direct entry point for potential unauthorized access or manipulation. While taint analysis did not reveal critical or high severity issues, the single flow with unsanitized paths warrants attention, even if it did not escalate to a critical vulnerability in this scan.\n\nDespite the overall robust coding practices, the single unprotected AJAX endpoint represents a notable weakness. If this endpoint is exploitable, it could allow unauthenticated users to perform actions or retrieve sensitive data, depending on its functionality. The plugin's history of zero known vulnerabilities is a strong positive, suggesting a commitment to security or a lack of past exploitation. The conclusion is that the plugin is largely secure due to its excellent code hygiene, but the unauthenticated AJAX handler is a specific risk that should be addressed to achieve a truly secure state.",[274,276],{"reason":275,"points":33},"AJAX handler without authentication",{"reason":277,"points":113},"Flow with unsanitized paths","2026-03-16T22:48:09.493Z",{"wat":280,"direct":289},{"assetPaths":281,"generatorPatterns":284,"scriptPaths":285,"versionParams":286},[282,283],"\u002Fwp-content\u002Fplugins\u002Ftranslation-stats\u002Fassets\u002Fjs\u002Ftranslation-stats.js","\u002Fwp-content\u002Fplugins\u002Ftranslation-stats\u002Fassets\u002Fcss\u002Ftranslation-stats.css",[],[282],[287,288],"translation-stats\u002Fassets\u002Fjs\u002Ftranslation-stats.js?ver=","translation-stats\u002Fassets\u002Fcss\u002Ftranslation-stats.css?ver=",{"cssClasses":290,"htmlComments":291,"htmlAttributes":292,"restEndpoints":293,"jsGlobals":294,"shortcodeOutput":296},[],[],[],[],[295],"Translation_Stats",[]]