[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f3JxN-wkUSOJBCSuSFofJniDUL2d1qeGRbDQ3IPFFx0U":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":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":39,"analysis":129,"fingerprints":322},"transifex-wp-translation","Transifex WP Translation","0.3.2","Ayebare Mucunguzi Brooks","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrooksx\u002F","\u003Cp>This plugin Integrates all Transifex Options into your WordPress site so you can Translate your content directly on the page using Transifex Live.\u003Cbr \u002F>\nUsing Transifex enables you to collaborate with agencies, translators or crowd-source your translations.\u003Cbr \u002F>\nThe plugin customizes the experience to fit the WordPress needs by providing custom language switchers that follow the WordPress\u003Cbr \u002F>\nURL re-write rules. All three url formats recommended for multilingual sites are supported i.e Language in directories, languages as sub-domains, language as a parameter\u003Cbr \u002F>\nThis is one of the many multilingual WordPress plugins provided by \u003Ca title href=\"http:\u002F\u002Fzanto.org\" rel=\"nofollow ugc\">Zanto.org\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Order Languages in the language switcher according to your liking.\u003C\u002Fli>\n\u003Cli>Several Language Switcher Themes to choose from or create your own custom color scheme\u003C\u002Fli>\n\u003Cli>All recomended Language URL formats for multilingual content i.e Add language to Directories, Add language Parameter to URL, Add language as subdomain to URL\u003C\u002Fli>\n\u003Cli>Footer Language Switcher\u003C\u002Fli>\n\u003Cli>Option to show availability of post translation in another language below or above the post.\u003C\u002Fli>\n\u003Cli>Use custom flags\u003C\u002Fli>\n\u003Cli>SEO for your transifex live multilingual content is fully catered for.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Get fast support here \u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fsupport\" rel=\"nofollow ugc\"> Transifex WordpPress Translation support\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Translate WordPress sites directly on the page using Transifex Live localization tools.",10,3466,100,1,"2015-04-05T15:33:00.000Z","4.1.42","3.1","",[20,21,22,23,24],"internationalization","localization","transifex","transifex-live","translation","http:\u002F\u002Fzanto.org\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftransifex-wp-translation.0.3.2.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":36,"avg_patch_time_days":37,"trust_score":27,"computed_at":38},"brooksx",8,340,87,30,"2026-04-04T12:58:50.430Z",[40,61,79,98,112],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":50,"num_ratings":51,"last_updated":52,"tested_up_to":53,"requires_at_least":54,"requires_php":55,"tags":56,"homepage":59,"download_link":60,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"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,98,16,"2025-12-05T10:38:00.000Z","6.9.4","6.5","7.0",[57,20,21,58,24],"i18n","performance","https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fperformant-translations","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fperformant-translations.1.2.0.zip",{"slug":62,"name":63,"version":64,"author":44,"author_profile":45,"description":65,"short_description":66,"active_installs":67,"downloaded":68,"rating":13,"num_ratings":69,"last_updated":70,"tested_up_to":53,"requires_at_least":71,"requires_php":72,"tags":73,"homepage":75,"download_link":76,"security_score":77,"vuln_count":14,"unpatched_count":28,"last_vuln_date":78,"fetched_at":30},"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",[57,20,74,21,24],"language","https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fpreferred-languages\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpreferred-languages.2.4.1.zip",99,"2024-05-30 00:00:00",{"slug":80,"name":81,"version":82,"author":83,"author_profile":84,"description":85,"short_description":86,"active_installs":13,"downloaded":87,"rating":13,"num_ratings":88,"last_updated":89,"tested_up_to":90,"requires_at_least":91,"requires_php":92,"tags":93,"homepage":96,"download_link":97,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"translation-tools","Translation Tools","1.7.2","Pedro Mendonça","https:\u002F\u002Fprofiles.wordpress.org\u002Fpedromendonca\u002F","\u003Ch3>Use any Locale, with or without Language Packs\u003C\u002Fh3>\n\u003Cp>With core Language Packs you can easily change the language of your WordPress install.\u003C\u002Fp>\n\u003Cp>The Language Packs used to be provided only for 100% translated Locales.\u003C\u002Fp>\n\u003Cp>To give teams with less contributors a better chance to get WordPress released into their Locale, since \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fpolyglots\u002F2021\u002F02\u002F22\u002Fwordpress-5-7-ready-to-be-translated\u002F\" rel=\"nofollow ugc\">22nd February 2021\u003C\u002Fa> the required translation status for core Language Packs to be built are as follows:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp\u002Fdev\u002F\" rel=\"nofollow ugc\">Front-end project\u003C\u002Fa> needs to be translated at least \u003Cstrong>90%\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>The \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp\u002Fdev\u002Fadmin\u002F\" rel=\"nofollow ugc\">Administration project\u003C\u002Fa> needs to be translated at least \u003Cstrong>75%\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>The \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp\u002Fdev\u002Fadmin\u002Fnetwork\u002F\" rel=\"nofollow ugc\">Network Admin\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp\u002Fdev\u002Fcc\u002F\" rel=\"nofollow ugc\">Continent & Cities\u003C\u002Fa> projects are not included in the threshold calculation.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you need a Locale that has no Language Packs yet, this tool helps you by enabling ALL Locales on the list of the available languages.\u003C\u002Fp>\n\u003Ch3>Compatible with plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpreferred-languages\u002F\" rel=\"ugc\">Preferred Languages\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>The plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpreferred-languages\u002F\" rel=\"ugc\">Preferred Languages\u003C\u002Fa> overrides the standard languages field for site and user languages.\u003C\u002Fp>\n\u003Cp>All the features added by Translation Tools are available for Preferred Languages users.\u003C\u002Fp>\n\u003Ch3>Update your WordPress, Plugins or Themes translation, on demand\u003C\u002Fh3>\n\u003Cp>If you need to update your WordPress core, Plugins or Themes translations on demand without waiting for a language pack to be generated, this tool allows you to manually update all the needed files for the installed version, with one click, in a few seconds.\u003C\u002Fp>\n\u003Cp>Go to “Translations” on the Updates screen and choose what you want to update.\u003C\u002Fp>\n\u003Ch4>All WordPress core sub-projects\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Development\u003C\u002Fli>\n\u003Cli>Continents & Cities\u003C\u002Fli>\n\u003Cli>Administration\u003C\u002Fli>\n\u003Cli>Network Admin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>All translation files\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>.po (editable translation files)\u003C\u002Fli>\n\u003Cli>.mo (binary translation files)\u003C\u002Fli>\n\u003Cli>.l10n.php (PHP performant translation files)\u003C\u002Fli>\n\u003Cli>.json (JavaScript translation files)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>WordPress Translations tests and info in Site Health\u003C\u002Fh3>\n\u003Cp>Check your WordPress core translations in Site Health tests page.\u003C\u002Fp>\n\u003Cp>The Site Health debug info shows the selected site and user languages, including multiple languages from the plugin Preferred Languages.\u003C\u002Fp>\n","Translation tools for your WordPress install.",9359,3,"2025-04-16T11:06:00.000Z","6.6.5","4.9","7.4",[94,20,95,21,24],"core","language-packs","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ftranslation-tools\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftranslation-tools.1.7.2.zip",{"slug":99,"name":100,"version":101,"author":83,"author_profile":84,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":13,"num_ratings":106,"last_updated":107,"tested_up_to":53,"requires_at_least":91,"requires_php":92,"tags":108,"homepage":110,"download_link":111,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"translation-stats","Translation Stats","1.3.2","\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,6,"2025-10-04T15:19:00.000Z",[57,20,109,21,24],"l10n","https:\u002F\u002Ftranslationstats.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftranslation-stats.1.3.2.zip",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":11,"downloaded":120,"rating":28,"num_ratings":28,"last_updated":121,"tested_up_to":53,"requires_at_least":122,"requires_php":123,"tags":124,"homepage":127,"download_link":128,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"smartling-connector","Smartling Connector","5.3.2","Smartling","https:\u002F\u002Fprofiles.wordpress.org\u002Fsmartling\u002F","\u003Cp>The Smartling Connector facilitates the translation of WordPress content within Smartling.\u003Cbr \u002F>\nEasily installed with minimal developer support, the combination of WordPress and Smartling provides users with a powerful technology solution to manage the translation and localization process with full visibility and control across the entire organization.\u003Cbr \u002F>\nTranslations are requested from within WordPress, and translated content is automatically returned to your WordPress environment.\u003C\u002Fp>\n\u003Cp>Integration Features\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatic change detection for content updates\u003C\u002Fli>\n\u003Cli>Robust custom workflow engine configurable per language\u003C\u002Fli>\n\u003Cli>Automatic download of completed translations to WordPress\u003C\u002Fli>\n\u003Cli>Translation Memory integration\u003C\u002Fli>\n\u003Cli>No tie-ins to translation agencies or vendors\u003C\u002Fli>\n\u003Cli>Reporting for translation velocity, efficiency\u003C\u002Fli>\n\u003C\u002Ful>\n","Translate content in WordPress quickly and seamlessly with Smartling, the industry-leading Translation Management System.",45164,"2026-03-10T14:07:00.000Z","5.5","8.0",[20,21,125,126,24],"multilingual","smartling","https:\u002F\u002Fwww.smartling.com\u002Fproducts\u002Fautomate\u002Fintegrations\u002Fwordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsmartling-connector.5.3.2.zip",{"attackSurface":130,"codeSignals":224,"taintFlows":313,"riskAssessment":314,"analyzedAt":321},{"hooks":131,"ajaxHandlers":215,"restRoutes":221,"shortcodes":222,"cronEvents":223,"entryPointCount":14,"unprotectedCount":28},[132,138,142,146,151,155,159,162,165,169,172,178,182,186,189,191,194,196,200,203,206,211],{"type":133,"name":134,"callback":134,"priority":135,"file":136,"line":137},"action","init",5,"classes\\class.txwt-base.php",40,{"type":133,"name":139,"callback":140,"file":136,"line":141},"plugins_loaded","txwt_add_textdomain",42,{"type":133,"name":143,"callback":144,"file":136,"line":145},"wp_head","meta_generator_tag",45,{"type":147,"name":148,"callback":149,"file":136,"line":150},"filter","option_rewrite_rules","rewrite_rules_filter",46,{"type":147,"name":152,"callback":153,"file":136,"line":154},"parse_request","add_lang_var",47,{"type":133,"name":156,"callback":157,"file":136,"line":158},"admin_enqueue_scripts","txwt_add_admin_JS",50,{"type":133,"name":156,"callback":160,"file":136,"line":161},"txwt_add_admin_CSS",51,{"type":133,"name":143,"callback":163,"priority":158,"file":136,"line":164},"transifex_live_script",62,{"type":133,"name":166,"callback":167,"file":136,"line":168},"wp_enqueue_scripts","txwt_front_JS",63,{"type":133,"name":166,"callback":170,"file":136,"line":171},"txwt_add_CSS",64,{"type":133,"name":173,"callback":174,"priority":175,"file":176,"line":177},"wp_footer","footer_lang_selector",19,"classes\\class.txwt-lang-switcher.php",34,{"type":133,"name":179,"callback":180,"file":176,"line":181},"txwt_footer_lang_switcher","hor_language_selector",35,{"type":147,"name":183,"callback":184,"priority":13,"file":176,"line":185},"the_content","post_availability",39,{"type":133,"name":143,"callback":187,"priority":104,"file":176,"line":188},"custom_switcher_styles",41,{"type":133,"name":190,"callback":190,"file":176,"line":141},"drop_down_switcher",{"type":133,"name":192,"callback":180,"file":176,"line":193},"hor_switcher",43,{"type":133,"name":143,"callback":195,"priority":104,"file":176,"line":145},"transifex_switcher_styles",{"type":133,"name":197,"callback":198,"file":199,"line":69},"admin_init","register_settings","classes\\class.txwt-settings.php",{"type":133,"name":201,"callback":202,"file":199,"line":104},"admin_menu","txwt_admin_pages_callback",{"type":133,"name":201,"callback":204,"file":199,"line":205},"add_meta_to_pages",21,{"type":133,"name":207,"callback":208,"file":209,"line":210},"widgets_init","txwt_widgets_init","classes\\class.txwt-switcher-widgets.php",76,{"type":133,"name":212,"callback":213,"file":214,"line":77},"admin_notices","txwt_requirements_error","transifex-wp-translation.php",[216],{"action":217,"nopriv":218,"callback":217,"hasNonce":219,"hasCapCheck":218,"file":136,"line":220},"txwt_store_langs",false,true,49,[],[],[],{"dangerousFunctions":225,"sqlUsage":226,"outputEscaping":228,"fileOperations":28,"externalRequests":28,"nonceChecks":14,"capabilityChecks":28,"bundledLibraries":312},[],{"prepared":28,"raw":28,"locations":227},[],{"escaped":175,"rawEcho":154,"locations":229},[230,233,235,237,239,241,242,243,245,246,248,250,252,254,256,258,260,261,262,264,266,267,268,269,271,273,275,278,279,280,281,283,284,286,288,290,292,293,295,297,299,301,303,305,306,308,310],{"file":136,"line":231,"context":232},270,"raw output",{"file":176,"line":234,"context":232},105,{"file":176,"line":236,"context":232},110,{"file":176,"line":238,"context":232},150,{"file":176,"line":240,"context":232},178,{"file":176,"line":240,"context":232},{"file":176,"line":240,"context":232},{"file":176,"line":244,"context":232},197,{"file":176,"line":244,"context":232},{"file":176,"line":247,"context":232},237,{"file":176,"line":249,"context":232},238,{"file":176,"line":251,"context":232},240,{"file":199,"line":253,"context":232},81,{"file":199,"line":255,"context":232},399,{"file":199,"line":257,"context":232},416,{"file":209,"line":259,"context":232},29,{"file":209,"line":259,"context":232},{"file":209,"line":259,"context":232},{"file":209,"line":263,"context":232},32,{"file":209,"line":265,"context":232},33,{"file":209,"line":265,"context":232},{"file":209,"line":181,"context":232},{"file":209,"line":181,"context":232},{"file":209,"line":270,"context":232},52,{"file":209,"line":272,"context":232},55,{"file":209,"line":274,"context":232},67,{"file":276,"line":277,"context":232},"views\\txwt-settings\\page-settings-fields.php",13,{"file":276,"line":188,"context":232},{"file":276,"line":150,"context":232},{"file":276,"line":161,"context":232},{"file":276,"line":282,"context":232},72,{"file":276,"line":282,"context":232},{"file":276,"line":285,"context":232},75,{"file":276,"line":287,"context":232},136,{"file":276,"line":289,"context":232},148,{"file":276,"line":291,"context":232},149,{"file":276,"line":238,"context":232},{"file":276,"line":294,"context":232},151,{"file":276,"line":296,"context":232},152,{"file":276,"line":298,"context":232},153,{"file":276,"line":300,"context":232},164,{"file":276,"line":302,"context":232},185,{"file":276,"line":304,"context":232},196,{"file":276,"line":244,"context":232},{"file":276,"line":307,"context":232},198,{"file":276,"line":309,"context":232},199,{"file":276,"line":311,"context":232},200,[],[],{"summary":315,"deductions":316},"The Transifex WP Translation plugin v0.3.2 exhibits a generally strong security posture based on the provided static analysis. The plugin demonstrates good practices by avoiding dangerous functions, utilizing prepared statements for all SQL queries, and including a nonce check for its single AJAX handler. Notably, there are no recorded vulnerabilities (CVEs) for this plugin, suggesting a history of robust security or minimal prior scrutiny. However, a significant concern arises from the low percentage of properly escaped output (29%). This indicates a potential for cross-site scripting (XSS) vulnerabilities, where unsanitized data processed and outputted by the plugin could be exploited by attackers to inject malicious scripts into user sessions. The absence of capability checks on the AJAX handler, while not immediately leading to a deduction given the presence of a nonce check, is a weakness that could be exploited in conjunction with other vulnerabilities or misconfigurations.\n\nWhile the plugin benefits from a small attack surface and the absence of known vulnerabilities, the high proportion of unescaped output represents a tangible risk. The taint analysis showing zero flows is positive, but this needs to be considered alongside the output escaping results. A more comprehensive security audit would be beneficial to thoroughly investigate the identified output escaping issues and ensure that all entry points are adequately protected against various attack vectors. The overall assessment is that the plugin has good foundational security but requires attention to address the output escaping weakness to mitigate potential XSS risks.",[317,319],{"reason":318,"points":11},"Low percentage of properly escaped output",{"reason":320,"points":135},"No capability checks on AJAX handler","2026-03-17T01:28:22.637Z",{"wat":323,"direct":334},{"assetPaths":324,"generatorPatterns":328,"scriptPaths":329,"versionParams":330},[325,326,327],"\u002Fwp-content\u002Fplugins\u002Ftransifex-wp-translation\u002Fjs\u002Ftransifex.js","\u002Fwp-content\u002Fplugins\u002Ftransifex-wp-translation\u002Fcss\u002Ftransifex.css","\u002Fwp-content\u002Fplugins\u002Ftransifex-wp-translation\u002Fcss\u002Ftransifex-admin.css",[],[325],[331,332,333],"transifex-wp-translation\u002Fjs\u002Ftransifex.js?ver=","transifex-wp-translation\u002Fcss\u002Ftransifex.css?ver=","transifex-wp-translation\u002Fcss\u002Ftransifex-admin.css?ver=",{"cssClasses":335,"htmlComments":336,"htmlAttributes":338,"restEndpoints":340,"jsGlobals":341,"shortcodeOutput":343},[],[337],"\u003C!-- Transifex WP Translation Settings -->",[339],"data-txwt-lang-switcher-id",[],[342],"TXWT",[]]