[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fS2Qdh48HTTzEuNolVWyE4M5tp2oyPhu1DJHCsEgU0As":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":23,"download_link":24,"security_score":25,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":34,"analysis":122,"fingerprints":353},"frenglish-translations","Frenglish Translations","1.1.75","vivcheung","https:\u002F\u002Fprofiles.wordpress.org\u002Fvivcheung\u002F","\u003Cp>Frenglish provides a seamless way to translate your WordPress content into multiple languages. It integrates with your existing WordPress setup and provides an intuitive interface for managing translations.\u003C\u002Fp>\n\u003Cp>Key Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic language detection\u003C\u002Fli>\n\u003Cli>URL-based language switching\u003C\u002Fli>\n\u003Cli>Support for multiple languages\u003C\u002Fli>\n\u003Cli>Easy-to-use admin interface\u003C\u002Fli>\n\u003Cli>SEO-friendly URLs\u003C\u002Fli>\n\u003Cli>Compatible with most WordPress themes\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Privacy Policy\u003C\u002Fh3>\n\u003Cp>Frenglish uses an external API service for translations. Visit frenglish.ai for additional information\u003C\u002Fp>\n","Frenglish is a translation plugin that enables multilingual content on your WordPress site with an easy-to-use interface.",0,1960,"","6.8.5","5.0","7.4",[18,19,20,21,22],"i18n","l10n","language","multilingual","translation","https:\u002F\u002Fwww.frenglish.ai","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffrenglish-translations.1.1.75.zip",100,null,"2026-03-15T14:44:11.924Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":11,"avg_security_score":25,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},1,30,94,"2026-04-04T12:27:18.146Z",[35,57,77,89,106],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":16,"tags":50,"homepage":51,"download_link":52,"security_score":53,"vuln_count":54,"unpatched_count":11,"last_vuln_date":55,"fetched_at":56},"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","6.9.4","6.6",[18,19,20,21,22],"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Floco-translate\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Floco-translate.2.8.3.zip",95,4,"2026-03-30 15:35:09","2026-03-15T15:16:48.613Z",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":67,"num_ratings":68,"last_updated":69,"tested_up_to":70,"requires_at_least":71,"requires_php":13,"tags":72,"homepage":74,"download_link":75,"security_score":76,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":56},"js-composer-qtranslate-x","WPBakery Visual Composer & qTranslate-X","1.0","John Clause","https:\u002F\u002Fprofiles.wordpress.org\u002Fjohnclause\u002F","\u003Cp>Enables \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fqtranslate-x\u002F\" rel=\"ugc\">qTranslate-X\u003C\u002Fa> multilingual framework for plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjs-composer-qtranslate-x\" rel=\"ugc\">WPBakery Visual Composer\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>At least version 3.3 of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fqtranslate-x\u002F\" rel=\"ugc\">qTranslate-X\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FqTranslate-Team\u002Fqtranslate-x\u002Farchive\u002F3.2.9.9.4.zip\" rel=\"nofollow ugc\">alpha pre-release\u003C\u002Fa> is required.\u003C\u002Fp>\n\u003Cp>This plugin is currently a work in progress, please review the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjs-composer-qtranslate-x\u002Fother_notes\u002F\" rel=\"ugc\">Known Issues\u003C\u002Fa> and report the features, which did not work for you.\u003C\u002Fp>\n\u003Ch3>Known Issues\u003C\u002Fh3>\n","Enables multilingual framework for plugin \"WPBakery Visual Composer\".",8000,149576,64,11,"2017-11-28T08:32:00.000Z","4.1.42","4.0",[73,18,19,20,21],"bilingual","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjs-composer-qtranslate-x","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-composer-qtranslate-x.1.0.zip",85,{"slug":78,"name":79,"version":80,"author":61,"author_profile":62,"description":81,"short_description":82,"active_installs":31,"downloaded":83,"rating":25,"num_ratings":30,"last_updated":84,"tested_up_to":85,"requires_at_least":71,"requires_php":13,"tags":86,"homepage":87,"download_link":88,"security_score":76,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":56},"events-made-easy-qtranslate-x","Events Made Easy & qTranslate-X","1.1","\u003Cp>Enables \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fqtranslate-x\u002F\" rel=\"ugc\">qTranslate-X\u003C\u002Fa> multilingual framework for plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fevents-made-easy\u002F\" rel=\"ugc\">Events Made Easy\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>At least version 3.2.2 of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fqtranslate-x\u002F\" rel=\"ugc\">qTranslate-X\u003C\u002Fa> is required.\u003C\u002Fp>\n","Enables multilingual framework for plugin \"Events Made Easy\".",3407,"2017-03-31T17:01:00.000Z","4.8.28",[73,18,19,20,21],"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fevents-made-easy-qtranslate-x","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fevents-made-easy-qtranslate-x.1.1.zip",{"slug":90,"name":91,"version":92,"author":93,"author_profile":94,"description":95,"short_description":96,"active_installs":97,"downloaded":98,"rating":11,"num_ratings":11,"last_updated":99,"tested_up_to":100,"requires_at_least":101,"requires_php":13,"tags":102,"homepage":104,"download_link":105,"security_score":76,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":56},"bunnys-language-linker","Bunny’s Language Linker","0.2","Steph","https:\u002F\u002Fprofiles.wordpress.org\u002Fsteph\u002F","\u003Cp>This plugin assumes you have a site in two or more languages, and that you are using a separate WordPress install for each language. It helps you create links between the same pages in different\u003Cbr \u002F>\nlanguage versions.\u003C\u002Fp>\n\u003Cp>You should have a pattern of parallel sites with urls like http:\u002F\u002Fstephanie-booth.com\u002Fen\u002F, http:\u002F\u002Fstephanie-booth.com\u002Fde\u002F, http:\u002F\u002Fstephanie-booth.com\u002Ffr\u002F. Maybe the page\u003Cbr \u002F>\nhttp:\u002F\u002Fstephanie-booth.com\u002Fen\u002Fabout is equivalent to the page http:\u002F\u002Fstephanie-booth.com\u002Ffr\u002Fa-propos. The plugin adds a DBX box in the edit\u002Fcreate page admin form, named “Other Language Slugs”. In\u003Cbr \u002F>\nthis case, you’d edit the “about” page, and paste the fr slug (“a-propos”) in the appropriate field.\u003C\u002Fp>\n\u003Cp>The plugin will then display a small link to the page in the other language at the bottom of your page, or in your menu bar if you’re using a Sandbox-based theme.\u003C\u002Fp>\n\u003Cp>Careful! This only works for Pages, not posts!\u003C\u002Fp>\n\u003Cp>For intelligent user redirection when they land on the home page, you might want to try using the technique described here: http:\u002F\u002Fclimbtothestars.org\u002Farchives\u002F2007\u002F12\u002F28\u002Fbrowser-language-detection-and-redirection\u002F\u003C\u002Fp>\n\u003Ch3>Future Development\u003C\u002Fh3>\n\u003Cp>Here’s what I’d like this plugin to do, someday:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>automatically capture URLs like http:\u002F\u002Fstephanie-booth.com\u002Fen\u002Fa-propos and redirect them to http:\u002F\u002Fstephanie-booth.com\u002Fen\u002Fabout (that’s what happens when people edit URLs directly, just replacing\u003Cbr \u002F>\nthe language code — I do it all the time)\u003C\u002Fli>\n\u003C\u002Ful>\n","Helps you create links between equivalent (but different language) pages between WordPress installations.",10,3168,"2008-01-04T13:09:00.000Z","2.3.1","2.0",[19,20,103,21,22],"links","http:\u002F\u002Fclimbtothestars.org\u002Farchives\u002F2007\u002F12\u002F28\u002Fbunnys-language-linker-new-wordpress-plugin\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbunnys-language-linker.zip",{"slug":107,"name":108,"version":109,"author":110,"author_profile":111,"description":112,"short_description":113,"active_installs":97,"downloaded":114,"rating":11,"num_ratings":11,"last_updated":115,"tested_up_to":116,"requires_at_least":117,"requires_php":13,"tags":118,"homepage":120,"download_link":121,"security_score":76,"vuln_count":11,"unpatched_count":11,"last_vuln_date":26,"fetched_at":56},"icanlocalize-translator","ICanLocalize Translator","1.3.1","Amir Helzer","https:\u002F\u002Fprofiles.wordpress.org\u002Famirhelzer\u002F","\u003Cp>“ICanLocalize Translator” allows running multi-lingual WordPress websites (See the \u003Ca href=\"http:\u002F\u002Fmedia.icanlocalize.com\u002Fwp_translation_demos\u002Ficanlocalize-translator.htm\" rel=\"nofollow ugc\">5 minute demo\u003C\u002Fa>).\u003Cbr \u002F>\nIt helps maintain contents in different languages and automatically links between them.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Blog in your native language. Translations will be created automatically.\u003C\u002Fli>\n\u003Cli>Use different domains, \u003Ccode>www.myblog.com\u003C\u002Fcode>, \u003Ccode>es.myblog.com\u003C\u002Fcode>, \u003Ccode>de.myblog.com\u003C\u002Fcode> or directories within the same domain.\u003C\u002Fli>\n\u003Cli>Updates are handled automatically. When the original contents update, translations follow.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>WordPress supports contents in a single language. To make multi-lingual WordPress sites insensitive to upgrades and to other plugins,\u003Cbr \u002F>\nICanLocalize Translator doesn’t change any table structure and doesn’t alter permlinks. Instead, each language will run in its own WordPress instance.\u003C\u002Fp>\n\u003Ch4>Is this machine translation?\u003C\u002Fh4>\n\u003Cp>Unlike free machine translators, this plugin will send posts and pages to be translated by real people.\u003Cbr \u002F>\nYou can select from our pool of professional translators or assign the work to your favorite translator.\u003C\u002Fp>\n\u003Cp>This plugin works together with \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Ficanlocalize-comment-translator\u002F\" rel=\"ugc\">ICanLocalize Comment Translator Plugin\u003C\u002Fa>.\u003Cbr \u002F>\nIt needs to be installed in the original-language blog. The Comment Translator plugin will be installed in the translated-language blog(s).\u003C\u002Fp>\n\u003Ch4>Running a multi-lingual site\u003C\u002Fh4>\n\u003Cp>Even though visitors read and comment in their languages, and You will do all your tasks (including comment moderation and replies) in your own language.\u003C\u002Fp>\n\u003Cp>Comment moderation in your language is handled by \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Ficanlocalize-comment-translator\u002F\" rel=\"ugc\">ICanLocalize Comment Translator Plugin\u003C\u002Fa> which needs to be install on each of the translated blogs.\u003C\u002Fp>\n\u003Cp>The plugin provides a function that you can include in your theme which automatically links between contents in different languages.\u003C\u002Fp>\n\u003Ch4>What gets translated\u003C\u002Fh4>\n\u003Cp>The plugin will automatically send all texts to be translated, including:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Posts\u003C\u002Fli>\n\u003Cli>Pages\u003C\u002Fli>\n\u003Cli>Tags\u003C\u002Fli>\n\u003Cli>Categories (names and descriptions)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Where can I see some examples?\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fblog-en.icanlocalize.com\" rel=\"nofollow ugc\">Our own blog\u003C\u002Fa> is being translated by our system from English to French.\u003Cbr \u002F>\nYou’re invited to \u003Ca href=\"http:\u002F\u002Fwww.icanlocalize.com\u002Fweb_dialogs\u002Fnew?language_id=1&store=4\" rel=\"nofollow ugc\">contact us\u003C\u002Fa> for other examples.\u003C\u002Fp>\n\u003Ch4>SitePress\u003C\u002Fh4>\n\u003Cp>This plugin is part of \u003Ca href=\"http:\u002F\u002Fsitepress.org\" rel=\"nofollow ugc\">SitePress\u003C\u002Fa> – a collection of plugins that turn WordPress into a fully featured multilingual content management system.\u003C\u002Fp>\n\u003Ch3>Version History\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Version 0.4\n\u003Cul>\n\u003Cli>First public release\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Version 0.5\n\u003Cul>\n\u003Cli>Improved support for page hierarchy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Version 0.6\n\u003Cul>\n\u003Cli>Works with WordPress MU\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Version 1.0\n\u003Cul>\n\u003Cli>Users can cancel translation jobs\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Version 1.3\n\u003Cul>\n\u003Cli>Includes drop down language switcher that can be added to header.php.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Version 1.3.1\n\u003Cul>\n\u003Cli>Dropdown language selector now support IE6\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Allows running multilingual WordPress sites with zero management. Automatically creates and updates translation when you edit.",6526,"2009-02-05T19:19:00.000Z","2.7","2.5.1",[18,20,119,21,22],"localization","http:\u002F\u002Fsitepress.org\u002Fwordpress-translation\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ficanlocalize-translator.1.3.1.zip",{"attackSurface":123,"codeSignals":283,"taintFlows":314,"riskAssessment":343,"analyzedAt":352},{"hooks":124,"ajaxHandlers":279,"restRoutes":280,"shortcodes":281,"cronEvents":282,"entryPointCount":11,"unprotectedCount":11},[125,131,134,137,140,145,148,151,154,157,161,164,167,170,173,176,179,182,185,188,191,194,197,200,203,207,210,214,218,221,224,228,232,236,240,245,248,251,254,257,260,263,266,269,272,276],{"type":126,"name":127,"callback":128,"priority":30,"file":129,"line":130},"action","plugins_loaded","closure","inc\\seo-compat.php",153,{"type":126,"name":132,"callback":128,"priority":11,"file":129,"line":133},"wp_head",445,{"type":126,"name":132,"callback":128,"priority":135,"file":129,"line":136},99999,452,{"type":126,"name":127,"callback":128,"priority":138,"file":129,"line":139},50,510,{"type":141,"name":142,"callback":128,"priority":143,"file":129,"line":144},"filter","wpseo_locale",999,513,{"type":141,"name":146,"callback":128,"priority":143,"file":129,"line":147},"wpseo_opengraph_locale",517,{"type":141,"name":149,"callback":128,"priority":143,"file":129,"line":150},"wpseo_canonical",521,{"type":141,"name":152,"callback":128,"priority":143,"file":129,"line":153},"wpseo_opengraph_url",527,{"type":141,"name":155,"callback":128,"priority":143,"file":129,"line":156},"wpseo_schema_graph",534,{"type":141,"name":158,"callback":128,"priority":159,"file":129,"line":160},"wpseo_frontend_presentation",9999,560,{"type":141,"name":162,"callback":128,"priority":159,"file":129,"line":163},"wpseo_opengraph_title",602,{"type":141,"name":165,"callback":128,"priority":159,"file":129,"line":166},"wpseo_twitter_title",607,{"type":141,"name":168,"callback":128,"priority":159,"file":129,"line":169},"wpseo_title",612,{"type":126,"name":132,"callback":128,"priority":171,"file":129,"line":172},99,626,{"type":141,"name":174,"callback":128,"priority":159,"file":129,"line":175},"pre_get_document_title",637,{"type":126,"name":177,"callback":128,"file":129,"line":178},"init",648,{"type":126,"name":177,"callback":128,"priority":11,"file":180,"line":181},"plugin-frenglish.php",145,{"type":126,"name":177,"callback":183,"priority":11,"file":180,"line":184},"frenglish_ensure_config_loaded",312,{"type":126,"name":177,"callback":186,"priority":11,"file":180,"line":187},"frenglish_ensure_config_cached",369,{"type":126,"name":189,"callback":128,"priority":97,"file":180,"line":190},"updated_option",372,{"type":126,"name":192,"callback":128,"priority":11,"file":180,"line":193},"send_headers",603,{"type":126,"name":177,"callback":195,"priority":30,"file":180,"line":196},"frenglish_detect_and_rewrite_request",610,{"type":141,"name":198,"callback":128,"file":180,"line":199},"query_vars",613,{"type":126,"name":127,"callback":128,"priority":201,"file":180,"line":202},5,618,{"type":141,"name":204,"callback":205,"priority":97,"file":180,"line":206},"redirect_canonical","frenglish_skip_canonical_for_lang",844,{"type":126,"name":132,"callback":208,"file":180,"line":209},"frenglish_add_hreflang_tags",873,{"type":126,"name":211,"callback":212,"file":180,"line":213},"admin_menu","frenglish_admin_menu",887,{"type":126,"name":215,"callback":216,"file":180,"line":217},"admin_init","frenglish_register_settings",898,{"type":141,"name":219,"callback":128,"file":180,"line":220},"frenglish_exclusions",1328,{"type":141,"name":219,"callback":128,"priority":222,"file":180,"line":223},15,1333,{"type":126,"name":177,"callback":225,"priority":226,"file":180,"line":227},"frenglish_buffer_start",2,1376,{"type":141,"name":229,"callback":230,"file":180,"line":231},"language_attributes","frenglish_modify_language_attributes",1526,{"type":126,"name":233,"callback":234,"priority":25,"file":180,"line":235},"wp_enqueue_scripts","frenglish_enqueue_scripts",1568,{"type":126,"name":237,"callback":238,"file":180,"line":239},"admin_post_frenglish_bust_cache","frenglish_admin_bust_cache_handler",1651,{"type":141,"name":241,"callback":242,"priority":243,"file":180,"line":244},"post_link","frenglish_prefix_permalink_filters",20,1742,{"type":141,"name":246,"callback":242,"priority":243,"file":180,"line":247},"page_link",1743,{"type":141,"name":249,"callback":242,"priority":243,"file":180,"line":250},"term_link",1744,{"type":141,"name":252,"callback":242,"priority":243,"file":180,"line":253},"post_type_archive_link",1745,{"type":141,"name":255,"callback":242,"priority":243,"file":180,"line":256},"author_link",1746,{"type":141,"name":258,"callback":242,"priority":243,"file":180,"line":259},"search_link",1747,{"type":141,"name":261,"callback":242,"priority":243,"file":180,"line":262},"day_link",1748,{"type":141,"name":264,"callback":242,"priority":243,"file":180,"line":265},"month_link",1749,{"type":141,"name":267,"callback":242,"priority":243,"file":180,"line":268},"year_link",1750,{"type":141,"name":270,"callback":128,"priority":243,"file":180,"line":271},"wp_nav_menu_objects",1753,{"type":126,"name":273,"callback":128,"priority":274,"file":180,"line":275},"wp_footer",1000,1762,{"type":141,"name":277,"callback":128,"priority":243,"file":180,"line":278},"paginate_links",1931,[],[],[],[],{"dangerousFunctions":284,"sqlUsage":285,"outputEscaping":290,"fileOperations":11,"externalRequests":311,"nonceChecks":226,"capabilityChecks":312,"bundledLibraries":313},[],{"prepared":97,"raw":30,"locations":286},[287],{"file":129,"line":288,"context":289},669,"$wpdb->query() with variable interpolation",{"escaped":291,"rawEcho":292,"locations":293},29,8,[294,297,299,301,303,305,307,309],{"file":129,"line":295,"context":296},457,"raw output",{"file":129,"line":298,"context":296},460,{"file":129,"line":300,"context":296},652,{"file":129,"line":302,"context":296},653,{"file":129,"line":304,"context":296},654,{"file":129,"line":306,"context":296},656,{"file":129,"line":308,"context":296},657,{"file":129,"line":310,"context":296},658,7,3,[],[315],{"entryPoint":316,"graph":317,"unsanitizedCount":11,"severity":342},"\u003Cplugin-frenglish> (plugin-frenglish.php:0)",{"nodes":318,"edges":338},[319,324,330,333],{"id":320,"type":321,"label":322,"file":180,"line":323},"n0","source","$_SERVER",106,{"id":325,"type":326,"label":327,"file":180,"line":328,"wp_function":329},"n1","sink","wp_redirect() [Open Redirect]",599,"wp_redirect",{"id":331,"type":321,"label":322,"file":180,"line":332},"n2",1532,{"id":334,"type":326,"label":335,"file":180,"line":336,"wp_function":337},"n3","query() [SQLi]",1605,"query",[339,341],{"from":320,"to":325,"sanitized":340},true,{"from":331,"to":334,"sanitized":340},"low",{"summary":344,"deductions":345},"The \"frenglish-translations\" plugin, version 1.1.75, exhibits a generally strong security posture based on the provided static analysis and vulnerability history. The plugin demonstrates good development practices by utilizing prepared statements for the vast majority of its SQL queries and properly escaping a significant portion of its output. Furthermore, the absence of known vulnerabilities (CVEs) and the lack of critical or high-severity taint flows are positive indicators. The plugin also avoids common attack vectors like exposed AJAX handlers, REST API routes, shortcodes, and cron events without proper authentication or permission checks.  The limited number of external HTTP requests and the presence of nonce and capability checks, although not exhaustive, suggest some awareness of security principles.\n\nHowever, there are areas for improvement that present minor concerns. The percentage of properly escaped output, while high, is not 100%, leaving a small window for potential cross-site scripting (XSS) vulnerabilities if the unescaped outputs are user-controlled. The limited number of nonce and capability checks, while present, might not cover all potential entry points if any were to be introduced in future versions or if the current limited attack surface were to expand. The presence of external HTTP requests, although not inherently a vulnerability, requires careful consideration as they can be a vector for various attacks if not handled securely. Overall, the plugin appears to be well-maintained and secure for its current version, but continued vigilance and adherence to best practices for the remaining unescaped outputs and potential future extensions are recommended.",[346,348,350],{"reason":347,"points":201},"Some output not properly escaped",{"reason":349,"points":226},"Limited nonce checks",{"reason":351,"points":226},"Limited capability checks","2026-03-17T06:07:25.900Z",{"wat":354,"direct":367},{"assetPaths":355,"generatorPatterns":360,"scriptPaths":361,"versionParams":362},[356,357,358,359],"\u002Fwp-content\u002Fplugins\u002Ffrenglish-translations\u002Fcss\u002Fbackend.css","\u002Fwp-content\u002Fplugins\u002Ffrenglish-translations\u002Fcss\u002Ffrontend.css","\u002Fwp-content\u002Fplugins\u002Ffrenglish-translations\u002Fjs\u002Fbackend.js","\u002Fwp-content\u002Fplugins\u002Ffrenglish-translations\u002Fjs\u002Ffrontend.js",[],[],[363,364,365,366],"frenglish-translations\u002Fcss\u002Fbackend.css?ver=","frenglish-translations\u002Fcss\u002Ffrontend.css?ver=","frenglish-translations\u002Fjs\u002Fbackend.js?ver=","frenglish-translations\u002Fjs\u002Ffrontend.js?ver=",{"cssClasses":368,"htmlComments":369,"htmlAttributes":370,"restEndpoints":373,"jsGlobals":374,"shortcodeOutput":376},[],[],[371,372],"data-frenglish-source","data-frenglish-target",[],[375],"frenglish_settings",[]]